valtech-components 4.0.1020 → 4.0.1022

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 (29) hide show
  1. package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +3 -3
  2. package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +3 -3
  3. package/esm2022/lib/components/molecules/hint/hint.component.mjs +3 -3
  4. package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +3 -3
  5. package/esm2022/lib/components/molecules/pin-input/pin-input.component.mjs +3 -3
  6. package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +3 -3
  7. package/esm2022/lib/components/organisms/field-schema-editor/field-schema-editor.component.mjs +18 -1
  8. package/esm2022/lib/components/organisms/field-schema-editor/field-schema-editor.i18n.mjs +5 -3
  9. package/esm2022/lib/components/organisms/field-schema-editor/types.mjs +1 -1
  10. package/esm2022/lib/components/organisms/form/form.component.mjs +32 -5
  11. package/esm2022/lib/components/organisms/survey-builder/survey-builder.component.mjs +64 -39
  12. package/esm2022/lib/components/organisms/survey-builder/survey-builder.i18n.mjs +3 -1
  13. package/esm2022/lib/components/organisms/survey-response/survey-response.component.mjs +5 -6
  14. package/esm2022/lib/components/types.mjs +1 -1
  15. package/esm2022/lib/services/forms/form-schema-builder.service.mjs +3 -1
  16. package/esm2022/lib/services/forms/types.mjs +1 -1
  17. package/esm2022/lib/services/i18n/default-content.mjs +3 -1
  18. package/esm2022/lib/version.mjs +2 -2
  19. package/fesm2022/valtech-components.mjs +138 -62
  20. package/fesm2022/valtech-components.mjs.map +1 -1
  21. package/lib/components/organisms/field-schema-editor/field-schema-editor.component.d.ts +1 -0
  22. package/lib/components/organisms/field-schema-editor/types.d.ts +3 -0
  23. package/lib/components/organisms/form/form.component.d.ts +1 -0
  24. package/lib/components/organisms/survey-builder/survey-builder.component.d.ts +1 -0
  25. package/lib/components/organisms/survey-response/survey-response.component.d.ts +4 -5
  26. package/lib/components/types.d.ts +3 -1
  27. package/lib/services/forms/types.d.ts +1 -0
  28. package/lib/version.d.ts +1 -1
  29. package/package.json +1 -1
@@ -55,6 +55,7 @@ export const SURVEY_BUILDER_I18N = {
55
55
  sectionSubtitleLabel: 'Subtítulo',
56
56
  sectionSubtitlePlaceholder: 'Escribe un subtítulo para esta sección',
57
57
  sectionTabsLabel: 'Secciones de la encuesta',
58
+ sectionCounter: 'Sección {count}',
58
59
  stepClose: 'Cierre',
59
60
  stepReview: 'Revisar',
60
61
  wizardStepsLabel: 'Pasos para crear la encuesta',
@@ -127,6 +128,7 @@ export const SURVEY_BUILDER_I18N = {
127
128
  sectionSubtitleLabel: 'Subtitle',
128
129
  sectionSubtitlePlaceholder: 'Add a subtitle for this section',
129
130
  sectionTabsLabel: 'Survey sections',
131
+ sectionCounter: 'Section {count}',
130
132
  stepClose: 'Close',
131
133
  stepReview: 'Review',
132
134
  wizardStepsLabel: 'Survey builder steps',
@@ -144,4 +146,4 @@ export const SURVEY_BUILDER_I18N = {
144
146
  reviewDefaultClose: 'Default closing screen',
145
147
  },
146
148
  };
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWJ1aWxkZXIuaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvc3VydmV5LWJ1aWxkZXIvc3VydmV5LWJ1aWxkZXIuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBcUI7SUFDbkQsRUFBRSxFQUFFO1FBQ0YsZUFBZSxFQUFFLGdCQUFnQjtRQUNqQyxxQkFBcUIsRUFBRSw2QkFBNkI7UUFDcEQsWUFBWSxFQUFFLHVDQUF1QztRQUNyRCxVQUFVLEVBQUUsUUFBUTtRQUNwQixnQkFBZ0IsRUFBRSxnQ0FBZ0M7UUFDbEQsYUFBYSxFQUFFLFdBQVc7UUFDMUIsbUJBQW1CLEVBQUUscURBQXFEO1FBQzFFLGlCQUFpQixFQUFFLGNBQWM7UUFDakMsZ0JBQWdCLEVBQUUsZ0JBQWdCO1FBQ2xDLHNCQUFzQixFQUFFLHVDQUF1QztRQUMvRCxXQUFXLEVBQUUsY0FBYztRQUMzQixXQUFXLEVBQUUsZ0JBQWdCO1FBQzdCLFdBQVcsRUFBRSxlQUFlO1FBQzVCLGNBQWMsRUFBRSxzQ0FBc0M7UUFDdEQsY0FBYyxFQUFFLHdDQUF3QztRQUN4RCxnQkFBZ0IsRUFBRSxpREFBaUQ7UUFDbkUsaUJBQWlCLEVBQUUsMEJBQTBCO1FBQzdDLHVCQUF1QixFQUFFLDJCQUEyQjtRQUNwRCxtQkFBbUIsRUFBRSwyQkFBMkI7UUFDaEQseUJBQXlCLEVBQUUsbUNBQW1DO1FBQzlELG1CQUFtQixFQUFFLHFFQUFxRTtRQUMxRixtQkFBbUIsRUFBRSx1QkFBdUI7UUFDNUMscUJBQXFCLEVBQUUsaUVBQWlFO1FBQ3hGLGlCQUFpQixFQUFFLGtCQUFrQjtRQUNyQyx1QkFBdUIsRUFBRSw2Q0FBNkM7UUFDdEUsY0FBYyxFQUFFLFdBQVc7UUFDM0IscUJBQXFCLEVBQUUsYUFBYTtRQUNwQyx3QkFBd0IsRUFBRSxxQkFBcUI7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QUFrQjtRQUMxQixRQUFRLEVBQUUsb0JBQW9CO1FBQzlCLFdBQVcsRUFBRSxNQUFNO1FBQ25CLGdCQUFnQixFQUFFLHVCQUF1QjtRQUN6QyxXQUFXLEVBQUUsVUFBVTtRQUN2QixjQUFjLEVBQUUsNENBQTRDO1FBQzVELElBQUksRUFBRSxhQUFhO1FBQ25CLE9BQU8sRUFBRSx5QkFBeUI7UUFDbEMsV0FBVyxFQUFFLDJCQUEyQjtRQUN4QyxvQkFBb0IsRUFBRSwyQ0FBMkM7UUFDakUsYUFBYSxFQUFFLHlCQUF5QjtRQUN4QyxrQkFBa0IsRUFBRSwyQkFBMkI7UUFDL0MsU0FBUyxFQUFFLDJEQUEyRDtRQUN0RSxTQUFTLEVBQUUsc0NBQXNDO1FBQ2pELFNBQVMsRUFBRSxPQUFPO1FBQ2xCLGFBQWEsRUFBRSxXQUFXO1FBQzFCLGdCQUFnQixFQUFFLGNBQWM7UUFDaEMsc0JBQXNCLEVBQUUsMkJBQTJCO1FBQ25ELG9CQUFvQixFQUFFLFVBQVU7UUFDaEMsMEJBQTBCLEVBQUUsaUNBQWlDO1FBQzdELGdCQUFnQixFQUFFLGlCQUFpQjtRQUNuQyxTQUFTLEVBQUUsT0FBTztRQUNsQixVQUFVLEVBQUUsUUFBUTtRQUNwQixnQkFBZ0IsRUFBRSxzQkFBc0I7UUFDeEMsSUFBSSxFQUFFLE1BQU07UUFDWixRQUFRLEVBQUUsTUFBTTtRQUNoQixPQUFPLEVBQUUsU0FBUztRQUNsQixZQUFZLEVBQUUsU0FBUztRQUN2QixZQUFZLEVBQUUsT0FBTztRQUNyQixXQUFXLEVBQUUsU0FBUztRQUN0QixnQkFBZ0IsRUFBRSxhQUFhO1FBQy9CLG1CQUFtQixFQUFFLGtCQUFrQjtRQUN2QyxvQkFBb0IsRUFBRSxtQkFBbUI7UUFDekMsaUJBQWlCLEVBQUUsbUJBQW1CO1FBQ3RDLGtCQUFrQixFQUFFLG1CQUFtQjtRQUN2QyxrQkFBa0IsRUFBRSx3QkFBd0I7S0FDN0M7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGFuZ3VhZ2VzQ29udGVudCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuXG5leHBvcnQgY29uc3QgU1VSVkVZX0JVSUxERVJfSTE4TjogTGFuZ3VhZ2VzQ29udGVudCA9IHtcbiAgZXM6IHtcbiAgICBzdXJ2ZXlOYW1lTGFiZWw6ICdOb21icmUgaW50ZXJubycsXG4gICAgc3VydmV5TmFtZVBsYWNlaG9sZGVyOiAnRWo6IGVuY3Vlc3RhLXZlbnRhcy1lbnRyYWRhJyxcbiAgICBub1N1cnZleU5hbWU6ICdQb25sZSB1biBub21icmUgaW50ZXJubyBhIGxhIGVuY3Vlc3RhJyxcbiAgICB0aXRsZUxhYmVsOiAnVMOtdHVsbycsXG4gICAgdGl0bGVQbGFjZWhvbGRlcjogJ0VqOiDCv1F1w6kgdGUgcGFyZWNpw7MgZWwgZXZlbnRvPycsXG4gICAgc3VidGl0bGVMYWJlbDogJ1N1YnTDrXR1bG8nLFxuICAgIHN1YnRpdGxlUGxhY2Vob2xkZXI6ICdFajogQXnDumRhbm9zIGEgbWVqb3JhciByZXNwb25kaWVuZG8gZXN0YXMgcHJlZ3VudGFzJyxcbiAgICBwcmVzZW50YXRpb25MYWJlbDogJ1ByZXNlbnRhY2nDs24nLFxuICAgIGhlYWRlckltYWdlTGFiZWw6ICdJbWFnZW4gaW5pY2lhbCcsXG4gICAgaGVhZGVySW1hZ2VQbGFjZWhvbGRlcjogJ1VSTCBkZSBsYSBpbWFnZW4gcXVlIGFicmUgbGEgZW5jdWVzdGEnLFxuICAgIGltYWdlVXBsb2FkOiAnU3ViaXIgaW1hZ2VuJyxcbiAgICBpbWFnZUNoYW5nZTogJ0NhbWJpYXIgaW1hZ2VuJyxcbiAgICBpbWFnZVJlbW92ZTogJ1F1aXRhciBpbWFnZW4nLFxuICAgIGltYWdlVHlwZUVycm9yOiAnVXNhIHVuYSBpbWFnZW4gSlBHLCBQTkcsIFdFQlAgbyBHSUYuJyxcbiAgICBpbWFnZVNpemVFcnJvcjogJ0xhIGltYWdlbiBubyBwdWVkZSBwZXNhciBtw6FzIGRlIDEwIE1CLicsXG4gICAgaW1hZ2VVcGxvYWRFcnJvcjogJ05vIHB1ZGltb3Mgc3ViaXIgbGEgaW1hZ2VuLiBJbnRlbnRhIG51ZXZhbWVudGUuJyxcbiAgICBzdWNjZXNzVGl0bGVMYWJlbDogJ1TDrXR1bG8gZGUgYWdyYWRlY2ltaWVudG8nLFxuICAgIHN1Y2Nlc3NUaXRsZVBsYWNlaG9sZGVyOiAnRWo6IEdyYWNpYXMgcG9yIHJlc3BvbmRlcicsXG4gICAgc3VjY2Vzc01lc3NhZ2VMYWJlbDogJ01lbnNhamUgZGUgYWdyYWRlY2ltaWVudG8nLFxuICAgIHN1Y2Nlc3NNZXNzYWdlUGxhY2Vob2xkZXI6ICdFajogVHUgcmVzcHVlc3RhIHF1ZWTDsyByZWdpc3RyYWRhJyxcbiAgICBzdWNjZXNzT3B0aW9uYWxOb3RlOiAnT3BjaW9uYWwuIFB1ZWRlcyBkZWphciBlc3RvcyB2YWxvcmVzIHBvciBkZWZlY3RvIG8gcGVyc29uYWxpemFybG9zLicsXG4gICAgZGVmYXVsdFN1Y2Nlc3NUaXRsZTogJ0dyYWNpYXMgcG9yIHJlc3BvbmRlcicsXG4gICAgZGVmYXVsdFN1Y2Nlc3NNZXNzYWdlOiAnVHUgcmVzcHVlc3RhIHF1ZWTDsyByZWdpc3RyYWRhLiBHcmFjaWFzIHBvciBheXVkYXJub3MgYSBtZWpvcmFyLicsXG4gICAgc3VjY2Vzc0ltYWdlTGFiZWw6ICdJbWFnZW4gZGUgY2llcnJlJyxcbiAgICBzdWNjZXNzSW1hZ2VQbGFjZWhvbGRlcjogJ1VSTCBkZSBsYSBpbWFnZW4gcXVlIHNlIG11ZXN0cmEgYWwgdGVybWluYXInLFxuICAgIHF1ZXN0aW9uc0xhYmVsOiAnUHJlZ3VudGFzJyxcbiAgICBzZWN0aW9uUXVlc3Rpb25zTGFiZWw6ICdTaW4gc2VjY2nDs24nLFxuICAgIHF1ZXN0aW9uTGFiZWxQbGFjZWhvbGRlcjogJ0VzY3JpYmUgbGEgcHJlZ3VudGEnLFxuICAgIGFkZFF1ZXN0aW9uOiAnQWdyZWdhciBwcmVndW50YScsXG4gICAgYWRkUXVlc3Rpb25Ub1NlY3Rpb246ICdBZ3JlZ2FyIGFxdcOtJyxcbiAgICBhZGRTZWN0aW9uOiAnQWdyZWdhciBzZWNjacOzbicsXG4gICAgcmVtb3ZlUXVlc3Rpb246ICdRdWl0YXIgcHJlZ3VudGEnLFxuICAgIGVkaXRRdWVzdGlvbjogJ0VkaXRhciBwcmVndW50YScsXG4gICAgZHVwbGljYXRlUXVlc3Rpb246ICdEdXBsaWNhciBwcmVndW50YScsXG4gICAgbW92ZVVwOiAnU3ViaXIgcHJlZ3VudGEnLFxuICAgIG1vdmVEb3duOiAnQmFqYXIgcHJlZ3VudGEnLFxuICAgIGRvbmVFZGl0aW5nOiAnTGlzdG8nLFxuICAgIHVudGl0bGVkUXVlc3Rpb246ICdQcmVndW50YSBzaW4gdGV4dG8nLFxuICAgIHJlcXVpcmVkVGFnOiAnT2JsaWdhdG9yaWEnLFxuICAgIG1pc3NpbmdPcHRpb25zOiAnSGF5IHByZWd1bnRhcyBkZSBvcGNpb25lcyBzaW4gbmluZ3VuYSBvcGNpw7NuIGNhcmdhZGEuJyxcbiAgICBzYXZlOiAnR3VhcmRhciBlbmN1ZXN0YScsXG4gICAgbm9UaXRsZTogJ1BvbmxlIHVuIHTDrXR1bG8gYSBsYSBlbmN1ZXN0YScsXG4gICAgbm9RdWVzdGlvbnM6ICdBZ3JlZ2EgYWwgbWVub3MgdW5hIHByZWd1bnRhJyxcbiAgICBub1F1ZXN0aW9uc0luU2VjdGlvbjogJ0FncmVnYSBhbCBtZW5vcyB1bmEgcHJlZ3VudGEgYSBlc3RhIHNlY2Npw7NuJyxcbiAgICBub1NlY3Rpb25OYW1lOiAnUG9ubGUgbm9tYnJlIGEgbGEgc2VjY2nDs24nLFxuICAgIGVtcHR5UXVlc3Rpb25MYWJlbDogJ1RvZGFzIGxhcyBwcmVndW50YXMgbmVjZXNpdGFuIHRleHRvJyxcbiAgICBzYXZlRXJyb3I6ICdObyBwdWRpbW9zIGd1YXJkYXIgbGEgZW5jdWVzdGEuIEludMOpbnRhbG8gZGUgbnVldm8gZW4gdW4gcmF0by4nLFxuICAgIGxvYWRFcnJvcjogJ05vIHB1ZGltb3MgY2FyZ2FyIGxhIGVuY3Vlc3RhIHBhcmEgZWRpdGFyLicsXG4gICAgc3RlcFN0YXJ0OiAnSW5pY2lvJyxcbiAgICBzdGVwUXVlc3Rpb25zOiAnUHJlZ3VudGFzJyxcbiAgICBzZWN0aW9uTmFtZUxhYmVsOiAnTm9tYnJlIGRlIGxhIHNlY2Npw7NuJyxcbiAgICBzZWN0aW9uTmFtZVBsYWNlaG9sZGVyOiAnRWo6IEluZm9ybWFjacOzbiBwZXJzb25hbCcsXG4gICAgc2VjdGlvblN1YnRpdGxlTGFiZWw6ICdTdWJ0w610dWxvJyxcbiAgICBzZWN0aW9uU3VidGl0bGVQbGFjZWhvbGRlcjogJ0VzY3JpYmUgdW4gc3VidMOtdHVsbyBwYXJhIGVzdGEgc2VjY2nDs24nLFxuICAgIHNlY3Rpb25UYWJzTGFiZWw6ICdTZWNjaW9uZXMgZGUgbGEgZW5jdWVzdGEnLFxuICAgIHN0ZXBDbG9zZTogJ0NpZXJyZScsXG4gICAgc3RlcFJldmlldzogJ1JldmlzYXInLFxuICAgIHdpemFyZFN0ZXBzTGFiZWw6ICdQYXNvcyBwYXJhIGNyZWFyIGxhIGVuY3Vlc3RhJyxcbiAgICBuZXh0OiAnU2lndWllbnRlJyxcbiAgICBwcmV2aW91czogJ1ZvbHZlcicsXG4gICAgcHJldmlldzogJ1Zpc3RhIHByZXZpYScsXG4gICAgcHJldmlld1RpdGxlOiAnVmlzdGEgcHJldmlhJyxcbiAgICBjbG9zZVByZXZpZXc6ICdDZXJyYXInLFxuICAgIHJldmlld1RpdGxlOiAnUmVzdW1lbicsXG4gICAgcmV2aWV3Tm9TdWJ0aXRsZTogJ1NpbiBzdWJ0w610dWxvJyxcbiAgICByZXZpZXdRdWVzdGlvbkNvdW50OiAne2NvdW50fSBwcmVndW50YScsXG4gICAgcmV2aWV3UXVlc3Rpb25zQ291bnQ6ICd7Y291bnR9IHByZWd1bnRhcycsXG4gICAgcmV2aWV3SGVhZGVySW1hZ2U6ICdJbWFnZW4gaW5pY2lhbCBjb25maWd1cmFkYScsXG4gICAgcmV2aWV3U3VjY2Vzc0ltYWdlOiAnSW1hZ2VuIGRlIGNpZXJyZSBjb25maWd1cmFkYScsXG4gICAgcmV2aWV3RGVmYXVsdENsb3NlOiAnQ2llcnJlIHBvciBkZWZlY3RvJyxcbiAgfSxcbiAgZW46IHtcbiAgICBzdXJ2ZXlOYW1lTGFiZWw6ICdJbnRlcm5hbCBuYW1lJyxcbiAgICBzdXJ2ZXlOYW1lUGxhY2Vob2xkZXI6ICdFLmc6IGV2ZW50LWZlZWRiYWNrJyxcbiAgICBub1N1cnZleU5hbWU6ICdHaXZlIHRoZSBzdXJ2ZXkgYW4gaW50ZXJuYWwgbmFtZScsXG4gICAgdGl0bGVMYWJlbDogJ1RpdGxlJyxcbiAgICB0aXRsZVBsYWNlaG9sZGVyOiAnRS5nOiBIb3cgd2FzIHRoZSBldmVudD8nLFxuICAgIHN1YnRpdGxlTGFiZWw6ICdTdWJ0aXRsZScsXG4gICAgc3VidGl0bGVQbGFjZWhvbGRlcjogJ0UuZzogSGVscCB1cyBpbXByb3ZlIGJ5IGFuc3dlcmluZyB0aGVzZSBxdWVzdGlvbnMnLFxuICAgIHByZXNlbnRhdGlvbkxhYmVsOiAnUHJlc2VudGF0aW9uJyxcbiAgICBoZWFkZXJJbWFnZUxhYmVsOiAnT3BlbmluZyBpbWFnZScsXG4gICAgaGVhZGVySW1hZ2VQbGFjZWhvbGRlcjogJ0ltYWdlIFVSTCBzaG93biBhdCB0aGUgc3RhcnQgb2YgdGhlIHN1cnZleScsXG4gICAgaW1hZ2VVcGxvYWQ6ICdVcGxvYWQgaW1hZ2UnLFxuICAgIGltYWdlQ2hhbmdlOiAnQ2hhbmdlIGltYWdlJyxcbiAgICBpbWFnZVJlbW92ZTogJ1JlbW92ZSBpbWFnZScsXG4gICAgaW1hZ2VUeXBlRXJyb3I6ICdVc2UgYSBKUEcsIFBORywgV0VCUCBvciBHSUYgaW1hZ2UuJyxcbiAgICBpbWFnZVNpemVFcnJvcjogJ1RoZSBpbWFnZSBtdXN0IGJlIDEwIE1CIG9yIGxlc3MuJyxcbiAgICBpbWFnZVVwbG9hZEVycm9yOiBcIldlIGNvdWxkbid0IHVwbG9hZCB0aGUgaW1hZ2UuIFRyeSBhZ2Fpbi5cIixcbiAgICBzdWNjZXNzVGl0bGVMYWJlbDogJ1RoYW5rLXlvdSB0aXRsZScsXG4gICAgc3VjY2Vzc1RpdGxlUGxhY2Vob2xkZXI6ICdFLmc6IFRoYW5rcyBmb3IgYW5zd2VyaW5nJyxcbiAgICBzdWNjZXNzTWVzc2FnZUxhYmVsOiAnVGhhbmsteW91IG1lc3NhZ2UnLFxuICAgIHN1Y2Nlc3NNZXNzYWdlUGxhY2Vob2xkZXI6ICdFLmc6IFlvdXIgcmVzcG9uc2Ugd2FzIHJlY29yZGVkJyxcbiAgICBzdWNjZXNzT3B0aW9uYWxOb3RlOiAnT3B0aW9uYWwuIFlvdSBjYW4ga2VlcCB0aGVzZSBkZWZhdWx0IHZhbHVlcyBvciBjdXN0b21pemUgdGhlbS4nLFxuICAgIGRlZmF1bHRTdWNjZXNzVGl0bGU6ICdUaGFua3MgZm9yIGFuc3dlcmluZycsXG4gICAgZGVmYXVsdFN1Y2Nlc3NNZXNzYWdlOiAnWW91ciByZXNwb25zZSB3YXMgcmVjb3JkZWQuIFRoYW5rcyBmb3IgaGVscGluZyB1cyBpbXByb3ZlLicsXG4gICAgc3VjY2Vzc0ltYWdlTGFiZWw6ICdDbG9zaW5nIGltYWdlJyxcbiAgICBzdWNjZXNzSW1hZ2VQbGFjZWhvbGRlcjogJ0ltYWdlIFVSTCBzaG93biBhZnRlciBzdWJtaXQnLFxuICAgIHF1ZXN0aW9uc0xhYmVsOiAnUXVlc3Rpb25zJyxcbiAgICBzZWN0aW9uUXVlc3Rpb25zTGFiZWw6ICdObyBzZWN0aW9uJyxcbiAgICBxdWVzdGlvbkxhYmVsUGxhY2Vob2xkZXI6ICdXcml0ZSB0aGUgcXVlc3Rpb24nLFxuICAgIGFkZFF1ZXN0aW9uOiAnQWRkIHF1ZXN0aW9uJyxcbiAgICBhZGRRdWVzdGlvblRvU2VjdGlvbjogJ0FkZCBoZXJlJyxcbiAgICBhZGRTZWN0aW9uOiAnQWRkIHNlY3Rpb24nLFxuICAgIHJlbW92ZVF1ZXN0aW9uOiAnUmVtb3ZlIHF1ZXN0aW9uJyxcbiAgICBlZGl0UXVlc3Rpb246ICdFZGl0IHF1ZXN0aW9uJyxcbiAgICBkdXBsaWNhdGVRdWVzdGlvbjogJ0R1cGxpY2F0ZSBxdWVzdGlvbicsXG4gICAgbW92ZVVwOiAnTW92ZSBxdWVzdGlvbiB1cCcsXG4gICAgbW92ZURvd246ICdNb3ZlIHF1ZXN0aW9uIGRvd24nLFxuICAgIGRvbmVFZGl0aW5nOiAnRG9uZScsXG4gICAgdW50aXRsZWRRdWVzdGlvbjogJ1F1ZXN0aW9uIHdpdGggbm8gdGV4dCcsXG4gICAgcmVxdWlyZWRUYWc6ICdSZXF1aXJlZCcsXG4gICAgbWlzc2luZ09wdGlvbnM6ICdTb21lIGNob2ljZSBxdWVzdGlvbnMgaGF2ZSBubyBvcHRpb25zIHNldC4nLFxuICAgIHNhdmU6ICdTYXZlIHN1cnZleScsXG4gICAgbm9UaXRsZTogJ0dpdmUgdGhlIHN1cnZleSBhIHRpdGxlJyxcbiAgICBub1F1ZXN0aW9uczogJ0FkZCBhdCBsZWFzdCBvbmUgcXVlc3Rpb24nLFxuICAgIG5vUXVlc3Rpb25zSW5TZWN0aW9uOiAnQWRkIGF0IGxlYXN0IG9uZSBxdWVzdGlvbiB0byB0aGlzIHNlY3Rpb24nLFxuICAgIG5vU2VjdGlvbk5hbWU6ICdHaXZlIHRoZSBzZWN0aW9uIGEgbmFtZScsXG4gICAgZW1wdHlRdWVzdGlvbkxhYmVsOiAnRXZlcnkgcXVlc3Rpb24gbmVlZHMgdGV4dCcsXG4gICAgc2F2ZUVycm9yOiBcIldlIGNvdWxkbid0IHNhdmUgdGhlIHN1cnZleS4gUGxlYXNlIHRyeSBhZ2FpbiBpbiBhIHdoaWxlLlwiLFxuICAgIGxvYWRFcnJvcjogXCJXZSBjb3VsZG4ndCBsb2FkIHRoZSBzdXJ2ZXkgdG8gZWRpdC5cIixcbiAgICBzdGVwU3RhcnQ6ICdTdGFydCcsXG4gICAgc3RlcFF1ZXN0aW9uczogJ1F1ZXN0aW9ucycsXG4gICAgc2VjdGlvbk5hbWVMYWJlbDogJ1NlY3Rpb24gbmFtZScsXG4gICAgc2VjdGlvbk5hbWVQbGFjZWhvbGRlcjogJ0UuZzogUGVyc29uYWwgaW5mb3JtYXRpb24nLFxuICAgIHNlY3Rpb25TdWJ0aXRsZUxhYmVsOiAnU3VidGl0bGUnLFxuICAgIHNlY3Rpb25TdWJ0aXRsZVBsYWNlaG9sZGVyOiAnQWRkIGEgc3VidGl0bGUgZm9yIHRoaXMgc2VjdGlvbicsXG4gICAgc2VjdGlvblRhYnNMYWJlbDogJ1N1cnZleSBzZWN0aW9ucycsXG4gICAgc3RlcENsb3NlOiAnQ2xvc2UnLFxuICAgIHN0ZXBSZXZpZXc6ICdSZXZpZXcnLFxuICAgIHdpemFyZFN0ZXBzTGFiZWw6ICdTdXJ2ZXkgYnVpbGRlciBzdGVwcycsXG4gICAgbmV4dDogJ05leHQnLFxuICAgIHByZXZpb3VzOiAnQmFjaycsXG4gICAgcHJldmlldzogJ1ByZXZpZXcnLFxuICAgIHByZXZpZXdUaXRsZTogJ1ByZXZpZXcnLFxuICAgIGNsb3NlUHJldmlldzogJ0Nsb3NlJyxcbiAgICByZXZpZXdUaXRsZTogJ1N1bW1hcnknLFxuICAgIHJldmlld05vU3VidGl0bGU6ICdObyBzdWJ0aXRsZScsXG4gICAgcmV2aWV3UXVlc3Rpb25Db3VudDogJ3tjb3VudH0gcXVlc3Rpb24nLFxuICAgIHJldmlld1F1ZXN0aW9uc0NvdW50OiAne2NvdW50fSBxdWVzdGlvbnMnLFxuICAgIHJldmlld0hlYWRlckltYWdlOiAnT3BlbmluZyBpbWFnZSBzZXQnLFxuICAgIHJldmlld1N1Y2Nlc3NJbWFnZTogJ0Nsb3NpbmcgaW1hZ2Ugc2V0JyxcbiAgICByZXZpZXdEZWZhdWx0Q2xvc2U6ICdEZWZhdWx0IGNsb3Npbmcgc2NyZWVuJyxcbiAgfSxcbn07XG4iXX0=
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWJ1aWxkZXIuaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvc3VydmV5LWJ1aWxkZXIvc3VydmV5LWJ1aWxkZXIuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBcUI7SUFDbkQsRUFBRSxFQUFFO1FBQ0YsZUFBZSxFQUFFLGdCQUFnQjtRQUNqQyxxQkFBcUIsRUFBRSw2QkFBNkI7UUFDcEQsWUFBWSxFQUFFLHVDQUF1QztRQUNyRCxVQUFVLEVBQUUsUUFBUTtRQUNwQixnQkFBZ0IsRUFBRSxnQ0FBZ0M7UUFDbEQsYUFBYSxFQUFFLFdBQVc7UUFDMUIsbUJBQW1CLEVBQUUscURBQXFEO1FBQzFFLGlCQUFpQixFQUFFLGNBQWM7UUFDakMsZ0JBQWdCLEVBQUUsZ0JBQWdCO1FBQ2xDLHNCQUFzQixFQUFFLHVDQUF1QztRQUMvRCxXQUFXLEVBQUUsY0FBYztRQUMzQixXQUFXLEVBQUUsZ0JBQWdCO1FBQzdCLFdBQVcsRUFBRSxlQUFlO1FBQzVCLGNBQWMsRUFBRSxzQ0FBc0M7UUFDdEQsY0FBYyxFQUFFLHdDQUF3QztRQUN4RCxnQkFBZ0IsRUFBRSxpREFBaUQ7UUFDbkUsaUJBQWlCLEVBQUUsMEJBQTBCO1FBQzdDLHVCQUF1QixFQUFFLDJCQUEyQjtRQUNwRCxtQkFBbUIsRUFBRSwyQkFBMkI7UUFDaEQseUJBQXlCLEVBQUUsbUNBQW1DO1FBQzlELG1CQUFtQixFQUFFLHFFQUFxRTtRQUMxRixtQkFBbUIsRUFBRSx1QkFBdUI7UUFDNUMscUJBQXFCLEVBQUUsaUVBQWlFO1FBQ3hGLGlCQUFpQixFQUFFLGtCQUFrQjtRQUNyQyx1QkFBdUIsRUFBRSw2Q0FBNkM7UUFDdEUsY0FBYyxFQUFFLFdBQVc7UUFDM0IscUJBQXFCLEVBQUUsYUFBYTtRQUNwQyx3QkFBd0IsRUFBRSxxQkFBcUI7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bmd1YWdlc0NvbnRlbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcblxuZXhwb3J0IGNvbnN0IFNVUlZFWV9CVUlMREVSX0kxOE46IExhbmd1YWdlc0NvbnRlbnQgPSB7XG4gIGVzOiB7XG4gICAgc3VydmV5TmFtZUxhYmVsOiAnTm9tYnJlIGludGVybm8nLFxuICAgIHN1cnZleU5hbWVQbGFjZWhvbGRlcjogJ0VqOiBlbmN1ZXN0YS12ZW50YXMtZW50cmFkYScsXG4gICAgbm9TdXJ2ZXlOYW1lOiAnUG9ubGUgdW4gbm9tYnJlIGludGVybm8gYSBsYSBlbmN1ZXN0YScsXG4gICAgdGl0bGVMYWJlbDogJ1TDrXR1bG8nLFxuICAgIHRpdGxlUGxhY2Vob2xkZXI6ICdFajogwr9RdcOpIHRlIHBhcmVjacOzIGVsIGV2ZW50bz8nLFxuICAgIHN1YnRpdGxlTGFiZWw6ICdTdWJ0w610dWxvJyxcbiAgICBzdWJ0aXRsZVBsYWNlaG9sZGVyOiAnRWo6IEF5w7pkYW5vcyBhIG1lam9yYXIgcmVzcG9uZGllbmRvIGVzdGFzIHByZWd1bnRhcycsXG4gICAgcHJlc2VudGF0aW9uTGFiZWw6ICdQcmVzZW50YWNpw7NuJyxcbiAgICBoZWFkZXJJbWFnZUxhYmVsOiAnSW1hZ2VuIGluaWNpYWwnLFxuICAgIGhlYWRlckltYWdlUGxhY2Vob2xkZXI6ICdVUkwgZGUgbGEgaW1hZ2VuIHF1ZSBhYnJlIGxhIGVuY3Vlc3RhJyxcbiAgICBpbWFnZVVwbG9hZDogJ1N1YmlyIGltYWdlbicsXG4gICAgaW1hZ2VDaGFuZ2U6ICdDYW1iaWFyIGltYWdlbicsXG4gICAgaW1hZ2VSZW1vdmU6ICdRdWl0YXIgaW1hZ2VuJyxcbiAgICBpbWFnZVR5cGVFcnJvcjogJ1VzYSB1bmEgaW1hZ2VuIEpQRywgUE5HLCBXRUJQIG8gR0lGLicsXG4gICAgaW1hZ2VTaXplRXJyb3I6ICdMYSBpbWFnZW4gbm8gcHVlZGUgcGVzYXIgbcOhcyBkZSAxMCBNQi4nLFxuICAgIGltYWdlVXBsb2FkRXJyb3I6ICdObyBwdWRpbW9zIHN1YmlyIGxhIGltYWdlbi4gSW50ZW50YSBudWV2YW1lbnRlLicsXG4gICAgc3VjY2Vzc1RpdGxlTGFiZWw6ICdUw610dWxvIGRlIGFncmFkZWNpbWllbnRvJyxcbiAgICBzdWNjZXNzVGl0bGVQbGFjZWhvbGRlcjogJ0VqOiBHcmFjaWFzIHBvciByZXNwb25kZXInLFxuICAgIHN1Y2Nlc3NNZXNzYWdlTGFiZWw6ICdNZW5zYWplIGRlIGFncmFkZWNpbWllbnRvJyxcbiAgICBzdWNjZXNzTWVzc2FnZVBsYWNlaG9sZGVyOiAnRWo6IFR1IHJlc3B1ZXN0YSBxdWVkw7MgcmVnaXN0cmFkYScsXG4gICAgc3VjY2Vzc09wdGlvbmFsTm90ZTogJ09wY2lvbmFsLiBQdWVkZXMgZGVqYXIgZXN0b3MgdmFsb3JlcyBwb3IgZGVmZWN0byBvIHBlcnNvbmFsaXphcmxvcy4nLFxuICAgIGRlZmF1bHRTdWNjZXNzVGl0bGU6ICdHcmFjaWFzIHBvciByZXNwb25kZXInLFxuICAgIGRlZmF1bHRTdWNjZXNzTWVzc2FnZTogJ1R1IHJlc3B1ZXN0YSBxdWVkw7MgcmVnaXN0cmFkYS4gR3JhY2lhcyBwb3IgYXl1ZGFybm9zIGEgbWVqb3Jhci4nLFxuICAgIHN1Y2Nlc3NJbWFnZUxhYmVsOiAnSW1hZ2VuIGRlIGNpZXJyZScsXG4gICAgc3VjY2Vzc0ltYWdlUGxhY2Vob2xkZXI6ICdVUkwgZGUgbGEgaW1hZ2VuIHF1ZSBzZSBtdWVzdHJhIGFsIHRlcm1pbmFyJyxcbiAgICBxdWVzdGlvbnNMYWJlbDogJ1ByZWd1bnRhcycsXG4gICAgc2VjdGlvblF1ZXN0aW9uc0xhYmVsOiAnU2luIHNlY2Npw7NuJyxcbiAgICBxdWVzdGlvbkxhYmVsUGxhY2Vob2xkZXI6ICdFc2NyaWJlIGxhIHByZWd1bnRhJyxcbiAgICBhZGRRdWVzdGlvbjogJ0FncmVnYXIgcHJlZ3VudGEnLFxuICAgIGFkZFF1ZXN0aW9uVG9TZWN0aW9uOiAnQWdyZWdhciBhcXXDrScsXG4gICAgYWRkU2VjdGlvbjogJ0FncmVnYXIgc2VjY2nDs24nLFxuICAgIHJlbW92ZVF1ZXN0aW9uOiAnUXVpdGFyIHByZWd1bnRhJyxcbiAgICBlZGl0UXVlc3Rpb246ICdFZGl0YXIgcHJlZ3VudGEnLFxuICAgIGR1cGxpY2F0ZVF1ZXN0aW9uOiAnRHVwbGljYXIgcHJlZ3VudGEnLFxuICAgIG1vdmVVcDogJ1N1YmlyIHByZWd1bnRhJyxcbiAgICBtb3ZlRG93bjogJ0JhamFyIHByZWd1bnRhJyxcbiAgICBkb25lRWRpdGluZzogJ0xpc3RvJyxcbiAgICB1bnRpdGxlZFF1ZXN0aW9uOiAnUHJlZ3VudGEgc2luIHRleHRvJyxcbiAgICByZXF1aXJlZFRhZzogJ09ibGlnYXRvcmlhJyxcbiAgICBtaXNzaW5nT3B0aW9uczogJ0hheSBwcmVndW50YXMgZGUgb3BjaW9uZXMgc2luIG5pbmd1bmEgb3BjacOzbiBjYXJnYWRhLicsXG4gICAgc2F2ZTogJ0d1YXJkYXIgZW5jdWVzdGEnLFxuICAgIG5vVGl0bGU6ICdQb25sZSB1biB0w610dWxvIGEgbGEgZW5jdWVzdGEnLFxuICAgIG5vUXVlc3Rpb25zOiAnQWdyZWdhIGFsIG1lbm9zIHVuYSBwcmVndW50YScsXG4gICAgbm9RdWVzdGlvbnNJblNlY3Rpb246ICdBZ3JlZ2EgYWwgbWVub3MgdW5hIHByZWd1bnRhIGEgZXN0YSBzZWNjacOzbicsXG4gICAgbm9TZWN0aW9uTmFtZTogJ1BvbmxlIG5vbWJyZSBhIGxhIHNlY2Npw7NuJyxcbiAgICBlbXB0eVF1ZXN0aW9uTGFiZWw6ICdUb2RhcyBsYXMgcHJlZ3VudGFzIG5lY2VzaXRhbiB0ZXh0bycsXG4gICAgc2F2ZUVycm9yOiAnTm8gcHVkaW1vcyBndWFyZGFyIGxhIGVuY3Vlc3RhLiBJbnTDqW50YWxvIGRlIG51ZXZvIGVuIHVuIHJhdG8uJyxcbiAgICBsb2FkRXJyb3I6ICdObyBwdWRpbW9zIGNhcmdhciBsYSBlbmN1ZXN0YSBwYXJhIGVkaXRhci4nLFxuICAgIHN0ZXBTdGFydDogJ0luaWNpbycsXG4gICAgc3RlcFF1ZXN0aW9uczogJ1ByZWd1bnRhcycsXG4gICAgc2VjdGlvbk5hbWVMYWJlbDogJ05vbWJyZSBkZSBsYSBzZWNjacOzbicsXG4gICAgc2VjdGlvbk5hbWVQbGFjZWhvbGRlcjogJ0VqOiBJbmZvcm1hY2nDs24gcGVyc29uYWwnLFxuICAgIHNlY3Rpb25TdWJ0aXRsZUxhYmVsOiAnU3VidMOtdHVsbycsXG4gICAgc2VjdGlvblN1YnRpdGxlUGxhY2Vob2xkZXI6ICdFc2NyaWJlIHVuIHN1YnTDrXR1bG8gcGFyYSBlc3RhIHNlY2Npw7NuJyxcbiAgICBzZWN0aW9uVGFic0xhYmVsOiAnU2VjY2lvbmVzIGRlIGxhIGVuY3Vlc3RhJyxcbiAgICBzZWN0aW9uQ291bnRlcjogJ1NlY2Npw7NuIHtjb3VudH0nLFxuICAgIHN0ZXBDbG9zZTogJ0NpZXJyZScsXG4gICAgc3RlcFJldmlldzogJ1JldmlzYXInLFxuICAgIHdpemFyZFN0ZXBzTGFiZWw6ICdQYXNvcyBwYXJhIGNyZWFyIGxhIGVuY3Vlc3RhJyxcbiAgICBuZXh0OiAnU2lndWllbnRlJyxcbiAgICBwcmV2aW91czogJ1ZvbHZlcicsXG4gICAgcHJldmlldzogJ1Zpc3RhIHByZXZpYScsXG4gICAgcHJldmlld1RpdGxlOiAnVmlzdGEgcHJldmlhJyxcbiAgICBjbG9zZVByZXZpZXc6ICdDZXJyYXInLFxuICAgIHJldmlld1RpdGxlOiAnUmVzdW1lbicsXG4gICAgcmV2aWV3Tm9TdWJ0aXRsZTogJ1NpbiBzdWJ0w610dWxvJyxcbiAgICByZXZpZXdRdWVzdGlvbkNvdW50OiAne2NvdW50fSBwcmVndW50YScsXG4gICAgcmV2aWV3UXVlc3Rpb25zQ291bnQ6ICd7Y291bnR9IHByZWd1bnRhcycsXG4gICAgcmV2aWV3SGVhZGVySW1hZ2U6ICdJbWFnZW4gaW5pY2lhbCBjb25maWd1cmFkYScsXG4gICAgcmV2aWV3U3VjY2Vzc0ltYWdlOiAnSW1hZ2VuIGRlIGNpZXJyZSBjb25maWd1cmFkYScsXG4gICAgcmV2aWV3RGVmYXVsdENsb3NlOiAnQ2llcnJlIHBvciBkZWZlY3RvJyxcbiAgfSxcbiAgZW46IHtcbiAgICBzdXJ2ZXlOYW1lTGFiZWw6ICdJbnRlcm5hbCBuYW1lJyxcbiAgICBzdXJ2ZXlOYW1lUGxhY2Vob2xkZXI6ICdFLmc6IGV2ZW50LWZlZWRiYWNrJyxcbiAgICBub1N1cnZleU5hbWU6ICdHaXZlIHRoZSBzdXJ2ZXkgYW4gaW50ZXJuYWwgbmFtZScsXG4gICAgdGl0bGVMYWJlbDogJ1RpdGxlJyxcbiAgICB0aXRsZVBsYWNlaG9sZGVyOiAnRS5nOiBIb3cgd2FzIHRoZSBldmVudD8nLFxuICAgIHN1YnRpdGxlTGFiZWw6ICdTdWJ0aXRsZScsXG4gICAgc3VidGl0bGVQbGFjZWhvbGRlcjogJ0UuZzogSGVscCB1cyBpbXByb3ZlIGJ5IGFuc3dlcmluZyB0aGVzZSBxdWVzdGlvbnMnLFxuICAgIHByZXNlbnRhdGlvbkxhYmVsOiAnUHJlc2VudGF0aW9uJyxcbiAgICBoZWFkZXJJbWFnZUxhYmVsOiAnT3BlbmluZyBpbWFnZScsXG4gICAgaGVhZGVySW1hZ2VQbGFjZWhvbGRlcjogJ0ltYWdlIFVSTCBzaG93biBhdCB0aGUgc3RhcnQgb2YgdGhlIHN1cnZleScsXG4gICAgaW1hZ2VVcGxvYWQ6ICdVcGxvYWQgaW1hZ2UnLFxuICAgIGltYWdlQ2hhbmdlOiAnQ2hhbmdlIGltYWdlJyxcbiAgICBpbWFnZVJlbW92ZTogJ1JlbW92ZSBpbWFnZScsXG4gICAgaW1hZ2VUeXBlRXJyb3I6ICdVc2UgYSBKUEcsIFBORywgV0VCUCBvciBHSUYgaW1hZ2UuJyxcbiAgICBpbWFnZVNpemVFcnJvcjogJ1RoZSBpbWFnZSBtdXN0IGJlIDEwIE1CIG9yIGxlc3MuJyxcbiAgICBpbWFnZVVwbG9hZEVycm9yOiBcIldlIGNvdWxkbid0IHVwbG9hZCB0aGUgaW1hZ2UuIFRyeSBhZ2Fpbi5cIixcbiAgICBzdWNjZXNzVGl0bGVMYWJlbDogJ1RoYW5rLXlvdSB0aXRsZScsXG4gICAgc3VjY2Vzc1RpdGxlUGxhY2Vob2xkZXI6ICdFLmc6IFRoYW5rcyBmb3IgYW5zd2VyaW5nJyxcbiAgICBzdWNjZXNzTWVzc2FnZUxhYmVsOiAnVGhhbmsteW91IG1lc3NhZ2UnLFxuICAgIHN1Y2Nlc3NNZXNzYWdlUGxhY2Vob2xkZXI6ICdFLmc6IFlvdXIgcmVzcG9uc2Ugd2FzIHJlY29yZGVkJyxcbiAgICBzdWNjZXNzT3B0aW9uYWxOb3RlOiAnT3B0aW9uYWwuIFlvdSBjYW4ga2VlcCB0aGVzZSBkZWZhdWx0IHZhbHVlcyBvciBjdXN0b21pemUgdGhlbS4nLFxuICAgIGRlZmF1bHRTdWNjZXNzVGl0bGU6ICdUaGFua3MgZm9yIGFuc3dlcmluZycsXG4gICAgZGVmYXVsdFN1Y2Nlc3NNZXNzYWdlOiAnWW91ciByZXNwb25zZSB3YXMgcmVjb3JkZWQuIFRoYW5rcyBmb3IgaGVscGluZyB1cyBpbXByb3ZlLicsXG4gICAgc3VjY2Vzc0ltYWdlTGFiZWw6ICdDbG9zaW5nIGltYWdlJyxcbiAgICBzdWNjZXNzSW1hZ2VQbGFjZWhvbGRlcjogJ0ltYWdlIFVSTCBzaG93biBhZnRlciBzdWJtaXQnLFxuICAgIHF1ZXN0aW9uc0xhYmVsOiAnUXVlc3Rpb25zJyxcbiAgICBzZWN0aW9uUXVlc3Rpb25zTGFiZWw6ICdObyBzZWN0aW9uJyxcbiAgICBxdWVzdGlvbkxhYmVsUGxhY2Vob2xkZXI6ICdXcml0ZSB0aGUgcXVlc3Rpb24nLFxuICAgIGFkZFF1ZXN0aW9uOiAnQWRkIHF1ZXN0aW9uJyxcbiAgICBhZGRRdWVzdGlvblRvU2VjdGlvbjogJ0FkZCBoZXJlJyxcbiAgICBhZGRTZWN0aW9uOiAnQWRkIHNlY3Rpb24nLFxuICAgIHJlbW92ZVF1ZXN0aW9uOiAnUmVtb3ZlIHF1ZXN0aW9uJyxcbiAgICBlZGl0UXVlc3Rpb246ICdFZGl0IHF1ZXN0aW9uJyxcbiAgICBkdXBsaWNhdGVRdWVzdGlvbjogJ0R1cGxpY2F0ZSBxdWVzdGlvbicsXG4gICAgbW92ZVVwOiAnTW92ZSBxdWVzdGlvbiB1cCcsXG4gICAgbW92ZURvd246ICdNb3ZlIHF1ZXN0aW9uIGRvd24nLFxuICAgIGRvbmVFZGl0aW5nOiAnRG9uZScsXG4gICAgdW50aXRsZWRRdWVzdGlvbjogJ1F1ZXN0aW9uIHdpdGggbm8gdGV4dCcsXG4gICAgcmVxdWlyZWRUYWc6ICdSZXF1aXJlZCcsXG4gICAgbWlzc2luZ09wdGlvbnM6ICdTb21lIGNob2ljZSBxdWVzdGlvbnMgaGF2ZSBubyBvcHRpb25zIHNldC4nLFxuICAgIHNhdmU6ICdTYXZlIHN1cnZleScsXG4gICAgbm9UaXRsZTogJ0dpdmUgdGhlIHN1cnZleSBhIHRpdGxlJyxcbiAgICBub1F1ZXN0aW9uczogJ0FkZCBhdCBsZWFzdCBvbmUgcXVlc3Rpb24nLFxuICAgIG5vUXVlc3Rpb25zSW5TZWN0aW9uOiAnQWRkIGF0IGxlYXN0IG9uZSBxdWVzdGlvbiB0byB0aGlzIHNlY3Rpb24nLFxuICAgIG5vU2VjdGlvbk5hbWU6ICdHaXZlIHRoZSBzZWN0aW9uIGEgbmFtZScsXG4gICAgZW1wdHlRdWVzdGlvbkxhYmVsOiAnRXZlcnkgcXVlc3Rpb24gbmVlZHMgdGV4dCcsXG4gICAgc2F2ZUVycm9yOiBcIldlIGNvdWxkbid0IHNhdmUgdGhlIHN1cnZleS4gUGxlYXNlIHRyeSBhZ2FpbiBpbiBhIHdoaWxlLlwiLFxuICAgIGxvYWRFcnJvcjogXCJXZSBjb3VsZG4ndCBsb2FkIHRoZSBzdXJ2ZXkgdG8gZWRpdC5cIixcbiAgICBzdGVwU3RhcnQ6ICdTdGFydCcsXG4gICAgc3RlcFF1ZXN0aW9uczogJ1F1ZXN0aW9ucycsXG4gICAgc2VjdGlvbk5hbWVMYWJlbDogJ1NlY3Rpb24gbmFtZScsXG4gICAgc2VjdGlvbk5hbWVQbGFjZWhvbGRlcjogJ0UuZzogUGVyc29uYWwgaW5mb3JtYXRpb24nLFxuICAgIHNlY3Rpb25TdWJ0aXRsZUxhYmVsOiAnU3VidGl0bGUnLFxuICAgIHNlY3Rpb25TdWJ0aXRsZVBsYWNlaG9sZGVyOiAnQWRkIGEgc3VidGl0bGUgZm9yIHRoaXMgc2VjdGlvbicsXG4gICAgc2VjdGlvblRhYnNMYWJlbDogJ1N1cnZleSBzZWN0aW9ucycsXG4gICAgc2VjdGlvbkNvdW50ZXI6ICdTZWN0aW9uIHtjb3VudH0nLFxuICAgIHN0ZXBDbG9zZTogJ0Nsb3NlJyxcbiAgICBzdGVwUmV2aWV3OiAnUmV2aWV3JyxcbiAgICB3aXphcmRTdGVwc0xhYmVsOiAnU3VydmV5IGJ1aWxkZXIgc3RlcHMnLFxuICAgIG5leHQ6ICdOZXh0JyxcbiAgICBwcmV2aW91czogJ0JhY2snLFxuICAgIHByZXZpZXc6ICdQcmV2aWV3JyxcbiAgICBwcmV2aWV3VGl0bGU6ICdQcmV2aWV3JyxcbiAgICBjbG9zZVByZXZpZXc6ICdDbG9zZScsXG4gICAgcmV2aWV3VGl0bGU6ICdTdW1tYXJ5JyxcbiAgICByZXZpZXdOb1N1YnRpdGxlOiAnTm8gc3VidGl0bGUnLFxuICAgIHJldmlld1F1ZXN0aW9uQ291bnQ6ICd7Y291bnR9IHF1ZXN0aW9uJyxcbiAgICByZXZpZXdRdWVzdGlvbnNDb3VudDogJ3tjb3VudH0gcXVlc3Rpb25zJyxcbiAgICByZXZpZXdIZWFkZXJJbWFnZTogJ09wZW5pbmcgaW1hZ2Ugc2V0JyxcbiAgICByZXZpZXdTdWNjZXNzSW1hZ2U6ICdDbG9zaW5nIGltYWdlIHNldCcsXG4gICAgcmV2aWV3RGVmYXVsdENsb3NlOiAnRGVmYXVsdCBjbG9zaW5nIHNjcmVlbicsXG4gIH0sXG59O1xuIl19
@@ -47,11 +47,10 @@ const DEFAULT_SUCCESS_IMAGE = 'data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.
47
47
  * que pueden no tener cuenta). Encuestas AUTHENTICATED/ORG/INTERNAL están
48
48
  * fuera de alcance de este componente por ahora.
49
49
  *
50
- * Cada pregunta se renderiza según su `FieldSchemaDef.type`: `EMOJI_RATING`
51
- * usa `val-emoji-rating` (NUNCA pasa por `val-form`, no lo sabe rutear);
52
- * cualquier otro tipo (v1: solo `TEXTAREA`) usa `val-textarea-input`. No hay
53
- * `val-form` de por medio un FormGroup armado a mano, porque mezclar tipos
54
- * custom con el form genérico es más complicado que construir el propio.
50
+ * Cada pregunta se renderiza mediante `val-form`, que conoce el catálogo
51
+ * respondible de encuestas: texto, opciones, booleanos, fecha, rating y number
52
+ * picker. Este componente solo decide el flujo público, identidad opcional,
53
+ * pasos por sección y envío de respuestas.
55
54
  */
56
55
  export class SurveyResponseComponent {
57
56
  constructor() {
@@ -589,4 +588,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
589
588
  type: ViewChild,
590
589
  args: [FormComponent]
591
590
  }] } });
592
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LXJlc3BvbnNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvc3VydmV5LXJlc3BvbnNlL3N1cnZleS1yZXNwb25zZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDNUUsT0FBTyxFQUFrQix1QkFBdUIsRUFBcUIsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDL0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlE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QUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYix1QkFBdUI7cUJBQ3hCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9GVDt3REE0RVEsS0FBSztzQkFBYixLQUFLO2dCQUNhLFNBQVM7c0JBQTNCLE1BQU07Z0JBQzJCLGFBQWE7c0JBQTlDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFJlcXVlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcmVxdWVzdHMvcmVxdWVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEZpZWxkU2NoZW1hRGVmLCBGSUVMRF9UWVBFX0VNT0pJX1JBVElORywgUmVxdWVzdFR5cGVDb25maWcgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXF1ZXN0cy90eXBlcyc7XG5pbXBvcnQgeyBWYWx0ZWNoRXJyb3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXJyb3JzL3ZhbHRlY2gtZXJyb3Iuc2VydmljZSc7XG5pbXBvcnQgeyBpbnRlcnByZXRFcnJvciB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Vycm9ycy9pbnRlcnByZXQtZXJyb3InO1xuaW1wb3J0IHsgRm9ybVNjaGVtYUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZm9ybXMvZm9ybS1zY2hlbWEtYnVpbGRlci5zZXJ2aWNlJztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRhcmVhSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvdGV4dGFyZWEtaW5wdXQvdGV4dGFyZWEtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaFNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3NlbGVjdC1pbnB1dC9zZWxlY3QtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFJhZGlvSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcmFkaW8taW5wdXQvcmFkaW8taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IENoZWNrSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY2hlY2staW5wdXQvY2hlY2staW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IEVtb2ppUmF0aW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZW1vamktcmF0aW5nL2Vtb2ppLXJhdGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uTWV0YWRhdGEsIENvbXBvbmVudFN0YXRlcywgSW5wdXRNZXRhZGF0YSwgSW5wdXRPcHRpb24sIElucHV0VHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9lbXB0eS1zdGF0ZS90eXBlcyc7XG5pbXBvcnQgeyBTdXJ2ZXlSZXNwb25zZU1ldGFkYXRhLCBTdXJ2ZXlSZXNwb25zZVN1Ym1pdEV2ZW50IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBTVVJWRVlfUkVTUE9OU0VfSTE4TiB9IGZyb20gJy4vc3VydmV5LXJlc3BvbnNlLmkxOG4nO1xuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0vZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2tlbGV0b25MYXlvdXRDb21wb25lbnQgfSBmcm9tICcuLi9za2VsZXRvbi1sYXlvdXQvc2tlbGV0b24tbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtTWV0YWRhdGEsIEZvcm1TdWJtaXQgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmNvbnN0IE5BTUVTUEFDRSA9ICdTdXJ2ZXlSZXNwb25zZSc7XG5cbi8qKiBDb2RlIGRlbCBiYWNrZW5kIGN1YW5kbyBsYSBpbnZpdGFjacOzbiBkZSBlc2EgcGVyc29uYSB5YSBzZSByZXNwb25kacOzLiAqL1xuY29uc3QgSU5WSVRFX1VTRURfQ09ERSA9ICdTVVJWRVlfSU5WSVRFX0FMUkVBRFlfVVNFRCc7XG5cbi8qKiBUaXBvcyBjdXlhIHJlc3B1ZXN0YSBlcyB1biBib29sZWFubywgbm8gdW4gdGV4dG8uICovXG5jb25zdCBCT09MRUFOX1RZUEVTID0gWydDSEVDSycsICdUT0dHTEUnXTtcbmNvbnN0IERFRkFVTFRfU1VDQ0VTU19JTUFHRSA9XG4gICdkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSUyMmh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJTIyIHZpZXdCb3g9JTIyMCAwIDMyMCAyMjAlMjIgcm9sZT0lMjJpbWclMjIgYXJpYS1sYWJlbD0lMjJTdWNjZXNzJTIyJTNFJTNDcmVjdCB3aWR0aD0lMjIzMjAlMjIgaGVpZ2h0PSUyMjIyMCUyMiByeD0lMjIzMiUyMiBmaWxsPSUyMiUyM2ZmZjVmYiUyMi8lM0UlM0NjaXJjbGUgY3g9JTIyMTYwJTIyIGN5PSUyMjk0JTIyIHI9JTIyNTYlMjIgZmlsbD0lMjIlMjNmOTAwYjIlMjIvJTNFJTNDcGF0aCBkPSUyMk0xMzIgOTQuNSAxNTMuNSAxMTYgMTkxIDc3JTIyIGZpbGw9JTIybm9uZSUyMiBzdHJva2U9JTIyJTIzZmZmJTIyIHN0cm9rZS13aWR0aD0lMjIxNCUyMiBzdHJva2UtbGluZWNhcD0lMjJyb3VuZCUyMiBzdHJva2UtbGluZWpvaW49JTIycm91bmQlMjIvJTNFJTNDcGF0aCBkPSUyMk05MiAxNjhoMTM2JTIyIHN0cm9rZT0lMjIlMjMyYjI4MzYlMjIgc3Ryb2tlLXdpZHRoPSUyMjEwJTIyIHN0cm9rZS1saW5lY2FwPSUyMnJvdW5kJTIyIG9wYWNpdHk9JTIyLjE2JTIyLyUzRSUzQ3BhdGggZD0lMjJNMTE2IDE4N2g4OCUyMiBzdHJva2U9JTIyJTIzMmIyODM2JTIyIHN0cm9rZS13aWR0aD0lMjI4JTIyIHN0cm9rZS1saW5lY2FwPSUyMnJvdW5kJTIyIG9wYWNpdHk9JTIyLjEyJTIyLyUzRSUzQy9zdmclM0UnO1xuXG4vKipcbiAqIHZhbC1zdXJ2ZXktcmVzcG9uc2VcbiAqXG4gKiBUb21hIHVuYSBlbmN1ZXN0YSAoYFJlcXVlc3RUeXBlQ29uZmlnYCBjb24gYFR5cGU6IFwic3VydmV5OjxzbHVnPlwiYCwgQURSLTA5MilcbiAqIHkgbGEgcHJlc2VudGEgY29tbyBmb3JtdWxhcmlvIGRlIHJlc3B1ZXN0YSDigJQgZWwgb3JnYW5pc20gcXVlIHVuIHZpc2l0YW50ZVxuICogdmUgYWwgYWJyaXIgZWwgbGluayBkZSB1bmEgZW5jdWVzdGEuIFNlbGYtY29udGFpbmVkLCBpZ3VhbCBxdWVcbiAqIGB2YWwtY29udGVudC1yZWFjdGlvbmAvYHZhbC1hY2Nlc3MtcmVxdWVzdC12aWV3YDogbGVlIGVsIHRpcG8sIGFybWEgZWxcbiAqIGZvcm11bGFyaW8sIGVudsOtYSBsYSByZXNwdWVzdGEsIHNpbiBxdWUgZWwgY29uc3VtZXIgdGVuZ2EgcXVlIG9ycXVlc3RhclxuICogbmFkYSBkZSBlc28uXG4gKlxuICogU29sbyBsZWUgdGlwb3MgYHZpc2liaWxpdHk6ICdQVUJMSUMnYCAodsOtYSBgZ2V0UHVibGljUmVxdWVzdFR5cGVgLCBzaW5cbiAqIGF1dGgpIOKAlCBlcyBlbCBjYXNvIGRlIHVzbyBxdWUgZGVzY3JpYmUgZWwgQURSIChsaW5rIGVudmlhZG8gYSBjb21wcmFkb3JlcyxcbiAqIHF1ZSBwdWVkZW4gbm8gdGVuZXIgY3VlbnRhKS4gRW5jdWVzdGFzIEFVVEhFTlRJQ0FURUQvT1JHL0lOVEVSTkFMIGVzdMOhblxuICogZnVlcmEgZGUgYWxjYW5jZSBkZSBlc3RlIGNvbXBvbmVudGUgcG9yIGFob3JhLlxuICpcbiAqIENhZGEgcHJlZ3VudGEgc2UgcmVuZGVyaXphIHNlZ8O6biBzdSBgRmllbGRTY2hlbWFEZWYudHlwZWA6IGBFTU9KSV9SQVRJTkdgXG4gKiB1c2EgYHZhbC1lbW9qaS1yYXRpbmdgIChOVU5DQSBwYXNhIHBvciBgdmFsLWZvcm1gLCBubyBsbyBzYWJlIHJ1dGVhcik7XG4gKiBjdWFscXVpZXIgb3RybyB0aXBvICh2MTogc29sbyBgVEVYVEFSRUFgKSB1c2EgYHZhbC10ZXh0YXJlYS1pbnB1dGAuIE5vIGhheVxuICogYHZhbC1mb3JtYCBkZSBwb3IgbWVkaW8g4oCUIHVuIEZvcm1Hcm91cCBhcm1hZG8gYSBtYW5vLCBwb3JxdWUgbWV6Y2xhciB0aXBvc1xuICogY3VzdG9tIGNvbiBlbCBmb3JtIGdlbsOpcmljbyBlcyBtw6FzIGNvbXBsaWNhZG8gcXVlIGNvbnN0cnVpciBlbCBwcm9waW8uXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1zdXJ2ZXktcmVzcG9uc2UnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBUaXRsZUNvbXBvbmVudCxcbiAgICBUZXh0SW5wdXRDb21wb25lbnQsXG4gICAgVGV4dGFyZWFJbnB1dENvbXBvbmVudCxcbiAgICBTZWFyY2hTZWxlY3RvckNvbXBvbmVudCxcbiAgICBSYWRpb0lucHV0Q29tcG9uZW50LFxuICAgIENoZWNrSW5wdXRDb21wb25lbnQsXG4gICAgRGF0ZVBpY2tlckNvbXBvbmVudCxcbiAgICBGb3JtRmllbGRDb21wb25lbnQsXG4gICAgRW1vamlSYXRpbmdDb21wb25lbnQsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIEVtcHR5U3RhdGVDb21wb25lbnQsXG4gICAgRm9ybUNvbXBvbmVudCxcbiAgICBTa2VsZXRvbkxheW91dENvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKGxvYWRpbmcoKSkge1xuICAgICAgPGRpdiBjbGFzcz1cInN1cnZleS1yZXNwb25zZV9fbG9hZGluZ1wiPlxuICAgICAgICA8dmFsLXNrZWxldG9uLWxheW91dCBbcHJvcHNdPVwieyBwcmVzZXQ6ICdmb3JtJywgcm93czogNCwgc2hvd0F2YXRhcjogZmFsc2UgfVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIGlmIChsb2FkRXJyb3IoKSkge1xuICAgICAgPHZhbC1lbXB0eS1zdGF0ZSBbcHJvcHNdPVwibG9hZEVycm9yU3RhdGUoKVwiIC8+XG4gICAgfSBAZWxzZSBpZiAoYWxyZWFkeUFuc3dlcmVkKCkpIHtcbiAgICAgIDx2YWwtZW1wdHktc3RhdGUgW3Byb3BzXT1cImFscmVhZHlBbnN3ZXJlZFN0YXRlKClcIiAvPlxuICAgIH0gQGVsc2UgaWYgKHNlbnQoKSkge1xuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzdXJ2ZXktcmVzcG9uc2Ugc3VydmV5LXJlc3BvbnNlX19zdWNjZXNzXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICAgIEBpZiAoc3VjY2Vzc1ByZXNlbnRhdGlvbigpOyBhcyBzdWNjZXNzKSB7XG4gICAgICAgICAgPGltZyBjbGFzcz1cInN1cnZleS1yZXNwb25zZV9fc3VjY2Vzcy1pbWFnZVwiIFtzcmNdPVwic3VjY2Vzcy5pbWFnZVVybFwiIFthbHRdPVwic3VjY2Vzcy50aXRsZVwiIC8+XG4gICAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IGNvbnRlbnQ6IHN1Y2Nlc3MudGl0bGUsIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycgfVwiIC8+XG4gICAgICAgICAgQGlmIChzdWNjZXNzLm1lc3NhZ2UpIHtcbiAgICAgICAgICAgIDx2YWwtdGl0bGUgW3Byb3BzXT1cInsgY29udGVudDogc3VjY2Vzcy5tZXNzYWdlLCBzaXplOiAnbGFyZ2UnLCBjb2xvcjogJycsIGJvbGQ6IGZhbHNlIH1cIiAvPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8cCBjbGFzcz1cInN1cnZleS1yZXNwb25zZV9fc3VjY2Vzcy1ub3RlXCI+e3sgc3VjY2Vzcy5jbG9zZU5vdGUgfX08L3A+XG4gICAgICAgIH1cbiAgICAgIDwvc2VjdGlvbj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiAodHlwZUNvbmZpZygpOyBhcyBjZmcpIHtcbiAgICAgICAgQGlmICghY2FuUmVzcG9uZCgpKSB7XG4gICAgICAgICAgPHZhbC1lbXB0eS1zdGF0ZSBbcHJvcHNdPVwibG9naW5SZXF1aXJlZFN0YXRlKClcIiAvPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LXJlc3BvbnNlXCI+XG4gICAgICAgICAgICBAaWYgKGNmZy5wcmVzZW50YXRpb24/LmhlYWRlckltYWdlVXJsKSB7XG4gICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJzdXJ2ZXktcmVzcG9uc2VfX2hlYWRlci1pbWFnZVwiIFtzcmNdPVwiY2ZnLnByZXNlbnRhdGlvbj8uaGVhZGVySW1hZ2VVcmxcIiBbYWx0XT1cImNmZy5sYWJlbFwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cInsgY29udGVudDogY2ZnLmxhYmVsLCBzaXplOiAnc21hbGwnLCBjb2xvcjogJ2RhcmsnIH1cIiAvPlxuICAgICAgICAgICAgQGlmIChjZmcuc3VidGl0bGUpIHtcbiAgICAgICAgICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwieyBjb250ZW50OiBjZmcuc3VidGl0bGUsIHNpemU6ICdsYXJnZScsIGNvbG9yOiAnJywgYm9sZDogZmFsc2UgfVwiIC8+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDwhLS0gU29sbyBzaSBlbCBUSVBPIGxvIGV4aWdlIChza2lwU3VibWl0dGVySWRlbnRpdHkgYXVzZW50ZS9mYWxzZSkuXG4gICAgICAgICAgICAgICAgIFVuYSBlbmN1ZXN0YSBsbyBwb25lIGVuIHRydWUgeSBhY8OhIG5vIHNlIHBpZGUgbmFkYTogc2kgZWxcbiAgICAgICAgICAgICAgICAgZm9ybXVsYXJpbyBsb3MgZXhpZ2llcmEgaWd1YWwsIHF1ZWRhcsOtYW4gcmVxdWVyaWRvcyBlXG4gICAgICAgICAgICAgICAgIGludmlzaWJsZXMgeSBlbCBlbnbDrW8gc2UgYmxvcXVlYXLDrWEgc2luIG1vdGl2byBhIGxhIHZpc3RhLiAtLT5cbiAgICAgICAgICAgIEBpZiAobmVlZHNJZGVudGl0eSgpKSB7XG4gICAgICAgICAgICAgIDx2YWwtdGV4dC1pbnB1dFxuICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7IGNvbnRyb2w6IG5hbWVDb250cm9sLCBsYWJlbDogdCgnbmFtZUxhYmVsJyksIHBsYWNlaG9sZGVyOiB0KCduYW1lUGxhY2Vob2xkZXInKSB9XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPHZhbC10ZXh0LWlucHV0XG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgIGNvbnRyb2w6IGVtYWlsQ29udHJvbCxcbiAgICAgICAgICAgICAgICAgIGlucHV0VHlwZTogJ2VtYWlsJyxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiB0KCdlbWFpbExhYmVsJyksXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogdCgnZW1haWxQbGFjZWhvbGRlcicpLFxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKGZvcm1Qcm9wcygpOyBhcyBwcm9wcykge1xuICAgICAgICAgICAgICBAaWYgKGhhc1Jlc3BvbnNlU3RlcHMoKSkge1xuICAgICAgICAgICAgICAgIDxuYXYgY2xhc3M9XCJzdXJ2ZXktcmVzcG9uc2VfX3N0ZXBzXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdzdGVwc0xhYmVsJylcIj5cbiAgICAgICAgICAgICAgICAgIEBmb3IgKHNlY3Rpb24gb2YgcmVzcG9uc2VTZWN0aW9ucygpOyB0cmFjayBzZWN0aW9uLm5hbWU7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdXJ2ZXktcmVzcG9uc2VfX3N0ZXBcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zdXJ2ZXktcmVzcG9uc2VfX3N0ZXAtLWFjdGl2ZV09XCJyZXNwb25zZVN0ZXAoKSA9PT0gaVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cInJlc3BvbnNlU3RlcCgpID09PSBpID8gJ3N0ZXAnIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBpICsgMSB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9uYXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPHZhbC1mb3JtIFtwcm9wc109XCJwcm9wc1wiIChvblN1Ym1pdCk9XCJzdWJtaXQoJGV2ZW50KVwiIChvbkludmFsaWQpPVwibWFya0ludmFsaWQoKVwiIC8+XG4gICAgICAgICAgICAgIEBpZiAoaGFzUmVzcG9uc2VTdGVwcygpKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZleS1yZXNwb25zZV9fYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgQGlmIChyZXNwb25zZVN0ZXAoKSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1idXR0b24gW3Byb3BzXT1cInJlc3BvbnNlQmFja1Byb3BzKClcIiAob25DbGljayk9XCJwcmV2aW91c1Jlc3BvbnNlU3RlcCgpXCIgLz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBpZiAocmVzcG9uc2VTdGVwKCkgPCByZXNwb25zZVNlY3Rpb25zKCkubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwicmVzcG9uc2VOZXh0UHJvcHMoKVwiIChvbkNsaWNrKT1cIm5leHRSZXNwb25zZVN0ZXAoKVwiIC8+XG4gICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1idXR0b24gW3Byb3BzXT1cInJlc3BvbnNlU3VibWl0UHJvcHMoKVwiIChvbkNsaWNrKT1cInN1Ym1pdCgpXCIgLz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgLnN1cnZleS1yZXNwb25zZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTZweDtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktcmVzcG9uc2VfX2hlYWRlci1pbWFnZSxcbiAgICAgIC5zdXJ2ZXktcmVzcG9uc2VfX3N1Y2Nlc3MtaW1hZ2Uge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDIyMHB4O1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS12YWwtcmFkaXVzLW1kLCAxMnB4KTtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktcmVzcG9uc2VfX3N1Y2Nlc3Mge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG4gICAgICAuc3VydmV5LXJlc3BvbnNlX19zdWNjZXNzLWltYWdlIHtcbiAgICAgICAgbWF4LXdpZHRoOiAzMjBweDtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktcmVzcG9uc2VfX3N1Y2Nlc3Mtbm90ZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgY29sb3I6IHJnYmEodmFyKC0taW9uLXRleHQtY29sb3ItcmdiLCAwLCAwLCAwKSwgMC43Mik7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktcmVzcG9uc2VfX3N0ZXBzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICB9XG4gICAgICAuc3VydmV5LXJlc3BvbnNlX19zdGVwIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMTIpKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGNvbG9yOiByZ2JhKHZhcigtLWlvbi10ZXh0LWNvbG9yLXJnYiwgMCwgMCwgMCksIDAuNzIpO1xuICAgICAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktcmVzcG9uc2VfX3N0ZXAtLWFjdGl2ZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgfVxuICAgICAgLnN1cnZleS1yZXNwb25zZV9fYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuICAgICAgLnN1cnZleS1yZXNwb25zZV9fZXJyb3Ige1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktcmVzcG9uc2VfX2hpbnQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICAgICAgY29sb3I6IHJnYmEodmFyKC0taW9uLXRleHQtY29sb3ItcmdiLCAwLCAwLCAwKSwgMC43Mik7XG4gICAgICB9XG4gICAgICAuc3VydmV5LXJlc3BvbnNlX19sb2FkaW5nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU3VydmV5UmVzcG9uc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwcm9wcyE6IFN1cnZleVJlc3BvbnNlTWV0YWRhdGE7XG4gIEBPdXRwdXQoKSByZWFkb25seSBzdWJtaXR0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFN1cnZleVJlc3BvbnNlU3VibWl0RXZlbnQ+KCk7XG4gIEBWaWV3Q2hpbGQoRm9ybUNvbXBvbmVudCkgcHJpdmF0ZSBmb3JtQ29tcG9uZW50PzogRm9ybUNvbXBvbmVudDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGF1dGggPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3RzID0gaW5qZWN0KFJlcXVlc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBlcnJvcnMgPSBpbmplY3QoVmFsdGVjaEVycm9yU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybVNjaGVtYXMgPSBpbmplY3QoRm9ybVNjaGVtYUJ1aWxkZXJTZXJ2aWNlKTtcblxuICByZWFkb25seSBlbW9qaVR5cGUgPSBGSUVMRF9UWVBFX0VNT0pJX1JBVElORztcbiAgcmVhZG9ubHkgc2VsZWN0VHlwZSA9IElucHV0VHlwZS5TRUxFQ1Q7XG5cbiAgcmVhZG9ubHkgbG9hZGluZyA9IHNpZ25hbCh0cnVlKTtcbiAgcmVhZG9ubHkgbG9hZEVycm9yID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgc2VudCA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IHNlbmRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSB0eXBlQ29uZmlnID0gc2lnbmFsPFJlcXVlc3RUeXBlQ29uZmlnIHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IGFscmVhZHlBbnN3ZXJlZCA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IHJlc3BvbnNlU3RlcCA9IHNpZ25hbCgwKTtcbiAgcmVhZG9ubHkgcmVzcG9uc2VWYWx1ZXMgPSBzaWduYWw8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+KHt9KTtcblxuICByZWFkb25seSBuYW1lQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgeyBub25OdWxsYWJsZTogdHJ1ZSB9KTtcbiAgcmVhZG9ubHkgZW1haWxDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pO1xuICBwcml2YXRlIGZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAoIXRoaXMuaTE4bi5oYXNOYW1lc3BhY2UoTkFNRVNQQUNFKSkge1xuICAgICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMoTkFNRVNQQUNFLCBTVVJWRVlfUkVTUE9OU0VfSTE4Tik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNmZyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMucmVxdWVzdHMuZ2V0UHVibGljUmVxdWVzdFR5cGUodGhpcy5wcm9wcy50eXBlSWQpKTtcbiAgICAgIHRoaXMudHlwZUNvbmZpZy5zZXQoY2ZnKTtcbiAgICAgIHRoaXMuYnVpbGRDb21wYXRpYmlsaXR5Rm9ybShjZmcpO1xuICAgICAgdGhpcy5jb25maWd1cmVJZGVudGl0eShjZmcpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhpcy5sb2FkRXJyb3Iuc2V0KHRydWUpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbmZpZ3VyZUlkZW50aXR5KGNmZzogUmVxdWVzdFR5cGVDb25maWcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5uZWVkc0lkZW50aXR5Rm9yKGNmZykpIHtcbiAgICAgIC8vIHNldFZhbGlkYXRvcnMgcG9yIHPDrSBzb2xvIG5vIHJlY2FsY3VsYSBlbCBzdGF0dXMgZGVsIGNvbnRyb2wg4oCUIHNpbiBlbFxuICAgICAgLy8gdXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpIGRlIGFsIGxhZG8sIG5hbWUvZW1haWwgcXVlZGFiYW4gVkFMSUQgaGFzdGFcbiAgICAgIC8vIGVsIHByw7N4aW1vIGNhbWJpbyBkZSB2YWxvciwgeSBzdWJtaXQoKSBkZWphYmEgcGFzYXIgdW4gZW52w61vIGFuw7NuaW1vXG4gICAgICAvLyBzaW4gaWRlbnRpZGFkLlxuICAgICAgdGhpcy5uYW1lQ29udHJvbC5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICB0aGlzLm5hbWVDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIHRoaXMuZW1haWxDb250cm9sLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdKTtcbiAgICAgIHRoaXMuZW1haWxDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ29tcGF0aWJpbGl0eUZvcm0oY2ZnOiBSZXF1ZXN0VHlwZUNvbmZpZyk6IHZvaWQge1xuICAgIGNvbnN0IGdyb3VwOiBSZWNvcmQ8c3RyaW5nLCBGb3JtQ29udHJvbD4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IHEgb2YgdGhpcy5zdXJ2ZXlTY2hlbWFGb3JGb3JtKGNmZy5maWVsZFNjaGVtYSkpIHtcbiAgICAgIGNvbnN0IGluaXRpYWwgPSBxLnR5cGUgPT09ICdNVUxUSV9TRUxFQ1RfU0lNUExFJyA/IFtdIDogcS50eXBlID09PSAnVE9HR0xFJyA/IGZhbHNlIDogJyc7XG4gICAgICBjb25zdCB2YWxpZGF0b3JzID0gcS5yZXF1aXJlZCAmJiBxLnR5cGUgIT09ICdUT0dHTEUnID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW107XG4gICAgICBncm91cFtxLm5hbWVdID0gbmV3IEZvcm1Db250cm9sKGluaXRpYWwsIHZhbGlkYXRvcnMpO1xuICAgIH1cbiAgICB0aGlzLmZvcm0gPSBuZXcgRm9ybUdyb3VwKGdyb3VwKTtcbiAgfVxuXG4gIHJlYWRvbmx5IGZvcm1Qcm9wcyA9IGNvbXB1dGVkPEZvcm1NZXRhZGF0YSB8IG51bGw+KCgpID0+IHtcbiAgICBjb25zdCBjZmcgPSB0aGlzLnR5cGVDb25maWcoKTtcbiAgICBpZiAoIWNmZykgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVNjaGVtYXMuYnVpbGRGb3JtKFxuICAgICAgdGhpcy5zdXJ2ZXlTY2hlbWFGb3JGb3JtKGNmZy5maWVsZFNjaGVtYSksXG4gICAgICBOQU1FU1BBQ0UsXG4gICAgICAnJyxcbiAgICAgICdzdWJtaXQnLFxuICAgICAgdGhpcy5zZW5kaW5nKCkgPyBDb21wb25lbnRTdGF0ZXMuV09SS0lORyA6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVEXG4gICAgKTtcbiAgICBjb25zdCBzZWN0aW9ucyA9IHRoaXMuaGFzUmVzcG9uc2VTdGVwcygpID8gW3RoaXMuc2VjdGlvbldpdGhTdG9yZWRWYWx1ZXModGhpcy5yZXNwb25zZVNlY3Rpb25zKClbdGhpcy5yZXNwb25zZVN0ZXAoKV0pXSA6IGZvcm0uc2VjdGlvbnM7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmZvcm0sXG4gICAgICBzZWN0aW9ucyxcbiAgICAgIHNob3dEaXZpZGVyczogZmFsc2UsXG4gICAgICBmaWVsZFNwYWNpbmc6IDE2LFxuICAgICAgY29udHJvbGxlZDogdGhpcy5oYXNSZXNwb25zZVN0ZXBzKCksXG4gICAgfTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcmVzcG9uc2VTZWN0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjZmcgPSB0aGlzLnR5cGVDb25maWcoKTtcbiAgICBpZiAoIWNmZykgcmV0dXJuIFtdO1xuICAgIHJldHVybiB0aGlzLmZvcm1TY2hlbWFzLmJ1aWxkRm9ybSh0aGlzLnN1cnZleVNjaGVtYUZvckZvcm0oY2ZnLmZpZWxkU2NoZW1hKSwgTkFNRVNQQUNFLCAnJywgJ3N1Ym1pdCcpLnNlY3Rpb25zO1xuICB9KTtcblxuICAvKiogUHJlZ3VudGFzIG9yZGVuYWRhcywgZXhwdWVzdGFzIHBhcmEgdGVzdHMvaG9zdHMgcXVlIGluc3BlY2Npb25hbiBlbCBzY2hlbWEgcmVzdWVsdG8uICovXG4gIHJlYWRvbmx5IHF1ZXN0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjZmcgPSB0aGlzLnR5cGVDb25maWcoKTtcbiAgICByZXR1cm4gY2ZnID8gWy4uLmNmZy5maWVsZFNjaGVtYV0uc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpIDogW107XG4gIH0pO1xuXG4gIGhhc1Jlc3BvbnNlU3RlcHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmVzcG9uc2VTZWN0aW9ucygpLmZpbHRlcihzZWN0aW9uID0+ICEhc2VjdGlvbi5uYW1lKS5sZW5ndGggPiAxO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWN0aW9uV2l0aFN0b3JlZFZhbHVlcyhzZWN0aW9uOiBGb3JtTWV0YWRhdGFbJ3NlY3Rpb25zJ11bbnVtYmVyXSk6IEZvcm1NZXRhZGF0YVsnc2VjdGlvbnMnXVtudW1iZXJdIHtcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLnJlc3BvbnNlVmFsdWVzKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnNlY3Rpb24sXG4gICAgICBmaWVsZHM6IHNlY3Rpb24uZmllbGRzLm1hcChmaWVsZCA9PiAoe1xuICAgICAgICAuLi5maWVsZCxcbiAgICAgICAgdmFsdWU6IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZXMsIGZpZWxkLm5hbWUpID8gdmFsdWVzW2ZpZWxkLm5hbWVdIDogZmllbGQudmFsdWUsXG4gICAgICB9KSksXG4gICAgfTtcbiAgfVxuXG4gIHF1ZXN0aW9uQ29udHJvbChuYW1lOiBzdHJpbmcpOiBGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuICh0aGlzLmZvcm1Db21wb25lbnQ/LkZvcm0uZ2V0KG5hbWUpID8/IHRoaXMuZm9ybS5nZXQobmFtZSkpIGFzIEZvcm1Db250cm9sO1xuICB9XG5cbiAgb3B0aW9uc09mKHE6IHsgb3B0aW9ucz86IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBvcmRlcj86IG51bWJlciB9W10gfSk6IElucHV0T3B0aW9uW10ge1xuICAgIHJldHVybiBbLi4uKHEub3B0aW9ucyA/PyBbXSldXG4gICAgICAubWFwKChvLCBpbmRleCkgPT4gKHsgaWQ6IG8uaWQsIG5hbWU6IG8ubmFtZSwgb3JkZXI6IG8ub3JkZXIgPz8gaW5kZXggfSkpXG4gICAgICAuc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpO1xuICB9XG5cbiAgaW5wdXRUeXBlT2YodHlwZTogc3RyaW5nKTogJ3RleHQnIHwgJ2VtYWlsJyB8ICdudW1iZXInIHwgJ3RlbCcge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnRU1BSUwnOlxuICAgICAgICByZXR1cm4gJ2VtYWlsJztcbiAgICAgIGNhc2UgJ05VTUJFUic6XG4gICAgICAgIHJldHVybiAnbnVtYmVyJztcbiAgICAgIGNhc2UgJ1BIT05FJzpcbiAgICAgICAgcmV0dXJuICd0ZWwnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICd0ZXh0JztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN1cnZleVNjaGVtYUZvckZvcm0oc2NoZW1hOiBGaWVsZFNjaGVtYURlZltdKTogRmllbGRTY2hlbWFEZWZbXSB7XG4gICAgcmV0dXJuIHNjaGVtYS5tYXAocSA9PiB7XG4gICAgICBpZiAocS50eXBlID09PSAnTVVMVElfU0VMRUNUJykge1xuICAgICAgICByZXR1cm4geyAuLi5xLCB0eXBlOiAnTVVMVElfU0VMRUNUX1NJTVBMRScsIHZhbHVlOiBbXSB9O1xuICAgICAgfVxuICAgICAgaWYgKEJPT0xFQU5fVFlQRVMuaW5jbHVkZXMocS50eXBlKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnEsXG4gICAgICAgICAgdHlwZTogJ1RPR0dMRScsXG4gICAgICAgICAgdmFsdWU6IGZhbHNlLFxuICAgICAgICAgIHZhbGlkYXRvcnM6IChxLnZhbGlkYXRvcnMgPz8gW10pLmZpbHRlcih2ID0+IHYgIT09ICdyZXF1aXJlZCcpLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHE7XG4gICAgfSk7XG4gIH1cblxuICAvKiogUHVlZGUgcmVzcG9uZGVyIHNpbiBzZXNpw7NuIHNpIGVsIHRpcG8gbG8gcGVybWl0ZTsgc2kgbm8sIGhhY2UgZmFsdGEgbG9naW4uICovXG4gIHJlYWRvbmx5IGNhblJlc3BvbmQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuYXV0aC5pc0F1dGhlbnRpY2F0ZWQoKSkgcmV0dXJuIHRydWU7XG4gICAgcmV0dXJuICEhdGhpcy50eXBlQ29uZmlnKCk/LmFsbG93QW5vbnltb3VzO1xuICB9KTtcblxuICAvKipcbiAgICogRWwgdGlwbyBwdWVkZSBzZWd1aXIgZXhpZ2llbmRvIGlkZW50aWRhZCBhbCBhbsOzbmltbyAoYHNraXBTdWJtaXR0ZXJJZGVudGl0eWBcbiAgICogYXVzZW50ZSBvIGZhbHNlKTogZXMgZWwgY2FzbyBkZSBsYXMgc29saWNpdHVkZXMgZGUgQ2hlc2VkL09raGVsaWEsIGRvbmRlXG4gICAqIHNhYmVyIHF1acOpbiBwaWRpw7MgRVMgZWwgcHVudG8uIFVuYSBlbmN1ZXN0YSBwb25lIGVsIGZsYWcgZW4gdHJ1ZSB5IGVudG9uY2VzXG4gICAqIG5vIHNlIHBpZGUgbmFkYSDigJQgc2kgbGEgb3JnYW5pemFjacOzbiBuZWNlc2l0YSBlbCBjb3JyZW8gZGUgcXVpZW4gcmVzcG9uZGUsXG4gICAqIGxvIGFncmVnYSBjb21vIHVuYSBQUkVHVU5UQSBkZSB0aXBvIENvcnJlby4gRXNvIGVzIGNvbmZpZ3VyYWNpw7NuIGRlIGxhXG4gICAqIGVuY3Vlc3RhOyBlbCBmb3JtdWxhcmlvIG5vIGNvYnJhIHBlYWplIHBvciBzdSBjdWVudGEuXG4gICAqL1xuICBuZWVkc0lkZW50aXR5KCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmF1dGguaXNBdXRoZW50aWNhdGVkKCkpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gIXRoaXMudHlwZUNvbmZpZygpPy5za2lwU3VibWl0dGVySWRlbnRpdHk7XG4gIH1cblxuICBwcml2YXRlIG5lZWRzSWRlbnRpdHlGb3IoY2ZnOiBSZXF1ZXN0VHlwZUNvbmZpZyk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmF1dGguaXNBdXRoZW50aWNhdGVkKCkpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gIWNmZy5za2lwU3VibWl0dGVySWRlbnRpdHk7XG4gIH1cblxuICByZWFkb25seSBzdWJtaXRTdGF0ZSA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLnNlbmRpbmcoKSA/ICdXT1JLSU5HJyA6ICdFTkFCTEVEJykpO1xuXG4gIHJlYWRvbmx5IG11bHRpU2VsZWN0RXJyb3IgPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbkNvbnRyb2xNZW1vID0gbmV3IE1hcDxzdHJpbmcsIEZvcm1Db250cm9sPGJvb2xlYW4+PigpO1xuXG4gIG9wdGlvbkNvbnRyb2wobmFtZTogc3RyaW5nLCBvcHRpb25JZDogc3RyaW5nKTogRm9ybUNvbnRyb2w8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGtleSA9IGAke25hbWV9Ojoke29wdGlvbklkfWA7XG4gICAgbGV0IGNvbnRyb2wgPSB0aGlzLm9wdGlvbkNvbnRyb2xNZW1vLmdldChrZXkpO1xuICAgIGlmIChjb250cm9sKSByZXR1cm4gY29udHJvbDtcbiAgICBjb250cm9sID0gbmV3IEZvcm1Db250cm9sKGZhbHNlLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pO1xuICAgIGNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShzZWxlY3RlZCA9PiB7XG4gICAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZm9ybUNvbXBvbmVudD8uRm9ybS5nZXQobmFtZSk7XG4gICAgICBjb25zdCBjb21wYXRpYmlsaXR5Q29udHJvbCA9IHRoaXMuZm9ybS5nZXQobmFtZSk7XG4gICAgICBjb25zdCBjdXJyZW50ID0gQXJyYXkuaXNBcnJheShmb3JtQ29udHJvbD8udmFsdWUpXG4gICAgICAgID8gZm9ybUNvbnRyb2wudmFsdWVcbiAgICAgICAgOiBBcnJheS5pc0FycmF5KGNvbXBhdGliaWxpdHlDb250cm9sPy52YWx1ZSlcbiAgICAgICAgICA/IGNvbXBhdGliaWxpdHlDb250cm9sLnZhbHVlXG4gICAgICAgICAgOiBbXTtcbiAgICAgIGNvbnN0IG5leHQgPSBzZWxlY3RlZFxuICAgICAgICA/IFsuLi5uZXcgU2V0KFsuLi5jdXJyZW50LCBvcHRpb25JZF0pXVxuICAgICAgICA6IGN1cnJlbnQuZmlsdGVyKChpZDogc3RyaW5nKSA9PiBpZCAhPT0gb3B0aW9uSWQpO1xuICAgICAgZm9ybUNvbnRyb2w/LnNldFZhbHVlKG5leHQpO1xuICAgICAgY29tcGF0aWJpbGl0eUNvbnRyb2w/LnNldFZhbHVlKG5leHQpO1xuICAgIH0pO1xuICAgIHRoaXMub3B0aW9uQ29udHJvbE1lbW8uc2V0KGtleSwgY29udHJvbCk7XG4gICAgcmV0dXJuIGNvbnRyb2w7XG4gIH1cblxuICBtYXJrSW52YWxpZCgpOiB2b2lkIHtcbiAgICB0aGlzLm11bHRpU2VsZWN0RXJyb3Iuc2V0KHRydWUpO1xuICAgIHRoaXMubmFtZUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgIHRoaXMuZW1haWxDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgfVxuXG4gIGFzeW5jIHN1Ym1pdChldmVudD86IEZvcm1TdWJtaXQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5zZW5kaW5nKCkpIHJldHVybjtcbiAgICBjb25zdCBzdGVwcGVkID0gdGhpcy5oYXNSZXNwb25zZVN0ZXBzKCk7XG4gICAgaWYgKCFldmVudCAmJiBzdGVwcGVkICYmICF0aGlzLmZvcm1Db21wb25lbnQ/LnZhbGlkYXRlKCkpIHtcbiAgICAgIHRoaXMubWFya0ludmFsaWQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFldmVudCAmJiAhc3RlcHBlZCAmJiB0aGlzLmZvcm0uaW52YWxpZCkge1xuICAgICAgdGhpcy5tYXJrSW52YWxpZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50RmllbGRzID0gZXZlbnQ/LmZpZWxkcyA/PyB0aGlzLmZvcm1Db21wb25lbnQ/LkZvcm0uZ2V0UmF3VmFsdWUoKSA/PyB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKTtcbiAgICBjb25zdCBmaWVsZHMgPSBzdGVwcGVkXG4gICAgICA/IHtcbiAgICAgICAgICAuLi50aGlzLnJlc3BvbnNlVmFsdWVzKCksXG4gICAgICAgICAgLi4uY3VycmVudEZpZWxkcyxcbiAgICAgICAgfVxuICAgICAgOiBjdXJyZW50RmllbGRzO1xuICAgIGlmICghZXZlbnQgJiYgdGhpcy5oYXNNaXNzaW5nUmVxdWlyZWRNdWx0aVNlbGVjdChmaWVsZHMpKSB7XG4gICAgICB0aGlzLm1hcmtJbnZhbGlkKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY2ZnID0gdGhpcy50eXBlQ29uZmlnKCk7XG4gICAgaWYgKCFjZmcpIHJldHVybjtcblxuICAgIGlmICh0aGlzLm5lZWRzSWRlbnRpdHkoKSAmJiAodGhpcy5uYW1lQ29udHJvbC5pbnZhbGlkIHx8IHRoaXMuZW1haWxDb250cm9sLmludmFsaWQpKSB7XG4gICAgICB0aGlzLm5hbWVDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgIHRoaXMuZW1haWxDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNlbmRpbmcuc2V0KHRydWUpO1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICB0eXBlOiBjZmcudHlwZUlkLFxuICAgICAgdGl0bGU6IGNmZy5sYWJlbCxcbiAgICAgIGZpZWxkcyxcbiAgICAgIC4uLih0aGlzLnByb3BzLmludml0ZVRva2VuID8geyBpbnZpdGVUb2tlbjogdGhpcy5wcm9wcy5pbnZpdGVUb2tlbiB9IDoge30pLFxuICAgICAgLi4uKHRoaXMubmVlZHNJZGVudGl0eSgpXG4gICAgICAgID8geyBzdWJtaXR0ZXI6IHsgbmFtZTogdGhpcy5uYW1lQ29udHJvbC52YWx1ZS50cmltKCksIGVtYWlsOiB0aGlzLmVtYWlsQ29udHJvbC52YWx1ZS50cmltKCkgfSB9XG4gICAgICAgIDoge30pLFxuICAgIH07XG5cbiAgICBjb25zdCBjYWxsJCA9IHRoaXMuYXV0aC5pc0F1dGhlbnRpY2F0ZWQoKVxuICAgICAgPyB0aGlzLnJlcXVlc3RzLmNyZWF0ZVJlcXVlc3QocGF5bG9hZClcbiAgICAgIDogdGhpcy5yZXF1ZXN0cy5jcmVhdGVBbm9ueW1vdXNSZXF1ZXN0KHBheWxvYWQpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKGNhbGwkKTtcbiAgICAgIHRoaXMuc2VuZGluZy5zZXQoZmFsc2UpO1xuICAgICAgdGhpcy5zZW50LnNldCh0cnVlKTtcbiAgICAgIHRoaXMuc3VibWl0dGVkLmVtaXQoeyByZXF1ZXN0SWQ6IHJlcy5yZXF1ZXN0SWQgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLnNlbmRpbmcuc2V0KGZhbHNlKTtcbiAgICAgIC8vIFVuYSBpbnZpdGFjacOzbiB5YSB1c2FkYSBubyBlcyB1biBmYWxsbzogZXMgbGEgcmVzcHVlc3RhIGNvcnJlY3RhIGFsXG4gICAgICAvLyBzZWd1bmRvIGludGVudG8uIFVuIHRvYXN0IHJvam8gZGUgXCJubyBwdWRpbW9zIGVudmlhclwiIGhhcsOtYSBjcmVlciBxdWVcbiAgICAgIC8vIHNlIHBlcmRpw7MgbG8gcXVlIHlhIHNlIGhhYsOtYSByZXNwb25kaWRvLlxuICAgICAgaWYgKGludGVycHJldEVycm9yKGVycikuY29kZSA9PT0gSU5WSVRFX1VTRURfQ09ERSkge1xuICAgICAgICB0aGlzLmFscmVhZHlBbnN3ZXJlZC5zZXQodHJ1ZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHtcbiAgICAgICAgY29udGV4dDogJ3N1cnZleVJlc3BvbnNlLnN1Ym1pdCcsXG4gICAgICAgIGZhbGxiYWNrS2V5OiAnc2VuZEVycm9yJyxcbiAgICAgICAgaTE4bk5hbWVzcGFjZTogTkFNRVNQQUNFLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmV4dFJlc3BvbnNlU3RlcCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZm9ybUNvbXBvbmVudD8udmFsaWRhdGUoKSkge1xuICAgICAgdGhpcy5tYXJrSW52YWxpZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnJlc3BvbnNlVmFsdWVzLnVwZGF0ZSh2YWx1ZXMgPT4gKHsgLi4udmFsdWVzLCAuLi50aGlzLmZvcm1Db21wb25lbnQ/LkZvcm0uZ2V0UmF3VmFsdWUoKSB9KSk7XG4gICAgdGhpcy5yZXNwb25zZVN0ZXAudXBkYXRlKHN0ZXAgPT4gTWF0aC5taW4oc3RlcCArIDEsIHRoaXMucmVzcG9uc2VTZWN0aW9ucygpLmxlbmd0aCAtIDEpKTtcbiAgfVxuXG4gIHByZXZpb3VzUmVzcG9uc2VTdGVwKCk6IHZvaWQge1xuICAgIHRoaXMucmVzcG9uc2VWYWx1ZXMudXBkYXRlKHZhbHVlcyA9PiAoeyAuLi52YWx1ZXMsIC4uLnRoaXMuZm9ybUNvbXBvbmVudD8uRm9ybS5nZXRSYXdWYWx1ZSgpIH0pKTtcbiAgICB0aGlzLnJlc3BvbnNlU3RlcC51cGRhdGUoc3RlcCA9PiBNYXRoLm1heChzdGVwIC0gMSwgMCkpO1xuICB9XG5cbiAgcmVzcG9uc2VCYWNrUHJvcHMoKTogQnV0dG9uTWV0YWRhdGEge1xuICAgIHJldHVybiB7XG4gICAgICB0b2tlbjogJ3N1cnZleS1yZXNwb25zZS1iYWNrJyxcbiAgICAgIHRleHQ6IHRoaXMudCgncHJldmlvdXMnKSxcbiAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgIH07XG4gIH1cblxuICByZXNwb25zZU5leHRQcm9wcygpOiBCdXR0b25NZXRhZGF0YSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRva2VuOiAnc3VydmV5LXJlc3BvbnNlLW5leHQnLFxuICAgICAgdGV4dDogdGhpcy50KCduZXh0JyksXG4gICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgZmlsbDogJ3NvbGlkJyxcbiAgICAgIHNoYXBlOiAncm91bmQnLFxuICAgICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfTtcbiAgfVxuXG4gIHJlc3BvbnNlU3VibWl0UHJvcHMoKTogQnV0dG9uTWV0YWRhdGEge1xuICAgIHJldHVybiB7XG4gICAgICB0b2tlbjogJ3N1cnZleS1yZXNwb25zZS1zdWJtaXQnLFxuICAgICAgdGV4dDogdGhpcy50KCdzdWJtaXQnKSxcbiAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICBmaWxsOiAnc29saWQnLFxuICAgICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgIHN0YXRlOiB0aGlzLnNlbmRpbmcoKSA/IENvbXBvbmVudFN0YXRlcy5XT1JLSU5HIDogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzTWlzc2luZ1JlcXVpcmVkTXVsdGlTZWxlY3QoZmllbGRzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5xdWVzdGlvbnMoKVxuICAgICAgLmZpbHRlcihxID0+IHEudHlwZSA9PT0gJ01VTFRJX1NFTEVDVCcgJiYgcS5yZXF1aXJlZClcbiAgICAgIC5zb21lKHEgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGZpZWxkcyA/IGZpZWxkc1txLm5hbWVdIDogdGhpcy5mb3JtLmdldChxLm5hbWUpPy52YWx1ZTtcbiAgICAgICAgcmV0dXJuICFBcnJheS5pc0FycmF5KHZhbHVlKSB8fCAhdmFsdWUubGVuZ3RoO1xuICAgICAgfSk7XG4gIH1cblxuICByZWFkb25seSBhbHJlYWR5QW5zd2VyZWRTdGF0ZSA9IGNvbXB1dGVkPEVtcHR5U3RhdGVNZXRhZGF0YT4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHsgdmFyaWFudDogJ2VtcHR5JywgdGl0bGU6IHRoaXMudCgnYWxyZWFkeVRpdGxlJyksIGRlc2NyaXB0aW9uOiB0aGlzLnQoJ2FscmVhZHlCb2R5JykgfTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgc2VudFN0YXRlID0gY29tcHV0ZWQ8RW1wdHlTdGF0ZU1ldGFkYXRhPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4geyB2YXJpYW50OiAnZW1wdHknLCB0aXRsZTogdGhpcy50KCdzZW50VGl0bGUnKSwgZGVzY3JpcHRpb246IHRoaXMudCgnc2VudEJvZHknKSB9O1xuICB9KTtcblxuICByZWFkb25seSBzdWNjZXNzUHJlc2VudGF0aW9uID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNmZyA9IHRoaXMudHlwZUNvbmZpZygpO1xuICAgIGNvbnN0IHRpdGxlID0gY2ZnPy5wcmVzZW50YXRpb24/LnN1Y2Nlc3NUaXRsZT8udHJpbSgpIHx8IHRoaXMudCgnc2VudFRpdGxlJyk7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNmZz8ucHJlc2VudGF0aW9uPy5zdWNjZXNzTWVzc2FnZT8udHJpbSgpIHx8IHRoaXMudCgnc2VudEJvZHknKTtcbiAgICBjb25zdCBpbWFnZVVybCA9IGNmZz8ucHJlc2VudGF0aW9uPy5zdWNjZXNzSW1hZ2VVcmw/LnRyaW0oKSB8fCBERUZBVUxUX1NVQ0NFU1NfSU1BR0U7XG4gICAgcmV0dXJuIHsgdGl0bGUsIG1lc3NhZ2UsIGltYWdlVXJsLCBjbG9zZU5vdGU6IHRoaXMudCgnc2VudENsb3NlTm90ZScpIH07XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGxvYWRFcnJvclN0YXRlID0gY29tcHV0ZWQ8RW1wdHlTdGF0ZU1ldGFkYXRhPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4geyB2YXJpYW50OiAnZXJyb3InLCB0aXRsZTogdGhpcy50KCdsb2FkRXJyb3JUaXRsZScpLCBkZXNjcmlwdGlvbjogdGhpcy50KCdsb2FkRXJyb3JCb2R5JykgfTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgbG9naW5SZXF1aXJlZFN0YXRlID0gY29tcHV0ZWQ8RW1wdHlTdGF0ZU1ldGFkYXRhPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4geyB2YXJpYW50OiAnZXJyb3InLCB0aXRsZTogdGhpcy50KCdsb2dpblJlcXVpcmVkVGl0bGUnKSwgZGVzY3JpcHRpb246IHRoaXMudCgnbG9naW5SZXF1aXJlZEJvZHknKSB9O1xuICB9KTtcblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCBOQU1FU1BBQ0UpO1xuICB9XG59XG4iXX0=
591
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LXJlc3BvbnNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvc3VydmV5LXJlc3BvbnNlL3N1cnZleS1yZXNwb25zZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDNUUsT0FBTyxFQUFrQix1QkFBdUIsRUFBcUIsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDL0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlE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QWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLHVCQUF1QjtxQkFDeEIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0ZUO3dEQTRFUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ2EsU0FBUztzQkFBM0IsTUFBTTtnQkFDMkIsYUFBYTtzQkFBOUMsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXF1ZXN0cy9yZXF1ZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRmllbGRTY2hlbWFEZWYsIEZJRUxEX1RZUEVfRU1PSklfUkFUSU5HLCBSZXF1ZXN0VHlwZUNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JlcXVlc3RzL3R5cGVzJztcbmltcG9ydCB7IFZhbHRlY2hFcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lcnJvcnMvdmFsdGVjaC1lcnJvci5zZXJ2aWNlJztcbmltcG9ydCB7IGludGVycHJldEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXJyb3JzL2ludGVycHJldC1lcnJvcic7XG5pbXBvcnQgeyBGb3JtU2NoZW1hQnVpbGRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mb3Jtcy9mb3JtLXNjaGVtYS1idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2Rpc3BsYXkvZGlzcGxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dGFyZWFJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90ZXh0YXJlYS1pbnB1dC90ZXh0YXJlYS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvc2VsZWN0LWlucHV0L3NlbGVjdC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmFkaW9JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9yYWRpby1pbnB1dC9yYWRpby1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hlY2tJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9jaGVjay1pbnB1dC9jaGVjay1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1vamlSYXRpbmdDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9lbW9qaS1yYXRpbmcvZW1vamktcmF0aW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25NZXRhZGF0YSwgQ29tcG9uZW50U3RhdGVzLCBJbnB1dE1ldGFkYXRhLCBJbnB1dE9wdGlvbiwgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL3R5cGVzJztcbmltcG9ydCB7IFN1cnZleVJlc3BvbnNlTWV0YWRhdGEsIFN1cnZleVJlc3BvbnNlU3VibWl0RXZlbnQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFNVUlZFWV9SRVNQT05TRV9JMThOIH0gZnJvbSAnLi9zdXJ2ZXktcmVzcG9uc2UuaTE4bic7XG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS9mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa2VsZXRvbkxheW91dENvbXBvbmVudCB9IGZyb20gJy4uL3NrZWxldG9uLWxheW91dC9za2VsZXRvbi1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1NZXRhZGF0YSwgRm9ybVN1Ym1pdCB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuY29uc3QgTkFNRVNQQUNFID0gJ1N1cnZleVJlc3BvbnNlJztcblxuLyoqIENvZGUgZGVsIGJhY2tlbmQgY3VhbmRvIGxhIGludml0YWNpw7NuIGRlIGVzYSBwZXJzb25hIHlhIHNlIHJlc3BvbmRpw7MuICovXG5jb25zdCBJTlZJVEVfVVNFRF9DT0RFID0gJ1NVUlZFWV9JTlZJVEVfQUxSRUFEWV9VU0VEJztcblxuLyoqIFRpcG9zIGN1eWEgcmVzcHVlc3RhIGVzIHVuIGJvb2xlYW5vLCBubyB1biB0ZXh0by4gKi9cbmNvbnN0IEJPT0xFQU5fVFlQRVMgPSBbJ0NIRUNLJywgJ1RPR0dMRSddO1xuY29uc3QgREVGQVVMVF9TVUNDRVNTX0lNQUdFID1cbiAgJ2RhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9JTIyaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmclMjIgdmlld0JveD0lMjIwIDAgMzIwIDIyMCUyMiByb2xlPSUyMmltZyUyMiBhcmlhLWxhYmVsPSUyMlN1Y2Nlc3MlMjIlM0UlM0NyZWN0IHdpZHRoPSUyMjMyMCUyMiBoZWlnaHQ9JTIyMjIwJTIyIHJ4PSUyMjMyJTIyIGZpbGw9JTIyJTIzZmZmNWZiJTIyLyUzRSUzQ2NpcmNsZSBjeD0lMjIxNjAlMjIgY3k9JTIyOTQlMjIgcj0lMjI1NiUyMiBmaWxsPSUyMiUyM2Y5MDBiMiUyMi8lM0UlM0NwYXRoIGQ9JTIyTTEzMiA5NC41IDE1My41IDExNiAxOTEgNzclMjIgZmlsbD0lMjJub25lJTIyIHN0cm9rZT0lMjIlMjNmZmYlMjIgc3Ryb2tlLXdpZHRoPSUyMjE0JTIyIHN0cm9rZS1saW5lY2FwPSUyMnJvdW5kJTIyIHN0cm9rZS1saW5lam9pbj0lMjJyb3VuZCUyMi8lM0UlM0NwYXRoIGQ9JTIyTTkyIDE2OGgxMzYlMjIgc3Ryb2tlPSUyMiUyMzJiMjgzNiUyMiBzdHJva2Utd2lkdGg9JTIyMTAlMjIgc3Ryb2tlLWxpbmVjYXA9JTIycm91bmQlMjIgb3BhY2l0eT0lMjIuMTYlMjIvJTNFJTNDcGF0aCBkPSUyMk0xMTYgMTg3aDg4JTIyIHN0cm9rZT0lMjIlMjMyYjI4MzYlMjIgc3Ryb2tlLXdpZHRoPSUyMjglMjIgc3Ryb2tlLWxpbmVjYXA9JTIycm91bmQlMjIgb3BhY2l0eT0lMjIuMTIlMjIvJTNFJTNDL3N2ZyUzRSc7XG5cbi8qKlxuICogdmFsLXN1cnZleS1yZXNwb25zZVxuICpcbiAqIFRvbWEgdW5hIGVuY3Vlc3RhIChgUmVxdWVzdFR5cGVDb25maWdgIGNvbiBgVHlwZTogXCJzdXJ2ZXk6PHNsdWc+XCJgLCBBRFItMDkyKVxuICogeSBsYSBwcmVzZW50YSBjb21vIGZvcm11bGFyaW8gZGUgcmVzcHVlc3RhIOKAlCBlbCBvcmdhbmlzbSBxdWUgdW4gdmlzaXRhbnRlXG4gKiB2ZSBhbCBhYnJpciBlbCBsaW5rIGRlIHVuYSBlbmN1ZXN0YS4gU2VsZi1jb250YWluZWQsIGlndWFsIHF1ZVxuICogYHZhbC1jb250ZW50LXJlYWN0aW9uYC9gdmFsLWFjY2Vzcy1yZXF1ZXN0LXZpZXdgOiBsZWUgZWwgdGlwbywgYXJtYSBlbFxuICogZm9ybXVsYXJpbywgZW52w61hIGxhIHJlc3B1ZXN0YSwgc2luIHF1ZSBlbCBjb25zdW1lciB0ZW5nYSBxdWUgb3JxdWVzdGFyXG4gKiBuYWRhIGRlIGVzby5cbiAqXG4gKiBTb2xvIGxlZSB0aXBvcyBgdmlzaWJpbGl0eTogJ1BVQkxJQydgICh2w61hIGBnZXRQdWJsaWNSZXF1ZXN0VHlwZWAsIHNpblxuICogYXV0aCkg4oCUIGVzIGVsIGNhc28gZGUgdXNvIHF1ZSBkZXNjcmliZSBlbCBBRFIgKGxpbmsgZW52aWFkbyBhIGNvbXByYWRvcmVzLFxuICogcXVlIHB1ZWRlbiBubyB0ZW5lciBjdWVudGEpLiBFbmN1ZXN0YXMgQVVUSEVOVElDQVRFRC9PUkcvSU5URVJOQUwgZXN0w6FuXG4gKiBmdWVyYSBkZSBhbGNhbmNlIGRlIGVzdGUgY29tcG9uZW50ZSBwb3IgYWhvcmEuXG4gKlxuICogQ2FkYSBwcmVndW50YSBzZSByZW5kZXJpemEgbWVkaWFudGUgYHZhbC1mb3JtYCwgcXVlIGNvbm9jZSBlbCBjYXTDoWxvZ29cbiAqIHJlc3BvbmRpYmxlIGRlIGVuY3Vlc3RhczogdGV4dG8sIG9wY2lvbmVzLCBib29sZWFub3MsIGZlY2hhLCByYXRpbmcgeSBudW1iZXJcbiAqIHBpY2tlci4gRXN0ZSBjb21wb25lbnRlIHNvbG8gZGVjaWRlIGVsIGZsdWpvIHDDumJsaWNvLCBpZGVudGlkYWQgb3BjaW9uYWwsXG4gKiBwYXNvcyBwb3Igc2VjY2nDs24geSBlbnbDrW8gZGUgcmVzcHVlc3Rhcy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXN1cnZleS1yZXNwb25zZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBEaXNwbGF5Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICAgIFRleHRJbnB1dENvbXBvbmVudCxcbiAgICBUZXh0YXJlYUlucHV0Q29tcG9uZW50LFxuICAgIFNlYXJjaFNlbGVjdG9yQ29tcG9uZW50LFxuICAgIFJhZGlvSW5wdXRDb21wb25lbnQsXG4gICAgQ2hlY2tJbnB1dENvbXBvbmVudCxcbiAgICBEYXRlUGlja2VyQ29tcG9uZW50LFxuICAgIEZvcm1GaWVsZENvbXBvbmVudCxcbiAgICBFbW9qaVJhdGluZ0NvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgRW1wdHlTdGF0ZUNvbXBvbmVudCxcbiAgICBGb3JtQ29tcG9uZW50LFxuICAgIFNrZWxldG9uTGF5b3V0Q29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LXJlc3BvbnNlX19sb2FkaW5nXCI+XG4gICAgICAgIDx2YWwtc2tlbGV0b24tbGF5b3V0IFtwcm9wc109XCJ7IHByZXNldDogJ2Zvcm0nLCByb3dzOiA0LCBzaG93QXZhdGFyOiBmYWxzZSB9XCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIH0gQGVsc2UgaWYgKGxvYWRFcnJvcigpKSB7XG4gICAgICA8dmFsLWVtcHR5LXN0YXRlIFtwcm9wc109XCJsb2FkRXJyb3JTdGF0ZSgpXCIgLz5cbiAgICB9IEBlbHNlIGlmIChhbHJlYWR5QW5zd2VyZWQoKSkge1xuICAgICAgPHZhbC1lbXB0eS1zdGF0ZSBbcHJvcHNdPVwiYWxyZWFkeUFuc3dlcmVkU3RhdGUoKVwiIC8+XG4gICAgfSBAZWxzZSBpZiAoc2VudCgpKSB7XG4gICAgICA8c2VjdGlvbiBjbGFzcz1cInN1cnZleS1yZXNwb25zZSBzdXJ2ZXktcmVzcG9uc2VfX3N1Y2Nlc3NcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgICAgQGlmIChzdWNjZXNzUHJlc2VudGF0aW9uKCk7IGFzIHN1Y2Nlc3MpIHtcbiAgICAgICAgICA8aW1nIGNsYXNzPVwic3VydmV5LXJlc3BvbnNlX19zdWNjZXNzLWltYWdlXCIgW3NyY109XCJzdWNjZXNzLmltYWdlVXJsXCIgW2FsdF09XCJzdWNjZXNzLnRpdGxlXCIgLz5cbiAgICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cInsgY29udGVudDogc3VjY2Vzcy50aXRsZSwgc2l6ZTogJ3NtYWxsJywgY29sb3I6ICdkYXJrJyB9XCIgLz5cbiAgICAgICAgICBAaWYgKHN1Y2Nlc3MubWVzc2FnZSkge1xuICAgICAgICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwieyBjb250ZW50OiBzdWNjZXNzLm1lc3NhZ2UsIHNpemU6ICdsYXJnZScsIGNvbG9yOiAnJywgYm9sZDogZmFsc2UgfVwiIC8+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxwIGNsYXNzPVwic3VydmV5LXJlc3BvbnNlX19zdWNjZXNzLW5vdGVcIj57eyBzdWNjZXNzLmNsb3NlTm90ZSB9fTwvcD5cbiAgICAgICAgfVxuICAgICAgPC9zZWN0aW9uPlxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmICh0eXBlQ29uZmlnKCk7IGFzIGNmZykge1xuICAgICAgICBAaWYgKCFjYW5SZXNwb25kKCkpIHtcbiAgICAgICAgICA8dmFsLWVtcHR5LXN0YXRlIFtwcm9wc109XCJsb2dpblJlcXVpcmVkU3RhdGUoKVwiIC8+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXktcmVzcG9uc2VcIj5cbiAgICAgICAgICAgIEBpZiAoY2ZnLnByZXNlbnRhdGlvbj8uaGVhZGVySW1hZ2VVcmwpIHtcbiAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInN1cnZleS1yZXNwb25zZV9faGVhZGVyLWltYWdlXCIgW3NyY109XCJjZmcucHJlc2VudGF0aW9uPy5oZWFkZXJJbWFnZVVybFwiIFthbHRdPVwiY2ZnLmxhYmVsXCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBjb250ZW50OiBjZmcubGFiZWwsIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycgfVwiIC8+XG4gICAgICAgICAgICBAaWYgKGNmZy5zdWJ0aXRsZSkge1xuICAgICAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IGNmZy5zdWJ0aXRsZSwgc2l6ZTogJ2xhcmdlJywgY29sb3I6ICcnLCBib2xkOiBmYWxzZSB9XCIgLz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPCEtLSBTb2xvIHNpIGVsIFRJUE8gbG8gZXhpZ2UgKHNraXBTdWJtaXR0ZXJJZGVudGl0eSBhdXNlbnRlL2ZhbHNlKS5cbiAgICAgICAgICAgICAgICAgVW5hIGVuY3Vlc3RhIGxvIHBvbmUgZW4gdHJ1ZSB5IGFjw6Egbm8gc2UgcGlkZSBuYWRhOiBzaSBlbFxuICAgICAgICAgICAgICAgICBmb3JtdWxhcmlvIGxvcyBleGlnaWVyYSBpZ3VhbCwgcXVlZGFyw61hbiByZXF1ZXJpZG9zIGVcbiAgICAgICAgICAgICAgICAgaW52aXNpYmxlcyB5IGVsIGVudsOtbyBzZSBibG9xdWVhcsOtYSBzaW4gbW90aXZvIGEgbGEgdmlzdGEuIC0tPlxuICAgICAgICAgICAgQGlmIChuZWVkc0lkZW50aXR5KCkpIHtcbiAgICAgICAgICAgICAgPHZhbC10ZXh0LWlucHV0XG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cInsgY29udHJvbDogbmFtZUNvbnRyb2wsIGxhYmVsOiB0KCduYW1lTGFiZWwnKSwgcGxhY2Vob2xkZXI6IHQoJ25hbWVQbGFjZWhvbGRlcicpIH1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8dmFsLXRleHQtaW5wdXRcbiAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgY29udHJvbDogZW1haWxDb250cm9sLFxuICAgICAgICAgICAgICAgICAgaW5wdXRUeXBlOiAnZW1haWwnLFxuICAgICAgICAgICAgICAgICAgbGFiZWw6IHQoJ2VtYWlsTGFiZWwnKSxcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0KCdlbWFpbFBsYWNlaG9sZGVyJyksXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoZm9ybVByb3BzKCk7IGFzIHByb3BzKSB7XG4gICAgICAgICAgICAgIEBpZiAoaGFzUmVzcG9uc2VTdGVwcygpKSB7XG4gICAgICAgICAgICAgICAgPG5hdiBjbGFzcz1cInN1cnZleS1yZXNwb25zZV9fc3RlcHNcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ3N0ZXBzTGFiZWwnKVwiPlxuICAgICAgICAgICAgICAgICAgQGZvciAoc2VjdGlvbiBvZiByZXNwb25zZVNlY3Rpb25zKCk7IHRyYWNrIHNlY3Rpb24ubmFtZTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN1cnZleS1yZXNwb25zZV9fc3RlcFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnN1cnZleS1yZXNwb25zZV9fc3RlcC0tYWN0aXZlXT1cInJlc3BvbnNlU3RlcCgpID09PSBpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwicmVzcG9uc2VTdGVwKCkgPT09IGkgPyAnc3RlcCcgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGkgKyAxIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L25hdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8dmFsLWZvcm0gW3Byb3BzXT1cInByb3BzXCIgKG9uU3VibWl0KT1cInN1Ym1pdCgkZXZlbnQpXCIgKG9uSW52YWxpZCk9XCJtYXJrSW52YWxpZCgpXCIgLz5cbiAgICAgICAgICAgICAgQGlmIChoYXNSZXNwb25zZVN0ZXBzKCkpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LXJlc3BvbnNlX19hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICBAaWYgKHJlc3BvbnNlU3RlcCgpID4gMCkge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwicmVzcG9uc2VCYWNrUHJvcHMoKVwiIChvbkNsaWNrKT1cInByZXZpb3VzUmVzcG9uc2VTdGVwKClcIiAvPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGlmIChyZXNwb25zZVN0ZXAoKSA8IHJlc3BvbnNlU2VjdGlvbnMoKS5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtYnV0dG9uIFtwcm9wc109XCJyZXNwb25zZU5leHRQcm9wcygpXCIgKG9uQ2xpY2spPVwibmV4dFJlc3BvbnNlU3RlcCgpXCIgLz5cbiAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwicmVzcG9uc2VTdWJtaXRQcm9wcygpXCIgKG9uQ2xpY2spPVwic3VibWl0KClcIiAvPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgICAuc3VydmV5LXJlc3BvbnNlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgfVxuICAgICAgLnN1cnZleS1yZXNwb25zZV9faGVhZGVyLWltYWdlLFxuICAgICAgLnN1cnZleS1yZXNwb25zZV9fc3VjY2Vzcy1pbWFnZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogMjIwcHg7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXZhbC1yYWRpdXMtbWQsIDEycHgpO1xuICAgICAgfVxuICAgICAgLnN1cnZleS1yZXNwb25zZV9fc3VjY2VzcyB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktcmVzcG9uc2VfX3N1Y2Nlc3MtaW1hZ2Uge1xuICAgICAgICBtYXgtd2lkdGg6IDMyMHB4O1xuICAgICAgfVxuICAgICAgLnN1cnZleS1yZXNwb25zZV9fc3VjY2Vzcy1ub3RlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBjb2xvcjogcmdiYSh2YXIoLS1pb24tdGV4dC1jb2xvci1yZ2IsIDAsIDAsIDApLCAwLjcyKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgfVxuICAgICAgLnN1cnZleS1yZXNwb25zZV9fc3RlcHMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDZweDtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktcmVzcG9uc2VfX3N0ZXAge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlvbi1ib3JkZXItY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4xMikpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgY29sb3I6IHJnYmEodmFyKC0taW9uLXRleHQtY29sb3ItcmdiLCAwLCAwLCAwKSwgMC43Mik7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgfVxuICAgICAgLnN1cnZleS1yZXNwb25zZV9fc3RlcC0tYWN0aXZlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gICAgICB9XG4gICAgICAuc3VydmV5LXJlc3BvbnNlX19hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG4gICAgICAuc3VydmV5LXJlc3BvbnNlX19lcnJvciB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYW5nZXIpO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgfVxuICAgICAgLnN1cnZleS1yZXNwb25zZV9faGludCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgICAgICBjb2xvcjogcmdiYSh2YXIoLS1pb24tdGV4dC1jb2xvci1yZ2IsIDAsIDAsIDApLCAwLjcyKTtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktcmVzcG9uc2VfX2xvYWRpbmcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTdXJ2ZXlSZXNwb25zZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHByb3BzITogU3VydmV5UmVzcG9uc2VNZXRhZGF0YTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHN1Ym1pdHRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U3VydmV5UmVzcG9uc2VTdWJtaXRFdmVudD4oKTtcbiAgQFZpZXdDaGlsZChGb3JtQ29tcG9uZW50KSBwcml2YXRlIGZvcm1Db21wb25lbnQ/OiBGb3JtQ29tcG9uZW50O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXV0aCA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVxdWVzdHMgPSBpbmplY3QoUmVxdWVzdFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVycm9ycyA9IGluamVjdChWYWx0ZWNoRXJyb3JTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmb3JtU2NoZW1hcyA9IGluamVjdChGb3JtU2NoZW1hQnVpbGRlclNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IGVtb2ppVHlwZSA9IEZJRUxEX1RZUEVfRU1PSklfUkFUSU5HO1xuICByZWFkb25seSBzZWxlY3RUeXBlID0gSW5wdXRUeXBlLlNFTEVDVDtcblxuICByZWFkb25seSBsb2FkaW5nID0gc2lnbmFsKHRydWUpO1xuICByZWFkb25seSBsb2FkRXJyb3IgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBzZW50ID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgc2VuZGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IHR5cGVDb25maWcgPSBzaWduYWw8UmVxdWVzdFR5cGVDb25maWcgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgYWxyZWFkeUFuc3dlcmVkID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgcmVzcG9uc2VTdGVwID0gc2lnbmFsKDApO1xuICByZWFkb25seSByZXNwb25zZVZhbHVlcyA9IHNpZ25hbDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oe30pO1xuXG4gIHJlYWRvbmx5IG5hbWVDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pO1xuICByZWFkb25seSBlbWFpbENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIHsgbm9uTnVsbGFibGU6IHRydWUgfSk7XG4gIHByaXZhdGUgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghdGhpcy5pMThuLmhhc05hbWVzcGFjZShOQU1FU1BBQ0UpKSB7XG4gICAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyhOQU1FU1BBQ0UsIFNVUlZFWV9SRVNQT05TRV9JMThOKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY2ZnID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5yZXF1ZXN0cy5nZXRQdWJsaWNSZXF1ZXN0VHlwZSh0aGlzLnByb3BzLnR5cGVJZCkpO1xuICAgICAgdGhpcy50eXBlQ29uZmlnLnNldChjZmcpO1xuICAgICAgdGhpcy5idWlsZENvbXBhdGliaWxpdHlGb3JtKGNmZyk7XG4gICAgICB0aGlzLmNvbmZpZ3VyZUlkZW50aXR5KGNmZyk7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLmxvYWRFcnJvci5zZXQodHJ1ZSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29uZmlndXJlSWRlbnRpdHkoY2ZnOiBSZXF1ZXN0VHlwZUNvbmZpZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5lZWRzSWRlbnRpdHlGb3IoY2ZnKSkge1xuICAgICAgLy8gc2V0VmFsaWRhdG9ycyBwb3Igc8OtIHNvbG8gbm8gcmVjYWxjdWxhIGVsIHN0YXR1cyBkZWwgY29udHJvbCDigJQgc2luIGVsXG4gICAgICAvLyB1cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCkgZGUgYWwgbGFkbywgbmFtZS9lbWFpbCBxdWVkYWJhbiBWQUxJRCBoYXN0YVxuICAgICAgLy8gZWwgcHLDs3hpbW8gY2FtYmlvIGRlIHZhbG9yLCB5IHN1Ym1pdCgpIGRlamFiYSBwYXNhciB1biBlbnbDrW8gYW7Ds25pbW9cbiAgICAgIC8vIHNpbiBpZGVudGlkYWQuXG4gICAgICB0aGlzLm5hbWVDb250cm9sLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgIHRoaXMubmFtZUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgdGhpcy5lbWFpbENvbnRyb2wuc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbF0pO1xuICAgICAgdGhpcy5lbWFpbENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDb21wYXRpYmlsaXR5Rm9ybShjZmc6IFJlcXVlc3RUeXBlQ29uZmlnKTogdm9pZCB7XG4gICAgY29uc3QgZ3JvdXA6IFJlY29yZDxzdHJpbmcsIEZvcm1Db250cm9sPiA9IHt9O1xuICAgIGZvciAoY29uc3QgcSBvZiB0aGlzLnN1cnZleVNjaGVtYUZvckZvcm0oY2ZnLmZpZWxkU2NoZW1hKSkge1xuICAgICAgY29uc3QgaW5pdGlhbCA9IHEudHlwZSA9PT0gJ01VTFRJX1NFTEVDVF9TSU1QTEUnID8gW10gOiBxLnR5cGUgPT09ICdUT0dHTEUnID8gZmFsc2UgOiAnJztcbiAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBxLnJlcXVpcmVkICYmIHEudHlwZSAhPT0gJ1RPR0dMRScgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gOiBbXTtcbiAgICAgIGdyb3VwW3EubmFtZV0gPSBuZXcgRm9ybUNvbnRyb2woaW5pdGlhbCwgdmFsaWRhdG9ycyk7XG4gICAgfVxuICAgIHRoaXMuZm9ybSA9IG5ldyBGb3JtR3JvdXAoZ3JvdXApO1xuICB9XG5cbiAgcmVhZG9ubHkgZm9ybVByb3BzID0gY29tcHV0ZWQ8Rm9ybU1ldGFkYXRhIHwgbnVsbD4oKCkgPT4ge1xuICAgIGNvbnN0IGNmZyA9IHRoaXMudHlwZUNvbmZpZygpO1xuICAgIGlmICghY2ZnKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtU2NoZW1hcy5idWlsZEZvcm0oXG4gICAgICB0aGlzLnN1cnZleVNjaGVtYUZvckZvcm0oY2ZnLmZpZWxkU2NoZW1hKSxcbiAgICAgIE5BTUVTUEFDRSxcbiAgICAgICcnLFxuICAgICAgJ3N1Ym1pdCcsXG4gICAgICB0aGlzLnNlbmRpbmcoKSA/IENvbXBvbmVudFN0YXRlcy5XT1JLSU5HIDogQ29tcG9uZW50U3RhdGVzLkVOQUJMRURcbiAgICApO1xuICAgIGNvbnN0IHNlY3Rpb25zID0gdGhpcy5oYXNSZXNwb25zZVN0ZXBzKCkgPyBbdGhpcy5zZWN0aW9uV2l0aFN0b3JlZFZhbHVlcyh0aGlzLnJlc3BvbnNlU2VjdGlvbnMoKVt0aGlzLnJlc3BvbnNlU3RlcCgpXSldIDogZm9ybS5zZWN0aW9ucztcbiAgICByZXR1cm4ge1xuICAgICAgLi4uZm9ybSxcbiAgICAgIHNlY3Rpb25zLFxuICAgICAgc2hvd0RpdmlkZXJzOiBmYWxzZSxcbiAgICAgIGZpZWxkU3BhY2luZzogMTYsXG4gICAgICBjb250cm9sbGVkOiB0aGlzLmhhc1Jlc3BvbnNlU3RlcHMoKSxcbiAgICB9O1xuICB9KTtcblxuICByZWFkb25seSByZXNwb25zZVNlY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNmZyA9IHRoaXMudHlwZUNvbmZpZygpO1xuICAgIGlmICghY2ZnKSByZXR1cm4gW107XG4gICAgcmV0dXJuIHRoaXMuZm9ybVNjaGVtYXMuYnVpbGRGb3JtKHRoaXMuc3VydmV5U2NoZW1hRm9yRm9ybShjZmcuZmllbGRTY2hlbWEpLCBOQU1FU1BBQ0UsICcnLCAnc3VibWl0Jykuc2VjdGlvbnM7XG4gIH0pO1xuXG4gIC8qKiBQcmVndW50YXMgb3JkZW5hZGFzLCBleHB1ZXN0YXMgcGFyYSB0ZXN0cy9ob3N0cyBxdWUgaW5zcGVjY2lvbmFuIGVsIHNjaGVtYSByZXN1ZWx0by4gKi9cbiAgcmVhZG9ubHkgcXVlc3Rpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNmZyA9IHRoaXMudHlwZUNvbmZpZygpO1xuICAgIHJldHVybiBjZmcgPyBbLi4uY2ZnLmZpZWxkU2NoZW1hXS5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcikgOiBbXTtcbiAgfSk7XG5cbiAgaGFzUmVzcG9uc2VTdGVwcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZXNwb25zZVNlY3Rpb25zKCkuZmlsdGVyKHNlY3Rpb24gPT4gISFzZWN0aW9uLm5hbWUpLmxlbmd0aCA+IDE7XG4gIH1cblxuICBwcml2YXRlIHNlY3Rpb25XaXRoU3RvcmVkVmFsdWVzKHNlY3Rpb246IEZvcm1NZXRhZGF0YVsnc2VjdGlvbnMnXVtudW1iZXJdKTogRm9ybU1ldGFkYXRhWydzZWN0aW9ucyddW251bWJlcl0ge1xuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMucmVzcG9uc2VWYWx1ZXMoKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc2VjdGlvbixcbiAgICAgIGZpZWxkczogc2VjdGlvbi5maWVsZHMubWFwKGZpZWxkID0+ICh7XG4gICAgICAgIC4uLmZpZWxkLFxuICAgICAgICB2YWx1ZTogT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlcywgZmllbGQubmFtZSkgPyB2YWx1ZXNbZmllbGQubmFtZV0gOiBmaWVsZC52YWx1ZSxcbiAgICAgIH0pKSxcbiAgICB9O1xuICB9XG5cbiAgcXVlc3Rpb25Db250cm9sKG5hbWU6IHN0cmluZyk6IEZvcm1Db250cm9sIHtcbiAgICByZXR1cm4gKHRoaXMuZm9ybUNvbXBvbmVudD8uRm9ybS5nZXQobmFtZSkgPz8gdGhpcy5mb3JtLmdldChuYW1lKSkgYXMgRm9ybUNvbnRyb2w7XG4gIH1cblxuICBvcHRpb25zT2YocTogeyBvcHRpb25zPzogeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IG9yZGVyPzogbnVtYmVyIH1bXSB9KTogSW5wdXRPcHRpb25bXSB7XG4gICAgcmV0dXJuIFsuLi4ocS5vcHRpb25zID8/IFtdKV1cbiAgICAgIC5tYXAoKG8sIGluZGV4KSA9PiAoeyBpZDogby5pZCwgbmFtZTogby5uYW1lLCBvcmRlcjogby5vcmRlciA/PyBpbmRleCB9KSlcbiAgICAgIC5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcik7XG4gIH1cblxuICBpbnB1dFR5cGVPZih0eXBlOiBzdHJpbmcpOiAndGV4dCcgfCAnZW1haWwnIHwgJ251bWJlcicgfCAndGVsJyB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdFTUFJTCc6XG4gICAgICAgIHJldHVybiAnZW1haWwnO1xuICAgICAgY2FzZSAnTlVNQkVSJzpcbiAgICAgICAgcmV0dXJuICdudW1iZXInO1xuICAgICAgY2FzZSAnUEhPTkUnOlxuICAgICAgICByZXR1cm4gJ3RlbCc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ3RleHQnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3VydmV5U2NoZW1hRm9yRm9ybShzY2hlbWE6IEZpZWxkU2NoZW1hRGVmW10pOiBGaWVsZFNjaGVtYURlZltdIHtcbiAgICByZXR1cm4gc2NoZW1hLm1hcChxID0+IHtcbiAgICAgIGlmIChxLnR5cGUgPT09ICdNVUxUSV9TRUxFQ1QnKSB7XG4gICAgICAgIHJldHVybiB7IC4uLnEsIHR5cGU6ICdNVUxUSV9TRUxFQ1RfU0lNUExFJywgdmFsdWU6IFtdIH07XG4gICAgICB9XG4gICAgICBpZiAoQk9PTEVBTl9UWVBFUy5pbmNsdWRlcyhxLnR5cGUpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucSxcbiAgICAgICAgICB0eXBlOiAnVE9HR0xFJyxcbiAgICAgICAgICB2YWx1ZTogZmFsc2UsXG4gICAgICAgICAgdmFsaWRhdG9yczogKHEudmFsaWRhdG9ycyA/PyBbXSkuZmlsdGVyKHYgPT4gdiAhPT0gJ3JlcXVpcmVkJyksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gcTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBQdWVkZSByZXNwb25kZXIgc2luIHNlc2nDs24gc2kgZWwgdGlwbyBsbyBwZXJtaXRlOyBzaSBubywgaGFjZSBmYWx0YSBsb2dpbi4gKi9cbiAgcmVhZG9ubHkgY2FuUmVzcG9uZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5hdXRoLmlzQXV0aGVudGljYXRlZCgpKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gISF0aGlzLnR5cGVDb25maWcoKT8uYWxsb3dBbm9ueW1vdXM7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBFbCB0aXBvIHB1ZWRlIHNlZ3VpciBleGlnaWVuZG8gaWRlbnRpZGFkIGFsIGFuw7NuaW1vIChgc2tpcFN1Ym1pdHRlcklkZW50aXR5YFxuICAgKiBhdXNlbnRlIG8gZmFsc2UpOiBlcyBlbCBjYXNvIGRlIGxhcyBzb2xpY2l0dWRlcyBkZSBDaGVzZWQvT2toZWxpYSwgZG9uZGVcbiAgICogc2FiZXIgcXVpw6luIHBpZGnDsyBFUyBlbCBwdW50by4gVW5hIGVuY3Vlc3RhIHBvbmUgZWwgZmxhZyBlbiB0cnVlIHkgZW50b25jZXNcbiAgICogbm8gc2UgcGlkZSBuYWRhIOKAlCBzaSBsYSBvcmdhbml6YWNpw7NuIG5lY2VzaXRhIGVsIGNvcnJlbyBkZSBxdWllbiByZXNwb25kZSxcbiAgICogbG8gYWdyZWdhIGNvbW8gdW5hIFBSRUdVTlRBIGRlIHRpcG8gQ29ycmVvLiBFc28gZXMgY29uZmlndXJhY2nDs24gZGUgbGFcbiAgICogZW5jdWVzdGE7IGVsIGZvcm11bGFyaW8gbm8gY29icmEgcGVhamUgcG9yIHN1IGN1ZW50YS5cbiAgICovXG4gIG5lZWRzSWRlbnRpdHkoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuYXV0aC5pc0F1dGhlbnRpY2F0ZWQoKSkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiAhdGhpcy50eXBlQ29uZmlnKCk/LnNraXBTdWJtaXR0ZXJJZGVudGl0eTtcbiAgfVxuXG4gIHByaXZhdGUgbmVlZHNJZGVudGl0eUZvcihjZmc6IFJlcXVlc3RUeXBlQ29uZmlnKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuYXV0aC5pc0F1dGhlbnRpY2F0ZWQoKSkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiAhY2ZnLnNraXBTdWJtaXR0ZXJJZGVudGl0eTtcbiAgfVxuXG4gIHJlYWRvbmx5IHN1Ym1pdFN0YXRlID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuc2VuZGluZygpID8gJ1dPUktJTkcnIDogJ0VOQUJMRUQnKSk7XG5cbiAgcmVhZG9ubHkgbXVsdGlTZWxlY3RFcnJvciA9IHNpZ25hbChmYWxzZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uQ29udHJvbE1lbW8gPSBuZXcgTWFwPHN0cmluZywgRm9ybUNvbnRyb2w8Ym9vbGVhbj4+KCk7XG5cbiAgb3B0aW9uQ29udHJvbChuYW1lOiBzdHJpbmcsIG9wdGlvbklkOiBzdHJpbmcpOiBGb3JtQ29udHJvbDxib29sZWFuPiB7XG4gICAgY29uc3Qga2V5ID0gYCR7bmFtZX06OiR7b3B0aW9uSWR9YDtcbiAgICBsZXQgY29udHJvbCA9IHRoaXMub3B0aW9uQ29udHJvbE1lbW8uZ2V0KGtleSk7XG4gICAgaWYgKGNvbnRyb2wpIHJldHVybiBjb250cm9sO1xuICAgIGNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woZmFsc2UsIHsgbm9uTnVsbGFibGU6IHRydWUgfSk7XG4gICAgY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHNlbGVjdGVkID0+IHtcbiAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5mb3JtQ29tcG9uZW50Py5Gb3JtLmdldChuYW1lKTtcbiAgICAgIGNvbnN0IGNvbXBhdGliaWxpdHlDb250cm9sID0gdGhpcy5mb3JtLmdldChuYW1lKTtcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSBBcnJheS5pc0FycmF5KGZvcm1Db250cm9sPy52YWx1ZSlcbiAgICAgICAgPyBmb3JtQ29udHJvbC52YWx1ZVxuICAgICAgICA6IEFycmF5LmlzQXJyYXkoY29tcGF0aWJpbGl0eUNvbnRyb2w/LnZhbHVlKVxuICAgICAgICAgID8gY29tcGF0aWJpbGl0eUNvbnRyb2wudmFsdWVcbiAgICAgICAgICA6IFtdO1xuICAgICAgY29uc3QgbmV4dCA9IHNlbGVjdGVkXG4gICAgICAgID8gWy4uLm5ldyBTZXQoWy4uLmN1cnJlbnQsIG9wdGlvbklkXSldXG4gICAgICAgIDogY3VycmVudC5maWx0ZXIoKGlkOiBzdHJpbmcpID0+IGlkICE9PSBvcHRpb25JZCk7XG4gICAgICBmb3JtQ29udHJvbD8uc2V0VmFsdWUobmV4dCk7XG4gICAgICBjb21wYXRpYmlsaXR5Q29udHJvbD8uc2V0VmFsdWUobmV4dCk7XG4gICAgfSk7XG4gICAgdGhpcy5vcHRpb25Db250cm9sTWVtby5zZXQoa2V5LCBjb250cm9sKTtcbiAgICByZXR1cm4gY29udHJvbDtcbiAgfVxuXG4gIG1hcmtJbnZhbGlkKCk6IHZvaWQge1xuICAgIHRoaXMubXVsdGlTZWxlY3RFcnJvci5zZXQodHJ1ZSk7XG4gICAgdGhpcy5uYW1lQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgdGhpcy5lbWFpbENvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICB9XG5cbiAgYXN5bmMgc3VibWl0KGV2ZW50PzogRm9ybVN1Ym1pdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnNlbmRpbmcoKSkgcmV0dXJuO1xuICAgIGNvbnN0IHN0ZXBwZWQgPSB0aGlzLmhhc1Jlc3BvbnNlU3RlcHMoKTtcbiAgICBpZiAoIWV2ZW50ICYmIHN0ZXBwZWQgJiYgIXRoaXMuZm9ybUNvbXBvbmVudD8udmFsaWRhdGUoKSkge1xuICAgICAgdGhpcy5tYXJrSW52YWxpZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIWV2ZW50ICYmICFzdGVwcGVkICYmIHRoaXMuZm9ybS5pbnZhbGlkKSB7XG4gICAgICB0aGlzLm1hcmtJbnZhbGlkKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnRGaWVsZHMgPSBldmVudD8uZmllbGRzID8/IHRoaXMuZm9ybUNvbXBvbmVudD8uRm9ybS5nZXRSYXdWYWx1ZSgpID8/IHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpO1xuICAgIGNvbnN0IGZpZWxkcyA9IHN0ZXBwZWRcbiAgICAgID8ge1xuICAgICAgICAgIC4uLnRoaXMucmVzcG9uc2VWYWx1ZXMoKSxcbiAgICAgICAgICAuLi5jdXJyZW50RmllbGRzLFxuICAgICAgICB9XG4gICAgICA6IGN1cnJlbnRGaWVsZHM7XG4gICAgaWYgKCFldmVudCAmJiB0aGlzLmhhc01pc3NpbmdSZXF1aXJlZE11bHRpU2VsZWN0KGZpZWxkcykpIHtcbiAgICAgIHRoaXMubWFya0ludmFsaWQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjZmcgPSB0aGlzLnR5cGVDb25maWcoKTtcbiAgICBpZiAoIWNmZykgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMubmVlZHNJZGVudGl0eSgpICYmICh0aGlzLm5hbWVDb250cm9sLmludmFsaWQgfHwgdGhpcy5lbWFpbENvbnRyb2wuaW52YWxpZCkpIHtcbiAgICAgIHRoaXMubmFtZUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgdGhpcy5lbWFpbENvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2VuZGluZy5zZXQodHJ1ZSk7XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIHR5cGU6IGNmZy50eXBlSWQsXG4gICAgICB0aXRsZTogY2ZnLmxhYmVsLFxuICAgICAgZmllbGRzLFxuICAgICAgLi4uKHRoaXMucHJvcHMuaW52aXRlVG9rZW4gPyB7IGludml0ZVRva2VuOiB0aGlzLnByb3BzLmludml0ZVRva2VuIH0gOiB7fSksXG4gICAgICAuLi4odGhpcy5uZWVkc0lkZW50aXR5KClcbiAgICAgICAgPyB7IHN1Ym1pdHRlcjogeyBuYW1lOiB0aGlzLm5hbWVDb250cm9sLnZhbHVlLnRyaW0oKSwgZW1haWw6IHRoaXMuZW1haWxDb250cm9sLnZhbHVlLnRyaW0oKSB9IH1cbiAgICAgICAgOiB7fSksXG4gICAgfTtcblxuICAgIGNvbnN0IGNhbGwkID0gdGhpcy5hdXRoLmlzQXV0aGVudGljYXRlZCgpXG4gICAgICA/IHRoaXMucmVxdWVzdHMuY3JlYXRlUmVxdWVzdChwYXlsb2FkKVxuICAgICAgOiB0aGlzLnJlcXVlc3RzLmNyZWF0ZUFub255bW91c1JlcXVlc3QocGF5bG9hZCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oY2FsbCQpO1xuICAgICAgdGhpcy5zZW5kaW5nLnNldChmYWxzZSk7XG4gICAgICB0aGlzLnNlbnQuc2V0KHRydWUpO1xuICAgICAgdGhpcy5zdWJtaXR0ZWQuZW1pdCh7IHJlcXVlc3RJZDogcmVzLnJlcXVlc3RJZCB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuc2VuZGluZy5zZXQoZmFsc2UpO1xuICAgICAgLy8gVW5hIGludml0YWNpw7NuIHlhIHVzYWRhIG5vIGVzIHVuIGZhbGxvOiBlcyBsYSByZXNwdWVzdGEgY29ycmVjdGEgYWxcbiAgICAgIC8vIHNlZ3VuZG8gaW50ZW50by4gVW4gdG9hc3Qgcm9qbyBkZSBcIm5vIHB1ZGltb3MgZW52aWFyXCIgaGFyw61hIGNyZWVyIHF1ZVxuICAgICAgLy8gc2UgcGVyZGnDsyBsbyBxdWUgeWEgc2UgaGFiw61hIHJlc3BvbmRpZG8uXG4gICAgICBpZiAoaW50ZXJwcmV0RXJyb3IoZXJyKS5jb2RlID09PSBJTlZJVEVfVVNFRF9DT0RFKSB7XG4gICAgICAgIHRoaXMuYWxyZWFkeUFuc3dlcmVkLnNldCh0cnVlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5lcnJvcnMuaGFuZGxlKGVyciwge1xuICAgICAgICBjb250ZXh0OiAnc3VydmV5UmVzcG9uc2Uuc3VibWl0JyxcbiAgICAgICAgZmFsbGJhY2tLZXk6ICdzZW5kRXJyb3InLFxuICAgICAgICBpMThuTmFtZXNwYWNlOiBOQU1FU1BBQ0UsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZXh0UmVzcG9uc2VTdGVwKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5mb3JtQ29tcG9uZW50Py52YWxpZGF0ZSgpKSB7XG4gICAgICB0aGlzLm1hcmtJbnZhbGlkKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucmVzcG9uc2VWYWx1ZXMudXBkYXRlKHZhbHVlcyA9PiAoeyAuLi52YWx1ZXMsIC4uLnRoaXMuZm9ybUNvbXBvbmVudD8uRm9ybS5nZXRSYXdWYWx1ZSgpIH0pKTtcbiAgICB0aGlzLnJlc3BvbnNlU3RlcC51cGRhdGUoc3RlcCA9PiBNYXRoLm1pbihzdGVwICsgMSwgdGhpcy5yZXNwb25zZVNlY3Rpb25zKCkubGVuZ3RoIC0gMSkpO1xuICB9XG5cbiAgcHJldmlvdXNSZXNwb25zZVN0ZXAoKTogdm9pZCB7XG4gICAgdGhpcy5yZXNwb25zZVZhbHVlcy51cGRhdGUodmFsdWVzID0+ICh7IC4uLnZhbHVlcywgLi4udGhpcy5mb3JtQ29tcG9uZW50Py5Gb3JtLmdldFJhd1ZhbHVlKCkgfSkpO1xuICAgIHRoaXMucmVzcG9uc2VTdGVwLnVwZGF0ZShzdGVwID0+IE1hdGgubWF4KHN0ZXAgLSAxLCAwKSk7XG4gIH1cblxuICByZXNwb25zZUJhY2tQcm9wcygpOiBCdXR0b25NZXRhZGF0YSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRva2VuOiAnc3VydmV5LXJlc3BvbnNlLWJhY2snLFxuICAgICAgdGV4dDogdGhpcy50KCdwcmV2aW91cycpLFxuICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgIGZpbGw6ICdvdXRsaW5lJyxcbiAgICAgIHNoYXBlOiAncm91bmQnLFxuICAgICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfTtcbiAgfVxuXG4gIHJlc3BvbnNlTmV4dFByb3BzKCk6IEJ1dHRvbk1ldGFkYXRhIHtcbiAgICByZXR1cm4ge1xuICAgICAgdG9rZW46ICdzdXJ2ZXktcmVzcG9uc2UtbmV4dCcsXG4gICAgICB0ZXh0OiB0aGlzLnQoJ25leHQnKSxcbiAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICBmaWxsOiAnc29saWQnLFxuICAgICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgIHN0YXRlOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICB9O1xuICB9XG5cbiAgcmVzcG9uc2VTdWJtaXRQcm9wcygpOiBCdXR0b25NZXRhZGF0YSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRva2VuOiAnc3VydmV5LXJlc3BvbnNlLXN1Ym1pdCcsXG4gICAgICB0ZXh0OiB0aGlzLnQoJ3N1Ym1pdCcpLFxuICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgIGZpbGw6ICdzb2xpZCcsXG4gICAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgc3RhdGU6IHRoaXMuc2VuZGluZygpID8gQ29tcG9uZW50U3RhdGVzLldPUktJTkcgOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNNaXNzaW5nUmVxdWlyZWRNdWx0aVNlbGVjdChmaWVsZHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnF1ZXN0aW9ucygpXG4gICAgICAuZmlsdGVyKHEgPT4gcS50eXBlID09PSAnTVVMVElfU0VMRUNUJyAmJiBxLnJlcXVpcmVkKVxuICAgICAgLnNvbWUocSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZmllbGRzID8gZmllbGRzW3EubmFtZV0gOiB0aGlzLmZvcm0uZ2V0KHEubmFtZSk/LnZhbHVlO1xuICAgICAgICByZXR1cm4gIUFycmF5LmlzQXJyYXkodmFsdWUpIHx8ICF2YWx1ZS5sZW5ndGg7XG4gICAgICB9KTtcbiAgfVxuXG4gIHJlYWRvbmx5IGFscmVhZHlBbnN3ZXJlZFN0YXRlID0gY29tcHV0ZWQ8RW1wdHlTdGF0ZU1ldGFkYXRhPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4geyB2YXJpYW50OiAnZW1wdHknLCB0aXRsZTogdGhpcy50KCdhbHJlYWR5VGl0bGUnKSwgZGVzY3JpcHRpb246IHRoaXMudCgnYWxyZWFkeUJvZHknKSB9O1xuICB9KTtcblxuICByZWFkb25seSBzZW50U3RhdGUgPSBjb21wdXRlZDxFbXB0eVN0YXRlTWV0YWRhdGE+KCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB7IHZhcmlhbnQ6ICdlbXB0eScsIHRpdGxlOiB0aGlzLnQoJ3NlbnRUaXRsZScpLCBkZXNjcmlwdGlvbjogdGhpcy50KCdzZW50Qm9keScpIH07XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHN1Y2Nlc3NQcmVzZW50YXRpb24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY2ZnID0gdGhpcy50eXBlQ29uZmlnKCk7XG4gICAgY29uc3QgdGl0bGUgPSBjZmc/LnByZXNlbnRhdGlvbj8uc3VjY2Vzc1RpdGxlPy50cmltKCkgfHwgdGhpcy50KCdzZW50VGl0bGUnKTtcbiAgICBjb25zdCBtZXNzYWdlID0gY2ZnPy5wcmVzZW50YXRpb24/LnN1Y2Nlc3NNZXNzYWdlPy50cmltKCkgfHwgdGhpcy50KCdzZW50Qm9keScpO1xuICAgIGNvbnN0IGltYWdlVXJsID0gY2ZnPy5wcmVzZW50YXRpb24/LnN1Y2Nlc3NJbWFnZVVybD8udHJpbSgpIHx8IERFRkFVTFRfU1VDQ0VTU19JTUFHRTtcbiAgICByZXR1cm4geyB0aXRsZSwgbWVzc2FnZSwgaW1hZ2VVcmwsIGNsb3NlTm90ZTogdGhpcy50KCdzZW50Q2xvc2VOb3RlJykgfTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgbG9hZEVycm9yU3RhdGUgPSBjb21wdXRlZDxFbXB0eVN0YXRlTWV0YWRhdGE+KCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB7IHZhcmlhbnQ6ICdlcnJvcicsIHRpdGxlOiB0aGlzLnQoJ2xvYWRFcnJvclRpdGxlJyksIGRlc2NyaXB0aW9uOiB0aGlzLnQoJ2xvYWRFcnJvckJvZHknKSB9O1xuICB9KTtcblxuICByZWFkb25seSBsb2dpblJlcXVpcmVkU3RhdGUgPSBjb21wdXRlZDxFbXB0eVN0YXRlTWV0YWRhdGE+KCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB7IHZhcmlhbnQ6ICdlcnJvcicsIHRpdGxlOiB0aGlzLnQoJ2xvZ2luUmVxdWlyZWRUaXRsZScpLCBkZXNjcmlwdGlvbjogdGhpcy50KCdsb2dpblJlcXVpcmVkQm9keScpIH07XG4gIH0pO1xuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksIE5BTUVTUEFDRSk7XG4gIH1cbn1cbiJdfQ==
@@ -69,4 +69,4 @@ export var ToolbarActionType;
69
69
  ToolbarActionType["IMAGE"] = "IMAGE";
70
70
  ToolbarActionType["BUTTON"] = "BUTTON";
71
71
  })(ToolbarActionType || (ToolbarActionType = {}));
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsTUFBTSxPQUFPLEdBQW1CLFNBQVMsQ0FBQztBQUMxQyxNQUFNLFFBQVEsR0FBbUIsVUFBVSxDQUFDO0FBQzVDLE1BQU0sT0FBTyxHQUFtQixTQUFTLENBQUM7QUFDMUMsTUFBTSxLQUFLLEdBQW1CLE9BQU8sQ0FBQztBQUV0Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO0FBRXJFOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksVUFNWDtBQU5ELFdBQVksVUFBVTtJQUNwQixpRUFBZSxDQUFBO0lBQ2YsbUVBQWdCLENBQUE7SUFDaEIsaUVBQWUsQ0FBQTtJQUNmLCtEQUFjLENBQUE7SUFDZCx1RUFBa0IsQ0FBQTtBQUNwQixDQUFDLEVBTlcsVUFBVSxLQUFWLFVBQVUsUUFNckI7QUFjRDs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLFNBcUNYO0FBckNELFdBQVksU0FBUztJQUNuQix5Q0FBSSxDQUFBO0lBQ0osaURBQVEsQ0FBQTtJQUNSLDJDQUFLLENBQUE7SUFDTCxpREFBUSxDQUFBO0lBQ1IsK0NBQU8sQ0FBQTtJQUNQLDZDQUFNLENBQUE7SUFDTiw2REFBYyxDQUFBO0lBQ2QsaURBQVEsQ0FBQTtJQUNSLHlDQUFJLENBQUE7SUFDSixxREFBVSxDQUFBO0lBQ1YsMENBQUksQ0FBQTtJQUNKLDRDQUFLLENBQUE7SUFDTCw0Q0FBSyxDQUFBO0lBQ0wsOENBQU0sQ0FBQTtJQUNOLDREQUFhLENBQUE7SUFDYiwwREFBWSxDQUFBO0lBQ1osd0VBQW1CLENBQUE7SUFDbkIsMENBQUksQ0FBQTtJQUNKLDhDQUFNLENBQUE7SUFDTiw0Q0FBSyxDQUFBO0lBQ0wsNENBQUssQ0FBQTtJQUNMLGtEQUFRLENBQUE7SUFDUiw4REFBYyxDQUFBO0lBQ2QsOENBQU0sQ0FBQTtJQUNOLHNEQUFVLENBQUE7SUFDVix3REFBVyxDQUFBO0lBQ1gsNkVBQTZFO0lBQzdFLDBEQUFZLENBQUE7SUFDWjs7OztPQUlHO0lBQ0gsd0RBQVcsQ0FBQTtJQUNYLGlFQUFpRTtJQUNqRSw0REFBYSxDQUFBO0FBQ2YsQ0FBQyxFQXJDVyxTQUFTLEtBQVQsU0FBUyxRQXFDcEI7QUE0T0Q7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxpQkFLWDtBQUxELFdBQVksaUJBQWlCO0lBQzNCLHNDQUFpQixDQUFBO0lBQ2pCLGtDQUFhLENBQUE7SUFDYixvQ0FBZSxDQUFBO0lBQ2Ysc0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUxXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFLNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb2xvciB9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7IEltYWdlTWV0YWRhdGEgfSBmcm9tICcuL2F0b21zL2ltYWdlL3R5cGVzJztcblxuLyoqXG4gKiBQb3NzaWJsZSBzdGF0ZXMgZm9yIGFuIGludGVyYWN0aXZlIGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IHR5cGUgQ29tcG9uZW50U3RhdGUgPSAnRU5BQkxFRCcgfCAnRElTQUJMRUQnIHwgJ1dPUktJTkcnIHwgJ0VSUk9SJztcbmNvbnN0IEVOQUJMRUQ6IENvbXBvbmVudFN0YXRlID0gJ0VOQUJMRUQnO1xuY29uc3QgRElTQUJMRUQ6IENvbXBvbmVudFN0YXRlID0gJ0RJU0FCTEVEJztcbmNvbnN0IFdPUktJTkc6IENvbXBvbmVudFN0YXRlID0gJ1dPUktJTkcnO1xuY29uc3QgRVJST1I6IENvbXBvbmVudFN0YXRlID0gJ0VSUk9SJztcblxuLyoqXG4gKiBPYmplY3QgY29udGFpbmluZyBhbGwgcG9zc2libGUgY29tcG9uZW50IHN0YXRlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IENvbXBvbmVudFN0YXRlcyA9IHsgRU5BQkxFRCwgRElTQUJMRUQsIFdPUktJTkcsIEVSUk9SIH07XG5cbi8qKlxuICogVHlwZXMgb2YgYWN0aW9ucyB0aGF0IGEgYnV0dG9uIG9yIGxpbmsgY2FuIHBlcmZvcm0uXG4gKi9cbmV4cG9ydCBlbnVtIEFjdGlvblR5cGUge1xuICBCUk9XU0VSX05FV19UQUIsIC8vIE9wZW4gaW4gYSBuZXcgYnJvd3NlciB0YWJcbiAgQlJPV1NFUl9ET1dOTE9BRCwgLy8gRG93bmxvYWQgdmlhIGJyb3dzZXJcbiAgTkFUSVZFX0RPV05MT0FELCAvLyBEb3dubG9hZCB1c2luZyBuYXRpdmUgY2FwYWJpbGl0aWVzXG4gIEFQUF9OQVZJR0FUSU9OLCAvLyBJbnRlcm5hbCBhcHAgbmF2aWdhdGlvblxuICBCUk9XU0VSX05BVklHQVRJT04sIC8vIE5hdmlnYXRpb24gaW4gdGhlIGJyb3dzZXJcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGV4ZWN1dGFibGUgYWN0aW9uIGZvciBhIGJ1dHRvbiBvciBsaW5rLlxuICovXG5leHBvcnQgdHlwZSBBY3Rpb24gPSB7XG4gIC8qKiBBY3Rpb24gZGVzY3JpcHRpb24gKi9cbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgLyoqIEFjdGlvbiB0eXBlICovXG4gIHR5cGU6IEFjdGlvblR5cGU7XG4gIC8qKiBBY3Rpb24gc291cmNlIG9yIGRlc3RpbmF0aW9uICovXG4gIHNvdXJjZTogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBTdXBwb3J0ZWQgaW5wdXQgdHlwZXMgZm9yIGZvcm1zLlxuICovXG5leHBvcnQgZW51bSBJbnB1dFR5cGUge1xuICBURVhULFxuICBURVhUQVJFQSxcbiAgRU1BSUwsXG4gIFBBU1NXT1JELFxuICBDT01NRU5ULFxuICBOVU1CRVIsXG4gIE5VTUJFUl9GUk9NX1RPLFxuICBQSU5fQ09ERSxcbiAgREFURSxcbiAgREFURV9SQU5HRSxcbiAgSE9VUixcbiAgQ0hFQ0ssXG4gIFJBRElPLFxuICBTRUxFQ1QsXG4gIFNFQVJDSF9TRUxFQ1QsXG4gIE1VTFRJX1NFTEVDVCxcbiAgTVVMVElfU0VMRUNUX1NJTVBMRSxcbiAgRklMRSxcbiAgVE9HR0xFLFxuICBSQU5HRSxcbiAgUEhPTkUsXG4gIENVUlJFTkNZLFxuICBDSEVDS0JPWF9SQURJTyxcbiAgSEFORExFLFxuICBBVFRBQ0hNRU5ULFxuICBEQVRFX1BJQ0tFUixcbiAgLyoqIEVzY2FsYSBjb3J0YSBkZSBzYXRpc2ZhY2Npw7NuIGNvbiBlbW9qaXMuIFVzYWRhIHBvciBlbmN1ZXN0YXMgcMO6YmxpY2FzLiAqL1xuICBFTU9KSV9SQVRJTkcsXG4gIC8qKlxuICAgKiBPcGNpw7NuIMO6bmljYSBlbiBjaGlwcyAoYHZhbC1jaGlwLXNlbGVjdGApLiBQcmVmZXJpbG8gc29icmUgQ0hFQ0tCT1hfUkFESU9cbiAgICogY3VhbmRvIGxhcyBldGlxdWV0YXMgc29uIGNvcnRhcyB5IGxhIHBhbnRhbGxhIGVzIHVuIHRlbMOpZm9ubzogbG9zIHJhZGlvcyBzZVxuICAgKiBhcGlsYW4gZW4gdmVydGljYWwgeSBzdSBvYmpldGl2byB0w6FjdGlsIGVzIGVsIGPDrXJjdWxvLCBubyBsYSBldGlxdWV0YS5cbiAgICovXG4gIENISVBfU0VMRUNULFxuICAvKiogU2VsZWN0b3IgbnVtw6lyaWNvIGNvbiBjb250cm9sZXMgLS8rIChgdmFsLW51bWJlci1waWNrZXJgKS4gKi9cbiAgTlVNQkVSX1BJQ0tFUixcbn1cblxuLyoqXG4gKiBPcHRpb24gZm9yIHNlbGVjdCwgcmFkaW8sIGV0Yy4gaW5wdXRzLlxuICovXG5leHBvcnQgdHlwZSBJbnB1dE9wdGlvbiA9IHtcbiAgLyoqIFVuaXF1ZSBvcHRpb24gaWRlbnRpZmllciAqL1xuICBpZDogc3RyaW5nO1xuICAvKiogRGlzcGxheSBuYW1lICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIE9wdGlvbmFsIGljb24gc2hvd24gbmV4dCB0byB0aGUgb3B0aW9uIGxhYmVsICovXG4gIGljb24/OiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGNvbG9yPzogc3RyaW5nO1xuICB9O1xuICAvKiogV2hldGhlciB0aGUgb3B0aW9uIGlzIHNlbGVjdGVkIGJ5IGRlZmF1bHQgKi9cbiAgc2VsZWN0ZWQ/OiBib29sZWFuO1xuICAvKiogRGlzcGxheSBvcmRlciAqL1xuICBvcmRlcjogbnVtYmVyO1xufTtcblxuLyoqXG4gKiBNZXRhZGF0YSBmb3IgYSBmb3JtIGZpZWxkLlxuICovXG5leHBvcnQgdHlwZSBJbnB1dE1ldGFkYXRhID0ge1xuICAvKiogQXNzb2NpYXRlZCBmb3JtIGNvbnRyb2wgKG9wdGlvbmFsLCBjcmVhdGVkIGludGVybmFsbHkgYnkgdmFsLWZvcm0pICovXG4gIGNvbnRyb2w/OiBGb3JtQ29udHJvbDtcbiAgLyoqIEZyb20gY29udHJvbCAob25seSBmb3IgTlVNQkVSX0ZST01fVE8gdHlwZSkgKi9cbiAgZnJvbUNvbnRyb2w/OiBGb3JtQ29udHJvbDtcbiAgLyoqIFRvIGNvbnRyb2wgKG9ubHkgZm9yIE5VTUJFUl9GUk9NX1RPIHR5cGUpICovXG4gIHRvQ29udHJvbD86IEZvcm1Db250cm9sO1xuICAvKiogVW5pcXVlIHRva2VuIGZvciB0aGUgaW5wdXQgKi9cbiAgdG9rZW46IHN0cmluZztcbiAgLyoqIERpc3BsYXkgbGFiZWwgKi9cbiAgbGFiZWw6IHN0cmluZztcbiAgLyoqIEZpZWxkIG5hbWUgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogSGVscCB0ZXh0IChzaG93biBiZWxvdyBpbnB1dCwgZm9yIHZhbGlkYXRpb24gaGludHMpICovXG4gIGhpbnQ6IHN0cmluZztcbiAgLyoqIERlc2NyaXB0aW9uIHRleHQgKHNob3duIGJlbG93IGxhYmVsLCBleHBsYWlucyB0aGUgZmllbGQgcHVycG9zZSkgKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKiBJbnB1dCBwbGFjZWhvbGRlciAqL1xuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICAvKiogSW5wdXQgdHlwZSAoZHJpdmVzIHZhbC1mb3JtIHJvdXRpbmcg4oCUIHdoaWNoIGlucHV0IGNvbXBvbmVudCByZW5kZXJzKSAqL1xuICB0eXBlOiBJbnB1dFR5cGU7XG4gIC8qKlxuICAgKiBOYXRpdmUgSFRNTCBpbnB1dCB0eXBlIGZvciBgdmFsLXRleHQtaW5wdXRgICh0aGUgYFt0eXBlXWAgYXR0cmlidXRlIG9mIHRoZVxuICAgKiB1bmRlcmx5aW5nIGA8aW9uLWlucHV0PmAgLyBjb250cm9sKS4gRGVjb3VwbGVkIGZyb20gYElucHV0VHlwZWAgKHdoaWNoIGlzIHRoZVxuICAgKiBmb3JtLXJvdXRpbmcgZW51bSkuIFdoZW4gYHR5cGUgPT09IElucHV0VHlwZS5URVhUYCwgYHZhbC1mb3JtYCBmb3J3YXJkcyBhXG4gICAqIHNlbnNpYmxlIGBpbnB1dFR5cGVgICgndGV4dCcgYnkgZGVmYXVsdCwgJ2VtYWlsJy8nbnVtYmVyJy8ndGltZScvLi4uIGZvciB0aGVcbiAgICogY29sbGFwc2VkIGVtYWlsL251bWJlci9ob3VyIGNhc2VzKS4gYCd0aW1lJ2AgbWFrZXMgYHZhbC10ZXh0LWlucHV0YCByZW5kZXIgYW5cbiAgICogYDxpb24tZGF0ZXRpbWUgcHJlc2VudGF0aW9uPVwidGltZVwiPmAgaW5zdGVhZCBvZiBhbiBgPGlvbi1pbnB1dD5gLlxuICAgKi9cbiAgaW5wdXRUeXBlPzogJ3RleHQnIHwgJ2VtYWlsJyB8ICdudW1iZXInIHwgJ3RlbCcgfCAncGFzc3dvcmQnIHwgJ3RpbWUnIHwgJ3VybCcgfCAnc2VhcmNoJyB8ICdkYXRlJztcbiAgLyoqIERpc3BsYXkgb3JkZXIgKi9cbiAgb3JkZXI6IG51bWJlcjtcbiAgLyoqXG4gICAqIENvbG9yIGRlbCBjaGlwIHNlbGVjY2lvbmFkbyAoc29sbyBDSElQX1NFTEVDVCkuIERlZmF1bHQ6ICdwcmltYXJ5Jy5cbiAgICovXG4gIGNoaXBDb2xvcj86IHN0cmluZztcbiAgLyoqXG4gICAqIENvbG9yIHBvciBvcGNpw7NuIChzb2xvIENISVBfU0VMRUNUKSwgaW5kZXhhZG8gcG9yIGBvcHRpb24uaWRgLiBQZXJtaXRlIHF1ZVxuICAgKiB1bmEgc2V2ZXJpZGFkIGFsdGEgc2UgdmVhIGRpc3RpbnRhIGRlIHVuYSBiYWphIHNpbiBxdWUgZWwgY29uc3VtaWRvclxuICAgKiBlc2NyaWJhIENTUyBwcm9waW8uIFBpc2EgYSBgY2hpcENvbG9yYCBwYXJhIGVzYSBvcGNpw7NuLlxuICAgKi9cbiAgY2hpcENvbG9ycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKiBBc3NvY2lhdGVkIHZhbGlkYXRvcnMgKi9cbiAgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXTtcbiAgLyoqIE9wdGlvbnMgKGZvciBzZWxlY3QsIHJhZGlvLCBldGMuKSAqL1xuICBvcHRpb25zPzogSW5wdXRPcHRpb25bXTtcbiAgLyoqIEFsbG93ZWQgcmFuZ2UgKGZvciBudW1iZXIsIGRhdGUsIGV0Yy4pICovXG4gIHJhbmdlPzoge1xuICAgIG1pbjogbnVtYmVyO1xuICAgIG1heDogbnVtYmVyO1xuICB9O1xuICAvKiogSW5jcmVtZW50byBwYXJhIE5VTUJFUl9QSUNLRVIuIERlZmF1bHQgMS4gKi9cbiAgc3RlcD86IG51bWJlcjtcbiAgLyoqIFVuaWRhZCB2aXNpYmxlIHBhcmEgTlVNQkVSX1BJQ0tFUiwgcG9yIGVqZW1wbG8ga2csIGNtLCBhw7Fvcy4gKi9cbiAgdW5pdExhYmVsPzogc3RyaW5nO1xuICAvKiogVmFyaWFudGUgdmlzdWFsIHBhcmEgTlVNQkVSX1BJQ0tFUi4gRGVmYXVsdCBmaWVsZC1zdGVwcGVyLiAqL1xuICBudW1iZXJQaWNrZXJWYXJpYW50PzogJ3doZWVsJyB8ICdmaWVsZC1zdGVwcGVyJyB8ICdjb21wYWN0LXN0ZXBwZXInO1xuICAvKiogUGVybWl0ZSBlc2NyaWJpciBtYW51YWxtZW50ZSBlbiBOVU1CRVJfUElDS0VSLiBEZWZhdWx0IHRydWUuICovXG4gIG51bWJlclBpY2tlckVkaXRhYmxlPzogYm9vbGVhbjtcbiAgLyoqIE1vZG8gZGUgdGVjbGFkbyBwYXJhIE5VTUJFUl9QSUNLRVIuIERlZmF1bHQgbnVtZXJpYy4gKi9cbiAgbnVtYmVyUGlja2VySW5wdXRNb2RlPzogJ251bWVyaWMnIHwgJ2RlY2ltYWwnO1xuICAvKiogRGVjaW1hbGVzIHBhcmEgTlVNQkVSX1BJQ0tFUi4gRGVmYXVsdCAwLiAqL1xuICBwcmVjaXNpb24/OiBudW1iZXI7XG4gIC8qKiBDdXN0b20gZXJyb3IgbWVzc2FnZXMgKi9cbiAgZXJyb3JzOiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICB9O1xuICAvKiogSW5pdGlhbCB2YWx1ZSBmb3IgdGhlIGZpZWxkICovXG4gIHZhbHVlPzogYW55O1xuICAvKiogRGVmYXVsdCB2YWx1ZSBjb25maWd1cmF0aW9uIC0gc3RyaW5nIGZvciBjdXN0b20gZGVmYXVsdHMsIHRydWUgZm9yIGF1dG8gZGVmYXVsdHMgKi9cbiAgd2l0aERlZmF1bHQ/OiBzdHJpbmcgfCBib29sZWFuO1xuICAvKiogRmllbGQgc3RhdGUgKi9cbiAgc3RhdGU6IENvbXBvbmVudFN0YXRlO1xuICAvKiogTGFiZWwgZm9yIFwiZnJvbVwiIGZpZWxkIChvbmx5IGZvciBOVU1CRVJfRlJPTV9UTyB0eXBlKSAqL1xuICBmcm9tTGFiZWw/OiBzdHJpbmc7XG4gIC8qKiBMYWJlbCBmb3IgXCJ0b1wiIGZpZWxkIChvbmx5IGZvciBOVU1CRVJfRlJPTV9UTyB0eXBlKSAqL1xuICB0b0xhYmVsPzogc3RyaW5nO1xuICAvKiogUGxhY2Vob2xkZXIgZm9yIFwiZnJvbVwiIGZpZWxkIChvbmx5IGZvciBOVU1CRVJfRlJPTV9UTyB0eXBlKSAqL1xuICBmcm9tUGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIC8qKiBQbGFjZWhvbGRlciBmb3IgXCJ0b1wiIGZpZWxkIChvbmx5IGZvciBOVU1CRVJfRlJPTV9UTyB0eXBlKSAqL1xuICB0b1BsYWNlaG9sZGVyPzogc3RyaW5nO1xuXG4gIC8vIGkxOG4gc3VwcG9ydCBwcm9wZXJ0aWVzXG4gIC8qKiBLZXkgZm9yIGNvbnRlbnQgbG9va3VwICovXG4gIGNvbnRlbnRLZXk/OiBzdHJpbmc7XG4gIC8qKiBDb21wb25lbnQgY2xhc3MgbmFtZSBmb3IgY29udGVudCBsb29rdXAgKi9cbiAgY29udGVudENsYXNzPzogc3RyaW5nO1xuICAvKiogRmFsbGJhY2sgdGV4dCBpZiBjb250ZW50IGtleSBpcyBub3QgZm91bmQgKi9cbiAgY29udGVudEZhbGxiYWNrPzogc3RyaW5nO1xuXG4gIC8vIHNlbGVjdC1pbnB1dCBzcGVjaWZpYyBpMThuIHByb3BlcnRpZXNcbiAgLyoqIEN1c3RvbSBoZWFkZXIgdGV4dCBmb3Igc2VsZWN0IG1vZGFsICovXG4gIG1vZGFsSGVhZGVyPzogc3RyaW5nO1xuICAvKiogQ3VzdG9tIGNhbmNlbCBidXR0b24gdGV4dCBmb3Igc2VsZWN0IG1vZGFsICovXG4gIGNhbmNlbFRleHQ/OiBzdHJpbmc7XG4gIC8qKiBDdXN0b20gT0sgYnV0dG9uIHRleHQgZm9yIHNlbGVjdCBtb2RhbCAqL1xuICBva1RleHQ/OiBzdHJpbmc7XG4gIC8qKiBJbnRlcmZhY2UgZGVsIGlvbi1zZWxlY3QgKGRlZmF1bHQ6ICdwb3BvdmVyJykuICdtb2RhbCcgcGFyYSBsaXN0YXMgbGFyZ2FzLiAqL1xuICBzZWxlY3RJbnRlcmZhY2U/OiAncG9wb3ZlcicgfCAnbW9kYWwnIHwgJ2FjdGlvbi1zaGVldCcgfCAnYWxlcnQnO1xuXG4gIC8vIFBIT05FIHNwZWNpZmljIHByb3BlcnRpZXNcbiAgLyoqIFZhbGlkYXRlIHBob25lIGZvcm1hdCBhbmQgYXR0YWNoIGBwaG9uZUludmFsaWRgIHdoZW4gdGhlIHZhbHVlIGlzIG1hbGZvcm1lZC4gKi9cbiAgdmFsaWRhdGVGb3JtYXQ/OiBib29sZWFuO1xuICAvKiogTWluaW11bSBuYXRpb25hbCBkaWdpdHMgZm9yIFBIT05FIGZpZWxkcy4gKi9cbiAgbWluRGlnaXRzPzogbnVtYmVyO1xuICAvKiogTWF4aW11bSBuYXRpb25hbCBkaWdpdHMgZm9yIFBIT05FIGZpZWxkcy4gKi9cbiAgbWF4RGlnaXRzPzogbnVtYmVyO1xuICAvKiogQ3VzdG9tIG5hdGlvbmFsLW51bWJlciB2YWxpZGF0aW9uIHBhdHRlcm4gZm9yIFBIT05FIGZpZWxkcy4gKi9cbiAgcGF0dGVybj86IHN0cmluZztcblxuICAvLyBjaGVjay1pbnB1dCBzcGVjaWZpYyBwcm9wZXJ0aWVzXG4gIC8qKiBQb3NpdGlvbiBvZiBsYWJlbCBmb3IgY2hlY2tib3ggKCdzdGFydCcgfCAnZW5kJykgKi9cbiAgbGFiZWxQbGFjZW1lbnQ/OiAnc3RhcnQnIHwgJ2VuZCc7XG5cbiAgLy8gUElOX0NPREUgc3BlY2lmaWMgcHJvcGVydGllc1xuICAvKiogTnVtYmVyIG9mIGRpZ2l0cyBpbiBQSU4gKGRlZmF1bHQ6IDUsIG9ubHkgZm9yIFBJTl9DT0RFIHR5cGUpICovXG4gIGxlbmd0aD86IG51bWJlcjtcbiAgLyoqIFNpemUgb2YgdGhlIGlucHV0IGJveGVzOiAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnIChkZWZhdWx0OiAnbWVkaXVtJywgb25seSBmb3IgUElOX0NPREUgdHlwZSkgKi9cbiAgc2l6ZT86ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZSc7XG4gIC8qKiBBbGxvdyBvbmx5IG51bWJlcnMgKGRlZmF1bHQ6IHRydWUsIG9ubHkgZm9yIFBJTl9DT0RFIHR5cGUpICovXG4gIGFsbG93TnVtYmVyc09ubHk/OiBib29sZWFuO1xuICAvKiogTWFzayBpbnB1dCAtIHNob3cgZG90cyBpbnN0ZWFkIG9mIGNoYXJhY3RlcnMgKG9ubHkgZm9yIFBJTl9DT0RFIHR5cGUpICovXG4gIG1hc2s/OiBib29sZWFuO1xuICAvKiogQXV0byBmb2N1cyBmaXJzdCBpbnB1dCAob25seSBmb3IgUElOX0NPREUgdHlwZSkgKi9cbiAgYXV0b0ZvY3VzPzogYm9vbGVhbjtcbiAgLyoqIEN1c3RvbSBpbnB1dCBzdHlsZXMgKG9ubHkgZm9yIFBJTl9DT0RFIHR5cGUpICovXG4gIGlucHV0U3R5bGVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKiogVXBsb2FkIGZ1bmN0aW9uIChvbmx5IGZvciBBVFRBQ0hNRU5UIHR5cGUpLiBSZWNlaXZlcyBhIEZpbGUsIG11c3QgcmVzb2x2ZSB0byB0aGUgdXBsb2FkZWQgVVJMLiAqL1xuICB1cGxvYWRGbj86IChmaWxlOiBGaWxlKSA9PiBQcm9taXNlPHN0cmluZz47XG5cbiAgLy8gQWNjZXNzaWJpbGl0eSB3aXJpbmcgKG9yY2hlc3RyYXRlZCBieSB2YWwtZm9ybSlcbiAgLyoqXG4gICAqIElkIGRlbCBlbGVtZW50byBxdWUgYWN0w7phIGNvbW8gbGFiZWwgdmlzaWJsZSBkZWwgY2FtcG8uIGB2YWwtZm9ybWAgbG8gYXNpZ25hXG4gICAqIGFsIGA8dmFsLXRpdGxlPmAgcXVlIHJlbmRlcml6YSBzb2JyZSBlbCBpbnB1dCB5IGxvIHBhc2EgYWwgaW5wdXQgcGFyYSBlbmxhemFyXG4gICAqIHbDrWEgYGFyaWEtbGFiZWxsZWRieWAuIFNpIHNlIG9taXRlLCBlbCBpbnB1dCBnZW5lcmEgc3UgcHJvcGlvIGlkIGludGVybm8uXG4gICAqL1xuICBsYWJlbElkPzogc3RyaW5nO1xuICAvKipcbiAgICogSWQgZGVsIGNvbnRlbmVkb3IgZGUgZXJyb3IgKGB2YWwtaGludGApLiBgdmFsLWZvcm1gIGxvIGFzaWduYSBhbCBgPHZhbC1oaW50PmBcbiAgICogeSBsbyBwYXNhIGFsIGlucHV0IHBhcmEgZW5sYXphciB2w61hIGBhcmlhLWRlc2NyaWJlZGJ5YCBjdWFuZG8gaGF5IGVycm9yLlxuICAgKi9cbiAgZXJyb3JJZD86IHN0cmluZztcbn07XG5cbi8qKlxuICogQSBzZWN0aW9uIGluIGEgZm9ybSwgZ3JvdXBpbmcgbXVsdGlwbGUgZmllbGRzLlxuICovXG5leHBvcnQgdHlwZSBGb3JtU2VjdGlvbiA9IHtcbiAgLyoqIFNlY3Rpb24gbmFtZSAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBTZWN0aW9uIHN1YnRpdGxlICovXG4gIHN1YnRpdGxlPzogc3RyaW5nO1xuICAvKiogRGlzcGxheSBvcmRlciAqL1xuICBvcmRlcjogbnVtYmVyO1xuICAvKiogRmllbGRzIGluY2x1ZGVkIGluIHRoZSBzZWN0aW9uICovXG4gIGZpZWxkczogSW5wdXRNZXRhZGF0YVtdO1xufTtcblxuLyoqXG4gKiBEYXRhIHNlbnQgd2hlbiBzdWJtaXR0aW5nIGEgZm9ybS5cbiAqL1xuZXhwb3J0IHR5cGUgRm9ybVN1Ym1pdCA9IHtcbiAgLyoqIEZvcm0gZmllbGQgdmFsdWVzIGFzIGtleS12YWx1ZSBwYWlycyAqL1xuICBmaWVsZHM6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIC8qKiBPcHRpb25hbCB0b2tlbiBmb3IgdGhlIG9wZXJhdGlvbiAqL1xuICB0b2tlbj86IHN0cmluZztcbn07XG5cbi8qKlxuICogTWV0YWRhdGEgZm9yIGEgY29tcGxldGUgZm9ybS5cbiAqL1xuZXhwb3J0IHR5cGUgRm9ybU1ldGFkYXRhID0ge1xuICAvKiogRm9ybSBuYW1lICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIEZvcm0gc2VjdGlvbnMgKi9cbiAgc2VjdGlvbnM6IEZvcm1TZWN0aW9uW107XG4gIC8qKlxuICAgKiBDb25maWd1cmFjacOzbiBkZWwgYm90w7NuIGRlIHN1Ym1pdC4gT3BjaW9uYWw6IGVuIG1vZG8gYGNvbnRyb2xsZWRgIGVsIGZvcm1cbiAgICogbm8gcmVuZGVyaXphIHN1Ym1pdCBwcm9waW8gKGxvIG1hbmVqYSBlbCBob3N0KSB5IGBhY3Rpb25zYCBzZSBpZ25vcmEuXG4gICAqL1xuICBhY3Rpb25zPzogQnV0dG9uTWV0YWRhdGE7XG4gIC8qKiBHbG9iYWwgZm9ybSBzdGF0ZSAqL1xuICBzdGF0ZTogQ29tcG9uZW50U3RhdGU7XG4gIC8qKlxuICAgKiBFc3BhY2lvIHZlcnRpY2FsIGVudHJlIGNhbXBvcywgZW4gcHguIFNpIHNlIG9taXRlLCB1c2EgZWwgZGVmYXVsdFxuICAgKiByZXNwb25zaXZvIGRlIGxhIGxpYiAoOHB4IG1vYmlsZSAvIDEycHggZGVza3RvcCkuIMOadGlsIHBhcmEgZm9ybXVsYXJpb3NcbiAgICogZGVuc29zIG8gbcOhcyBhaXJlYWRvcyBzaW4gdG9jYXIgQ1NTIGRlbCBjb25zdW1lci5cbiAgICovXG4gIGZpZWxkU3BhY2luZz86IG51bWJlcjtcbiAgLyoqXG4gICAqIE11ZXN0cmEgZWwgZGl2aWRlciBlbnRyZSBzZWNjaW9uZXMuIERlZmF1bHQgYHRydWVgLlxuICAgKiDDmnRpbCBwYXJhIGZvcm11bGFyaW9zIGVtYmViaWRvcyBlbiB3aXphcmRzL2NhcmRzIGRvbmRlIGVsIGRpdmlkZXIgdmlzdWFsXG4gICAqIGNvbXBpdGUgY29uIGVsIGxheW91dCBkZWwgaG9zdC5cbiAgICovXG4gIHNob3dEaXZpZGVycz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBNb2RvIGVtYmViaWRvOiBlbCBmb3JtIE5PIHJlbmRlcml6YSBzdSBidXR0b24tZ3JvdXAvZm9vdGVyIGRlIHN1Ym1pdC5cbiAgICogU29sbyBjYW1wb3MgKyB2YWxpZGFjacOzbi4gUGFyYSB3aXphcmRzL2hvc3RzIHF1ZSBjb250cm9sYW4gbGEgbmF2ZWdhY2nDs25cbiAgICogeSBsZWVuIGVsIGVzdGFkbyBkZWwgZm9ybSB2w61hIGBAVmlld0NoaWxkKEZvcm1Db21wb25lbnQpYCAoc2lnbmFscyBww7pibGljb3NcbiAgICogYHZhbHVlYC9gdmFsaWRgICsgbcOpdG9kbyBgdmFsaWRhdGUoKWAvYG1hcmtBbGxUb3VjaGVkKClgKS5cbiAgICogQ3VhbmRvIGVzIGB0cnVlYCwgaWdub3JhIGBzdGlja3lGb290ZXJgLlxuICAgKi9cbiAgY29udHJvbGxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBGaWphIGVsIGJ1dHRvbi1ncm91cCBkZSBzdWJtaXQgYWwgZm9uZG8gKGBwb3NpdGlvbjogc3RpY2t5OyBib3R0b206IDBgKVxuICAgKiBwYXJhIG1vZGFsZXMgbGFyZ29zIGNvbiBzY3JvbGwuIFNvbG8gYXBsaWNhIHNpIE5PIGVzIGBjb250cm9sbGVkYC5cbiAgICogUG9yIGRlZmVjdG8gKHNpbiBmbGFncykgZWwgc3VibWl0IGVzIGlubGluZSBhbCBmaW5hbCBkZWwgZm9ybS5cbiAgICovXG4gIHN0aWNreUZvb3Rlcj86IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIFBvc3NpYmxlIGFjdGlvbiB0eXBlcyBmb3IgYSB0b29sYmFyLlxuICovXG5leHBvcnQgZW51bSBUb29sYmFyQWN0aW9uVHlwZSB7XG4gIEFWQVRBUiA9ICdBVkFUQVInLFxuICBJQ09OID0gJ0lDT04nLFxuICBJTUFHRSA9ICdJTUFHRScsXG4gIEJVVFRPTiA9ICdCVVRUT04nLFxufVxuXG4vKipcbiAqIFRvb2xiYXIgYWN0aW9uIGRlZmluaXRpb24uXG4gKi9cbmV4cG9ydCB0eXBlIFRvb2xiYXJBY3Rpb24gPSB7XG4gIC8qKiBBY3Rpb24gdHlwZSAqL1xuICB0eXBlOiAnQVZBVEFSJyB8ICdJQ09OJyB8ICdJTUFHRScgfCAnQlVUVE9OJztcbiAgLyoqIE9wdGlvbmFsIHRva2VuIGlkZW50aWZpZXIgKi9cbiAgdG9rZW4/OiBzdHJpbmc7XG4gIC8qKiBUb29sYmFyIHBvc2l0aW9uICovXG4gIHBvc2l0aW9uOiAnbGVmdCcgfCAncmlnaHQnIHwgJ2NlbnRlcic7XG4gIC8qKiBPcHRpb25hbCBkZXNjcmlwdGlvbiAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqIEFzc29jaWF0ZWQgaW1hZ2UgKGlmIGFueSkgKi9cbiAgaW1hZ2U/OiBJbWFnZU1ldGFkYXRhO1xuICAvKipcbiAgICogVXNlciBzaGFwZSBwYXJhIGVsIG1vZG8gYEFWQVRBUmAg4oCUIGhhYmlsaXRhIGZhbGxiYWNrIGludGVsaWdlbnRlOlxuICAgKiBmb3RvIOKGkiBpbmljaWFsZXMgKGRlIGBuYW1lYC9gZW1haWxgKSDihpIgaWNvbm8gcGVyc29uYS4gU2kgc2Ugb21pdGUsIGVsXG4gICAqIHRvb2xiYXIgc29sbyBtdWVzdHJhIGxhIGltYWdlbiBwYXNhZGEgZW4gYGRlc2NyaXB0aW9uYC5cbiAgICovXG4gIHVzZXI/OiB7IG5hbWU/OiBzdHJpbmc7IGVtYWlsPzogc3RyaW5nOyBhdmF0YXJVcmw/OiBzdHJpbmc7IGhhbmRsZT86IHN0cmluZyB9IHwgbnVsbDtcbiAgLyoqIENvbnRyb2xzIGF2YXRhciBzaXplIHdoZW4gdHlwZSBpcyBBVkFUQVIuIERlZmF1bHRzIHRvICdzbWFsbCcuICovXG4gIGF2YXRhclNpemU/OiAneHNtYWxsJyB8ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCAneGxhcmdlJztcbn07XG5cbi8qKlxuICogTWV0YWRhdGEgZm9yIGFuIGljb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSWNvbk1ldGFkYSB7XG4gIC8qKiBJY29uIG5hbWUgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogUG9zaWNpw7NuIGRlbCBpY29uby4gYGljb24tb25seWAgZXMgcGFyYSB1biBib3TDs24gU0lOIHRleHRvOiBJb25pYyBsZSBxdWl0YVxuICAgKiBlbCBtYXJnZW4gbGF0ZXJhbCBxdWUgcmVzZXJ2YSBwYXJhIGxhIGV0aXF1ZXRhLCB5IGB2YWwtYnV0dG9uYCBsbyBkZXRlY3RhXG4gICAqIHBhcmEgZGltZW5zaW9uYXJsbyBjdWFkcmFkbyBlbiB2ZXogZGUgY8OhcHN1bGEuXG4gICAqL1xuICBzbG90OiAnc3RhcnQnIHwgJ2VuZCcgfCAnaWNvbi1vbmx5Jztcbn1cblxuLyoqXG4gKiBCdXR0b24gY29uZmlndXJhdGlvbiBvYmplY3QuXG4gKiBTdXBwb3J0cyBib3RoIHN0YXRpYyBhbmQgcmVhY3RpdmUgY29udGVudC5cbiAqIEB0eXBlIHtCdXR0b25NZXRhZGF0YX1cbiAqIEBwcm9wZXJ0eSB0ZXh0IC0gU3RhdGljIGJ1dHRvbiBsYWJlbCAodGFrZXMgcHJlY2VkZW5jZSBvdmVyIHRleHRDb25maWcpLlxuICogQHByb3BlcnR5IHRleHRDb25maWcgLSBSZWFjdGl2ZSBjb250ZW50IGNvbmZpZ3VyYXRpb24gZm9yIGJ1dHRvbiB0ZXh0LlxuICogQHByb3BlcnR5IGNvbG9yIC0gVGhlIGJ1dHRvbiBjb2xvciAoSW9uaWMgY29sb3Igc3RyaW5nKS5cbiAqIEBwcm9wZXJ0eSBpY29uIC0gSWNvbiB0byBkaXNwbGF5IChvcHRpb25hbCkuXG4gKiBAcHJvcGVydHkgc3RhdGUgLSBCdXR0b24gc3RhdGUgKGVuYWJsZWQsIGRpc2FibGVkLCB3b3JraW5nLCBldGMuKS5cbiAqIEBwcm9wZXJ0eSBleHBhbmQsIGZpbGwsIHNpemUsIHNoYXBlLCBocmVmLCB0YXJnZXQsIGRvd25sb2FkLCBoYW5kbGVyLCBldGMuIC0gU2VlIEJ1dHRvbk1ldGFkYXRhIGZvciBhbGwgb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdXR0b25NZXRhZGF0YSB7XG4gIC8qKiBBc3NvY2lhdGVkIGFjdGlvbiB0eXBlICovXG4gIGFjdGlvblR5cGU/OiBBY3Rpb25UeXBlO1xuICAvKiogQnV0dG9uIGV4cGFuc2lvbiAqL1xuICBleHBhbmQ/OiAnZnVsbCcgfCAnYmxvY2snO1xuICAvKiogQXNzb2NpYXRlZCBsaW5rICovXG4gIGxpbms/OiBzdHJpbmc7XG4gIC8qKiBBc3NvY2lhdGVkIGhyZWYgbGluayAqL1xuICBocmVmPzogc3RyaW5nO1xuICAvKiogQW5ndWxhciByb3V0ZXIgbGluayAoU1BBIG5hdmlnYXRpb24sIG5vIHJlbG9hZCkgKi9cbiAgcm91dGVyTGluaz86IHN0cmluZyB8IGFueVtdO1xuICAvKiogTGluayB0YXJnZXQgKi9cbiAgdGFyZ2V0PzogJ19ibGFuaycgfCAnX3NlbGYnIHwgJ19wYXJlbnQnIHwgJ190b3AnO1xuICAvKiogRG93bmxvYWQgZmlsZSBuYW1lICovXG4gIGRvd25sb2FkPzogc3RyaW5nO1xuICAvKiogQnV0dG9uIGNvbG9yICovXG4gIGNvbG9yOiBDb2xvcjtcbiAgLyoqIEJ1dHRvbiBzdGF0ZSAqL1xuICBzdGF0ZTogQ29tcG9uZW50U3RhdGU7XG4gIC8qKiBTdGF0aWMgZGlzcGxheSB0ZXh0ICh0YWtlcyBwcmVjZWRlbmNlIG92ZXIgcmVhY3RpdmUgY29udGVudCkgKi9cbiAgdGV4dD86IHN0cmluZztcbiAgLyoqIFJlYWN0aXZlIGNvbnRlbnQgY29uZmlndXJhdGlvbiBmb3IgYnV0dG9uIHRleHQgKi9cbiAgY29udGVudEtleT86IHN0cmluZztcbiAgLyoqIENvbXBvbmVudCBjbGFzcyBuYW1lIGZvciBjb250ZW50IGxvb2t1cCAocmVxdWlyZWQgd2l0aCBjb250ZW50S2V5KSAqL1xuICBjb250ZW50Q2xhc3M/OiBzdHJpbmc7XG4gIC8qKiBGYWxsYmFjayB0ZXh0IGlmIGNvbnRlbnRLZXkgaXMgbm90IGZvdW5kICovXG4gIGNvbnRlbnRGYWxsYmFjaz86IHN0cmluZztcbiAgLyoqIFZhbHVlcyB0byBpbnRlcnBvbGF0ZSBpbnRvIHRoZSBjb250ZW50IHN0cmluZyAqL1xuICBjb250ZW50SW50ZXJwb2xhdGlvbj86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj47XG4gIC8qKiBBc3NvY2lhdGVkIGljb24gKi9cbiAgaWNvbj86IEljb25NZXRhZGE7XG4gIC8qKiBCdXR0b24gc2hhcGUgKi9cbiAgc2hhcGU/OiAncm91bmQnO1xuICAvKiogQnV0dG9uIHNpemUgKi9cbiAgc2l6ZT86ICdzbWFsbCcgfCAnZGVmYXVsdCcgfCAnbGFyZ2UnO1xuICAvKipcbiAgICogQnV0dG9uIGZpbGwuXG4gICAqXG4gICAqIGB0aW50YCBubyBlcyB1biBmaWxsIG5hdGl2byBkZSBJb25pYyAocXVlIHNvbG8gZW50aWVuZGVcbiAgICogY2xlYXIvb3V0bGluZS9zb2xpZC9kZWZhdWx0KSDigJQgYHZhbC1idXR0b25gIGxvIG1hcGVhIGEgYGNsZWFyYCBzb2JyZSBlbFxuICAgKiBgaW9uLWJ1dHRvbmAgcmVhbCB5IGxlIHN1bWEgdW5hIHN1cGVyZmljaWUgdGVudWUgZGVsIG1pc21vIGBjb2xvcmBcbiAgICogKGByZ2JhKC0taW9uLWNvbG9yLWJhc2UtcmdiLCAwLjEpYCwgc2luIGJvcmRlKS4gRXhpc3RlIHBvcnF1ZSB1biBgY2xlYXJgXG4gICAqIHB1cm8sIHNpbiBmb25kbyBuaSBib3JkZSwgc2UgY29uZnVuZGUgY29uIHRleHRvIHBsYW5vIGN1YW5kbyBhY3TDumEgY29tb1xuICAgKiBhY2Npw7NuIGRlIHRhcmpldGEvZmlsYSBlbiB2ZXogZGUgbGluayBpbmxpbmUg4oCUIGVuY29udHJhZG8gYXVkaXRhbmRvXG4gICAqIE9raGVsaWEgKDIwMjYtMDgtMjQpOiBcIkNvcGlhciBsaXN0YVwiIG5vIHNlIGxlw61hIGNvbW8gYWxnbyB0b2NhYmxlLlxuICAgKi9cbiAgZmlsbD86ICdjbGVhcicgfCAnb3V0bGluZScgfCAnc29saWQnIHwgJ2RlZmF1bHQnIHwgJ3RpbnQnO1xuICAvKiogQnV0dG9uIHR5cGUgKi9cbiAgdHlwZTogJ2J1dHRvbicgfCAnc3VibWl0JyB8ICdyZXNldCc7XG4gIC8qKiBPcHRpb25hbCB0b2tlbiBpZGVudGlmaWVyICovXG4gIHRva2VuPzogc3RyaW5nO1xuICAvKipcbiAgICogTm9tYnJlIGFjY2VzaWJsZSBkZWwgYm90w7NuLiBPYmxpZ2F0b3JpbyBlbiB1biBib3TDs24gYGljb24tb25seWA6IHNpbiB0ZXh0b1xuICAgKiB2aXNpYmxlLCB1biBsZWN0b3IgZGUgcGFudGFsbGEgc29sbyBhbnVuY2lhIFwiYm90w7NuXCIgKGVsIGBpb24taWNvbmAgdmFcbiAgICogYGFyaWEtaGlkZGVuYCkuIElnbm9yYWRvIGN1YW5kbyBlbCBib3TDs24gdGllbmUgdGV4dG8gcHJvcGlvLlxuICAgKi9cbiAgYXJpYUxhYmVsPzogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgcmVmZXJlbmNlICovXG4gIHJlZj86IGFueTtcbiAgLyoqIEFjdGlvbiBoYW5kbGVyICovXG4gIGhhbmRsZXI/OiAodmFsdWU6IGFueSkgPT4gYW55IHwgUHJvbWlzZTxhbnk+O1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHJlYWN0aXZlIGNvbnRlbnQgaW4gdmFsLWJ1dHRvbiBjb21wb25lbnQuXG4gKiBVc2UgdGhpcyBpbnRlcmZhY2Ugd2hlbiB5b3Ugb25seSBuZWVkIHRvIHNwZWNpZnkgY29udGVudC1yZWxhdGVkIHByb3BlcnRpZXMuXG4gKiBUaGlzIGZvbGxvd3MgdGhlIHNhbWUgcGF0dGVybiBhcyBUZXh0Q29udGVudENvbmZpZyBmb3IgY29uc2lzdGVuY3kuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnV0dG9uQ29udGVudENvbmZpZyB7XG4gIGNvbnRlbnRLZXk6IHN0cmluZztcbiAgY29udGVudENsYXNzOiBzdHJpbmc7XG4gIGNvbnRlbnRGYWxsYmFjaz86IHN0cmluZztcbiAgY29udGVudEludGVycG9sYXRpb24/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+O1xufVxuIl19
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsTUFBTSxPQUFPLEdBQW1CLFNBQVMsQ0FBQztBQUMxQyxNQUFNLFFBQVEsR0FBbUIsVUFBVSxDQUFDO0FBQzVDLE1BQU0sT0FBTyxHQUFtQixTQUFTLENBQUM7QUFDMUMsTUFBTSxLQUFLLEdBQW1CLE9BQU8sQ0FBQztBQUV0Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO0FBRXJFOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksVUFNWDtBQU5ELFdBQVksVUFBVTtJQUNwQixpRUFBZSxDQUFBO0lBQ2YsbUVBQWdCLENBQUE7SUFDaEIsaUVBQWUsQ0FBQTtJQUNmLCtEQUFjLENBQUE7SUFDZCx1RUFBa0IsQ0FBQTtBQUNwQixDQUFDLEVBTlcsVUFBVSxLQUFWLFVBQVUsUUFNckI7QUFjRDs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLFNBcUNYO0FBckNELFdBQVksU0FBUztJQUNuQix5Q0FBSSxDQUFBO0lBQ0osaURBQVEsQ0FBQTtJQUNSLDJDQUFLLENBQUE7SUFDTCxpREFBUSxDQUFBO0lBQ1IsK0NBQU8sQ0FBQTtJQUNQLDZDQUFNLENBQUE7SUFDTiw2REFBYyxDQUFBO0lBQ2QsaURBQVEsQ0FBQTtJQUNSLHlDQUFJLENBQUE7SUFDSixxREFBVSxDQUFBO0lBQ1YsMENBQUksQ0FBQTtJQUNKLDRDQUFLLENBQUE7SUFDTCw0Q0FBSyxDQUFBO0lBQ0wsOENBQU0sQ0FBQTtJQUNOLDREQUFhLENBQUE7SUFDYiwwREFBWSxDQUFBO0lBQ1osd0VBQW1CLENBQUE7SUFDbkIsMENBQUksQ0FBQTtJQUNKLDhDQUFNLENBQUE7SUFDTiw0Q0FBSyxDQUFBO0lBQ0wsNENBQUssQ0FBQTtJQUNMLGtEQUFRLENBQUE7SUFDUiw4REFBYyxDQUFBO0lBQ2QsOENBQU0sQ0FBQTtJQUNOLHNEQUFVLENBQUE7SUFDVix3REFBVyxDQUFBO0lBQ1gsNkVBQTZFO0lBQzdFLDBEQUFZLENBQUE7SUFDWjs7OztPQUlHO0lBQ0gsd0RBQVcsQ0FBQTtJQUNYLGlFQUFpRTtJQUNqRSw0REFBYSxDQUFBO0FBQ2YsQ0FBQyxFQXJDVyxTQUFTLEtBQVQsU0FBUyxRQXFDcEI7QUE4T0Q7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxpQkFLWDtBQUxELFdBQVksaUJBQWlCO0lBQzNCLHNDQUFpQixDQUFBO0lBQ2pCLGtDQUFhLENBQUE7SUFDYixvQ0FBZSxDQUFBO0lBQ2Ysc0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUxXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFLNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb2xvciB9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7IEltYWdlTWV0YWRhdGEgfSBmcm9tICcuL2F0b21zL2ltYWdlL3R5cGVzJztcblxuLyoqXG4gKiBQb3NzaWJsZSBzdGF0ZXMgZm9yIGFuIGludGVyYWN0aXZlIGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IHR5cGUgQ29tcG9uZW50U3RhdGUgPSAnRU5BQkxFRCcgfCAnRElTQUJMRUQnIHwgJ1dPUktJTkcnIHwgJ0VSUk9SJztcbmNvbnN0IEVOQUJMRUQ6IENvbXBvbmVudFN0YXRlID0gJ0VOQUJMRUQnO1xuY29uc3QgRElTQUJMRUQ6IENvbXBvbmVudFN0YXRlID0gJ0RJU0FCTEVEJztcbmNvbnN0IFdPUktJTkc6IENvbXBvbmVudFN0YXRlID0gJ1dPUktJTkcnO1xuY29uc3QgRVJST1I6IENvbXBvbmVudFN0YXRlID0gJ0VSUk9SJztcblxuLyoqXG4gKiBPYmplY3QgY29udGFpbmluZyBhbGwgcG9zc2libGUgY29tcG9uZW50IHN0YXRlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IENvbXBvbmVudFN0YXRlcyA9IHsgRU5BQkxFRCwgRElTQUJMRUQsIFdPUktJTkcsIEVSUk9SIH07XG5cbi8qKlxuICogVHlwZXMgb2YgYWN0aW9ucyB0aGF0IGEgYnV0dG9uIG9yIGxpbmsgY2FuIHBlcmZvcm0uXG4gKi9cbmV4cG9ydCBlbnVtIEFjdGlvblR5cGUge1xuICBCUk9XU0VSX05FV19UQUIsIC8vIE9wZW4gaW4gYSBuZXcgYnJvd3NlciB0YWJcbiAgQlJPV1NFUl9ET1dOTE9BRCwgLy8gRG93bmxvYWQgdmlhIGJyb3dzZXJcbiAgTkFUSVZFX0RPV05MT0FELCAvLyBEb3dubG9hZCB1c2luZyBuYXRpdmUgY2FwYWJpbGl0aWVzXG4gIEFQUF9OQVZJR0FUSU9OLCAvLyBJbnRlcm5hbCBhcHAgbmF2aWdhdGlvblxuICBCUk9XU0VSX05BVklHQVRJT04sIC8vIE5hdmlnYXRpb24gaW4gdGhlIGJyb3dzZXJcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGV4ZWN1dGFibGUgYWN0aW9uIGZvciBhIGJ1dHRvbiBvciBsaW5rLlxuICovXG5leHBvcnQgdHlwZSBBY3Rpb24gPSB7XG4gIC8qKiBBY3Rpb24gZGVzY3JpcHRpb24gKi9cbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgLyoqIEFjdGlvbiB0eXBlICovXG4gIHR5cGU6IEFjdGlvblR5cGU7XG4gIC8qKiBBY3Rpb24gc291cmNlIG9yIGRlc3RpbmF0aW9uICovXG4gIHNvdXJjZTogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBTdXBwb3J0ZWQgaW5wdXQgdHlwZXMgZm9yIGZvcm1zLlxuICovXG5leHBvcnQgZW51bSBJbnB1dFR5cGUge1xuICBURVhULFxuICBURVhUQVJFQSxcbiAgRU1BSUwsXG4gIFBBU1NXT1JELFxuICBDT01NRU5ULFxuICBOVU1CRVIsXG4gIE5VTUJFUl9GUk9NX1RPLFxuICBQSU5fQ09ERSxcbiAgREFURSxcbiAgREFURV9SQU5HRSxcbiAgSE9VUixcbiAgQ0hFQ0ssXG4gIFJBRElPLFxuICBTRUxFQ1QsXG4gIFNFQVJDSF9TRUxFQ1QsXG4gIE1VTFRJX1NFTEVDVCxcbiAgTVVMVElfU0VMRUNUX1NJTVBMRSxcbiAgRklMRSxcbiAgVE9HR0xFLFxuICBSQU5HRSxcbiAgUEhPTkUsXG4gIENVUlJFTkNZLFxuICBDSEVDS0JPWF9SQURJTyxcbiAgSEFORExFLFxuICBBVFRBQ0hNRU5ULFxuICBEQVRFX1BJQ0tFUixcbiAgLyoqIEVzY2FsYSBjb3J0YSBkZSBzYXRpc2ZhY2Npw7NuIGNvbiBlbW9qaXMuIFVzYWRhIHBvciBlbmN1ZXN0YXMgcMO6YmxpY2FzLiAqL1xuICBFTU9KSV9SQVRJTkcsXG4gIC8qKlxuICAgKiBPcGNpw7NuIMO6bmljYSBlbiBjaGlwcyAoYHZhbC1jaGlwLXNlbGVjdGApLiBQcmVmZXJpbG8gc29icmUgQ0hFQ0tCT1hfUkFESU9cbiAgICogY3VhbmRvIGxhcyBldGlxdWV0YXMgc29uIGNvcnRhcyB5IGxhIHBhbnRhbGxhIGVzIHVuIHRlbMOpZm9ubzogbG9zIHJhZGlvcyBzZVxuICAgKiBhcGlsYW4gZW4gdmVydGljYWwgeSBzdSBvYmpldGl2byB0w6FjdGlsIGVzIGVsIGPDrXJjdWxvLCBubyBsYSBldGlxdWV0YS5cbiAgICovXG4gIENISVBfU0VMRUNULFxuICAvKiogU2VsZWN0b3IgbnVtw6lyaWNvIGNvbiBjb250cm9sZXMgLS8rIChgdmFsLW51bWJlci1waWNrZXJgKS4gKi9cbiAgTlVNQkVSX1BJQ0tFUixcbn1cblxuLyoqXG4gKiBPcHRpb24gZm9yIHNlbGVjdCwgcmFkaW8sIGV0Yy4gaW5wdXRzLlxuICovXG5leHBvcnQgdHlwZSBJbnB1dE9wdGlvbiA9IHtcbiAgLyoqIFVuaXF1ZSBvcHRpb24gaWRlbnRpZmllciAqL1xuICBpZDogc3RyaW5nO1xuICAvKiogRGlzcGxheSBuYW1lICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIE9wdGlvbmFsIGljb24gc2hvd24gbmV4dCB0byB0aGUgb3B0aW9uIGxhYmVsICovXG4gIGljb24/OiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGNvbG9yPzogc3RyaW5nO1xuICB9O1xuICAvKiogV2hldGhlciB0aGUgb3B0aW9uIGlzIHNlbGVjdGVkIGJ5IGRlZmF1bHQgKi9cbiAgc2VsZWN0ZWQ/OiBib29sZWFuO1xuICAvKiogRGlzcGxheSBvcmRlciAqL1xuICBvcmRlcjogbnVtYmVyO1xufTtcblxuLyoqXG4gKiBNZXRhZGF0YSBmb3IgYSBmb3JtIGZpZWxkLlxuICovXG5leHBvcnQgdHlwZSBJbnB1dE1ldGFkYXRhID0ge1xuICAvKiogQXNzb2NpYXRlZCBmb3JtIGNvbnRyb2wgKG9wdGlvbmFsLCBjcmVhdGVkIGludGVybmFsbHkgYnkgdmFsLWZvcm0pICovXG4gIGNvbnRyb2w/OiBGb3JtQ29udHJvbDtcbiAgLyoqIEZyb20gY29udHJvbCAob25seSBmb3IgTlVNQkVSX0ZST01fVE8gdHlwZSkgKi9cbiAgZnJvbUNvbnRyb2w/OiBGb3JtQ29udHJvbDtcbiAgLyoqIFRvIGNvbnRyb2wgKG9ubHkgZm9yIE5VTUJFUl9GUk9NX1RPIHR5cGUpICovXG4gIHRvQ29udHJvbD86IEZvcm1Db250cm9sO1xuICAvKiogVW5pcXVlIHRva2VuIGZvciB0aGUgaW5wdXQgKi9cbiAgdG9rZW46IHN0cmluZztcbiAgLyoqIERpc3BsYXkgbGFiZWwgKi9cbiAgbGFiZWw6IHN0cmluZztcbiAgLyoqIEZpZWxkIG5hbWUgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogQ29udGV4dHVhbCBoZWxwIHRleHQgc2hvd24gbmV4dCB0byB0aGUgZmllbGQgbGFiZWwuICovXG4gIGhpbnQ6IHN0cmluZztcbiAgLyoqIE5vdGUgc2hvd24gYmVsb3cgdGhlIGlucHV0LiAqL1xuICBub3RlPzogc3RyaW5nO1xuICAvKiogRGVzY3JpcHRpb24gdGV4dCAoc2hvd24gYmVsb3cgbGFiZWwsIGV4cGxhaW5zIHRoZSBmaWVsZCBwdXJwb3NlKSAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqIElucHV0IHBsYWNlaG9sZGVyICovXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIC8qKiBJbnB1dCB0eXBlIChkcml2ZXMgdmFsLWZvcm0gcm91dGluZyDigJQgd2hpY2ggaW5wdXQgY29tcG9uZW50IHJlbmRlcnMpICovXG4gIHR5cGU6IElucHV0VHlwZTtcbiAgLyoqXG4gICAqIE5hdGl2ZSBIVE1MIGlucHV0IHR5cGUgZm9yIGB2YWwtdGV4dC1pbnB1dGAgKHRoZSBgW3R5cGVdYCBhdHRyaWJ1dGUgb2YgdGhlXG4gICAqIHVuZGVybHlpbmcgYDxpb24taW5wdXQ+YCAvIGNvbnRyb2wpLiBEZWNvdXBsZWQgZnJvbSBgSW5wdXRUeXBlYCAod2hpY2ggaXMgdGhlXG4gICAqIGZvcm0tcm91dGluZyBlbnVtKS4gV2hlbiBgdHlwZSA9PT0gSW5wdXRUeXBlLlRFWFRgLCBgdmFsLWZvcm1gIGZvcndhcmRzIGFcbiAgICogc2Vuc2libGUgYGlucHV0VHlwZWAgKCd0ZXh0JyBieSBkZWZhdWx0LCAnZW1haWwnLydudW1iZXInLyd0aW1lJy8uLi4gZm9yIHRoZVxuICAgKiBjb2xsYXBzZWQgZW1haWwvbnVtYmVyL2hvdXIgY2FzZXMpLiBgJ3RpbWUnYCBtYWtlcyBgdmFsLXRleHQtaW5wdXRgIHJlbmRlciBhblxuICAgKiBgPGlvbi1kYXRldGltZSBwcmVzZW50YXRpb249XCJ0aW1lXCI+YCBpbnN0ZWFkIG9mIGFuIGA8aW9uLWlucHV0PmAuXG4gICAqL1xuICBpbnB1dFR5cGU/OiAndGV4dCcgfCAnZW1haWwnIHwgJ251bWJlcicgfCAndGVsJyB8ICdwYXNzd29yZCcgfCAndGltZScgfCAndXJsJyB8ICdzZWFyY2gnIHwgJ2RhdGUnO1xuICAvKiogRGlzcGxheSBvcmRlciAqL1xuICBvcmRlcjogbnVtYmVyO1xuICAvKipcbiAgICogQ29sb3IgZGVsIGNoaXAgc2VsZWNjaW9uYWRvIChzb2xvIENISVBfU0VMRUNUKS4gRGVmYXVsdDogJ3ByaW1hcnknLlxuICAgKi9cbiAgY2hpcENvbG9yPzogc3RyaW5nO1xuICAvKipcbiAgICogQ29sb3IgcG9yIG9wY2nDs24gKHNvbG8gQ0hJUF9TRUxFQ1QpLCBpbmRleGFkbyBwb3IgYG9wdGlvbi5pZGAuIFBlcm1pdGUgcXVlXG4gICAqIHVuYSBzZXZlcmlkYWQgYWx0YSBzZSB2ZWEgZGlzdGludGEgZGUgdW5hIGJhamEgc2luIHF1ZSBlbCBjb25zdW1pZG9yXG4gICAqIGVzY3JpYmEgQ1NTIHByb3Bpby4gUGlzYSBhIGBjaGlwQ29sb3JgIHBhcmEgZXNhIG9wY2nDs24uXG4gICAqL1xuICBjaGlwQ29sb3JzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqIEFzc29jaWF0ZWQgdmFsaWRhdG9ycyAqL1xuICB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdO1xuICAvKiogT3B0aW9ucyAoZm9yIHNlbGVjdCwgcmFkaW8sIGV0Yy4pICovXG4gIG9wdGlvbnM/OiBJbnB1dE9wdGlvbltdO1xuICAvKiogQWxsb3dlZCByYW5nZSAoZm9yIG51bWJlciwgZGF0ZSwgZXRjLikgKi9cbiAgcmFuZ2U/OiB7XG4gICAgbWluOiBudW1iZXI7XG4gICAgbWF4OiBudW1iZXI7XG4gIH07XG4gIC8qKiBJbmNyZW1lbnRvIHBhcmEgTlVNQkVSX1BJQ0tFUi4gRGVmYXVsdCAxLiAqL1xuICBzdGVwPzogbnVtYmVyO1xuICAvKiogVW5pZGFkIHZpc2libGUgcGFyYSBOVU1CRVJfUElDS0VSLCBwb3IgZWplbXBsbyBrZywgY20sIGHDsW9zLiAqL1xuICB1bml0TGFiZWw/OiBzdHJpbmc7XG4gIC8qKiBWYXJpYW50ZSB2aXN1YWwgcGFyYSBOVU1CRVJfUElDS0VSLiBEZWZhdWx0IGZpZWxkLXN0ZXBwZXIuICovXG4gIG51bWJlclBpY2tlclZhcmlhbnQ/OiAnd2hlZWwnIHwgJ2ZpZWxkLXN0ZXBwZXInIHwgJ2NvbXBhY3Qtc3RlcHBlcic7XG4gIC8qKiBQZXJtaXRlIGVzY3JpYmlyIG1hbnVhbG1lbnRlIGVuIE5VTUJFUl9QSUNLRVIuIERlZmF1bHQgdHJ1ZS4gKi9cbiAgbnVtYmVyUGlja2VyRWRpdGFibGU/OiBib29sZWFuO1xuICAvKiogTW9kbyBkZSB0ZWNsYWRvIHBhcmEgTlVNQkVSX1BJQ0tFUi4gRGVmYXVsdCBudW1lcmljLiAqL1xuICBudW1iZXJQaWNrZXJJbnB1dE1vZGU/OiAnbnVtZXJpYycgfCAnZGVjaW1hbCc7XG4gIC8qKiBEZWNpbWFsZXMgcGFyYSBOVU1CRVJfUElDS0VSLiBEZWZhdWx0IDAuICovXG4gIHByZWNpc2lvbj86IG51bWJlcjtcbiAgLyoqIEN1c3RvbSBlcnJvciBtZXNzYWdlcyAqL1xuICBlcnJvcnM6IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gIH07XG4gIC8qKiBJbml0aWFsIHZhbHVlIGZvciB0aGUgZmllbGQgKi9cbiAgdmFsdWU/OiBhbnk7XG4gIC8qKiBEZWZhdWx0IHZhbHVlIGNvbmZpZ3VyYXRpb24gLSBzdHJpbmcgZm9yIGN1c3RvbSBkZWZhdWx0cywgdHJ1ZSBmb3IgYXV0byBkZWZhdWx0cyAqL1xuICB3aXRoRGVmYXVsdD86IHN0cmluZyB8IGJvb2xlYW47XG4gIC8qKiBGaWVsZCBzdGF0ZSAqL1xuICBzdGF0ZTogQ29tcG9uZW50U3RhdGU7XG4gIC8qKiBMYWJlbCBmb3IgXCJmcm9tXCIgZmllbGQgKG9ubHkgZm9yIE5VTUJFUl9GUk9NX1RPIHR5cGUpICovXG4gIGZyb21MYWJlbD86IHN0cmluZztcbiAgLyoqIExhYmVsIGZvciBcInRvXCIgZmllbGQgKG9ubHkgZm9yIE5VTUJFUl9GUk9NX1RPIHR5cGUpICovXG4gIHRvTGFiZWw/OiBzdHJpbmc7XG4gIC8qKiBQbGFjZWhvbGRlciBmb3IgXCJmcm9tXCIgZmllbGQgKG9ubHkgZm9yIE5VTUJFUl9GUk9NX1RPIHR5cGUpICovXG4gIGZyb21QbGFjZWhvbGRlcj86IHN0cmluZztcbiAgLyoqIFBsYWNlaG9sZGVyIGZvciBcInRvXCIgZmllbGQgKG9ubHkgZm9yIE5VTUJFUl9GUk9NX1RPIHR5cGUpICovXG4gIHRvUGxhY2Vob2xkZXI/OiBzdHJpbmc7XG5cbiAgLy8gaTE4biBzdXBwb3J0IHByb3BlcnRpZXNcbiAgLyoqIEtleSBmb3IgY29udGVudCBsb29rdXAgKi9cbiAgY29udGVudEtleT86IHN0cmluZztcbiAgLyoqIENvbXBvbmVudCBjbGFzcyBuYW1lIGZvciBjb250ZW50IGxvb2t1cCAqL1xuICBjb250ZW50Q2xhc3M/OiBzdHJpbmc7XG4gIC8qKiBGYWxsYmFjayB0ZXh0IGlmIGNvbnRlbnQga2V5IGlzIG5vdCBmb3VuZCAqL1xuICBjb250ZW50RmFsbGJhY2s/OiBzdHJpbmc7XG5cbiAgLy8gc2VsZWN0LWlucHV0IHNwZWNpZmljIGkxOG4gcHJvcGVydGllc1xuICAvKiogQ3VzdG9tIGhlYWRlciB0ZXh0IGZvciBzZWxlY3QgbW9kYWwgKi9cbiAgbW9kYWxIZWFkZXI/OiBzdHJpbmc7XG4gIC8qKiBDdXN0b20gY2FuY2VsIGJ1dHRvbiB0ZXh0IGZvciBzZWxlY3QgbW9kYWwgKi9cbiAgY2FuY2VsVGV4dD86IHN0cmluZztcbiAgLyoqIEN1c3RvbSBPSyBidXR0b24gdGV4dCBmb3Igc2VsZWN0IG1vZGFsICovXG4gIG9rVGV4dD86IHN0cmluZztcbiAgLyoqIEludGVyZmFjZSBkZWwgaW9uLXNlbGVjdCAoZGVmYXVsdDogJ3BvcG92ZXInKS4gJ21vZGFsJyBwYXJhIGxpc3RhcyBsYXJnYXMuICovXG4gIHNlbGVjdEludGVyZmFjZT86ICdwb3BvdmVyJyB8ICdtb2RhbCcgfCAnYWN0aW9uLXNoZWV0JyB8ICdhbGVydCc7XG5cbiAgLy8gUEhPTkUgc3BlY2lmaWMgcHJvcGVydGllc1xuICAvKiogVmFsaWRhdGUgcGhvbmUgZm9ybWF0IGFuZCBhdHRhY2ggYHBob25lSW52YWxpZGAgd2hlbiB0aGUgdmFsdWUgaXMgbWFsZm9ybWVkLiAqL1xuICB2YWxpZGF0ZUZvcm1hdD86IGJvb2xlYW47XG4gIC8qKiBNaW5pbXVtIG5hdGlvbmFsIGRpZ2l0cyBmb3IgUEhPTkUgZmllbGRzLiAqL1xuICBtaW5EaWdpdHM/OiBudW1iZXI7XG4gIC8qKiBNYXhpbXVtIG5hdGlvbmFsIGRpZ2l0cyBmb3IgUEhPTkUgZmllbGRzLiAqL1xuICBtYXhEaWdpdHM/OiBudW1iZXI7XG4gIC8qKiBDdXN0b20gbmF0aW9uYWwtbnVtYmVyIHZhbGlkYXRpb24gcGF0dGVybiBmb3IgUEhPTkUgZmllbGRzLiAqL1xuICBwYXR0ZXJuPzogc3RyaW5nO1xuXG4gIC8vIGNoZWNrLWlucHV0IHNwZWNpZmljIHByb3BlcnRpZXNcbiAgLyoqIFBvc2l0aW9uIG9mIGxhYmVsIGZvciBjaGVja2JveCAoJ3N0YXJ0JyB8ICdlbmQnKSAqL1xuICBsYWJlbFBsYWNlbWVudD86ICdzdGFydCcgfCAnZW5kJztcblxuICAvLyBQSU5fQ09ERSBzcGVjaWZpYyBwcm9wZXJ0aWVzXG4gIC8qKiBOdW1iZXIgb2YgZGlnaXRzIGluIFBJTiAoZGVmYXVsdDogNSwgb25seSBmb3IgUElOX0NPREUgdHlwZSkgKi9cbiAgbGVuZ3RoPzogbnVtYmVyO1xuICAvKiogU2l6ZSBvZiB0aGUgaW5wdXQgYm94ZXM6ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgKGRlZmF1bHQ6ICdtZWRpdW0nLCBvbmx5IGZvciBQSU5fQ09ERSB0eXBlKSAqL1xuICBzaXplPzogJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJztcbiAgLyoqIEFsbG93IG9ubHkgbnVtYmVycyAoZGVmYXVsdDogdHJ1ZSwgb25seSBmb3IgUElOX0NPREUgdHlwZSkgKi9cbiAgYWxsb3dOdW1iZXJzT25seT86IGJvb2xlYW47XG4gIC8qKiBNYXNrIGlucHV0IC0gc2hvdyBkb3RzIGluc3RlYWQgb2YgY2hhcmFjdGVycyAob25seSBmb3IgUElOX0NPREUgdHlwZSkgKi9cbiAgbWFzaz86IGJvb2xlYW47XG4gIC8qKiBBdXRvIGZvY3VzIGZpcnN0IGlucHV0IChvbmx5IGZvciBQSU5fQ09ERSB0eXBlKSAqL1xuICBhdXRvRm9jdXM/OiBib29sZWFuO1xuICAvKiogQ3VzdG9tIGlucHV0IHN0eWxlcyAob25seSBmb3IgUElOX0NPREUgdHlwZSkgKi9cbiAgaW5wdXRTdHlsZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIC8qKiBVcGxvYWQgZnVuY3Rpb24gKG9ubHkgZm9yIEFUVEFDSE1FTlQgdHlwZSkuIFJlY2VpdmVzIGEgRmlsZSwgbXVzdCByZXNvbHZlIHRvIHRoZSB1cGxvYWRlZCBVUkwuICovXG4gIHVwbG9hZEZuPzogKGZpbGU6IEZpbGUpID0+IFByb21pc2U8c3RyaW5nPjtcblxuICAvLyBBY2Nlc3NpYmlsaXR5IHdpcmluZyAob3JjaGVzdHJhdGVkIGJ5IHZhbC1mb3JtKVxuICAvKipcbiAgICogSWQgZGVsIGVsZW1lbnRvIHF1ZSBhY3TDumEgY29tbyBsYWJlbCB2aXNpYmxlIGRlbCBjYW1wby4gYHZhbC1mb3JtYCBsbyBhc2lnbmFcbiAgICogYWwgYDx2YWwtdGl0bGU+YCBxdWUgcmVuZGVyaXphIHNvYnJlIGVsIGlucHV0IHkgbG8gcGFzYSBhbCBpbnB1dCBwYXJhIGVubGF6YXJcbiAgICogdsOtYSBgYXJpYS1sYWJlbGxlZGJ5YC4gU2kgc2Ugb21pdGUsIGVsIGlucHV0IGdlbmVyYSBzdSBwcm9waW8gaWQgaW50ZXJuby5cbiAgICovXG4gIGxhYmVsSWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJZCBkZWwgY29udGVuZWRvciBkZSBlcnJvciAoYHZhbC1oaW50YCkuIGB2YWwtZm9ybWAgbG8gYXNpZ25hIGFsIGA8dmFsLWhpbnQ+YFxuICAgKiB5IGxvIHBhc2EgYWwgaW5wdXQgcGFyYSBlbmxhemFyIHbDrWEgYGFyaWEtZGVzY3JpYmVkYnlgIGN1YW5kbyBoYXkgZXJyb3IuXG4gICAqL1xuICBlcnJvcklkPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBBIHNlY3Rpb24gaW4gYSBmb3JtLCBncm91cGluZyBtdWx0aXBsZSBmaWVsZHMuXG4gKi9cbmV4cG9ydCB0eXBlIEZvcm1TZWN0aW9uID0ge1xuICAvKiogU2VjdGlvbiBuYW1lICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIFNlY3Rpb24gc3VidGl0bGUgKi9cbiAgc3VidGl0bGU/OiBzdHJpbmc7XG4gIC8qKiBEaXNwbGF5IG9yZGVyICovXG4gIG9yZGVyOiBudW1iZXI7XG4gIC8qKiBGaWVsZHMgaW5jbHVkZWQgaW4gdGhlIHNlY3Rpb24gKi9cbiAgZmllbGRzOiBJbnB1dE1ldGFkYXRhW107XG59O1xuXG4vKipcbiAqIERhdGEgc2VudCB3aGVuIHN1Ym1pdHRpbmcgYSBmb3JtLlxuICovXG5leHBvcnQgdHlwZSBGb3JtU3VibWl0ID0ge1xuICAvKiogRm9ybSBmaWVsZCB2YWx1ZXMgYXMga2V5LXZhbHVlIHBhaXJzICovXG4gIGZpZWxkczogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgLyoqIE9wdGlvbmFsIHRva2VuIGZvciB0aGUgb3BlcmF0aW9uICovXG4gIHRva2VuPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBNZXRhZGF0YSBmb3IgYSBjb21wbGV0ZSBmb3JtLlxuICovXG5leHBvcnQgdHlwZSBGb3JtTWV0YWRhdGEgPSB7XG4gIC8qKiBGb3JtIG5hbWUgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogRm9ybSBzZWN0aW9ucyAqL1xuICBzZWN0aW9uczogRm9ybVNlY3Rpb25bXTtcbiAgLyoqXG4gICAqIENvbmZpZ3VyYWNpw7NuIGRlbCBib3TDs24gZGUgc3VibWl0LiBPcGNpb25hbDogZW4gbW9kbyBgY29udHJvbGxlZGAgZWwgZm9ybVxuICAgKiBubyByZW5kZXJpemEgc3VibWl0IHByb3BpbyAobG8gbWFuZWphIGVsIGhvc3QpIHkgYGFjdGlvbnNgIHNlIGlnbm9yYS5cbiAgICovXG4gIGFjdGlvbnM/OiBCdXR0b25NZXRhZGF0YTtcbiAgLyoqIEdsb2JhbCBmb3JtIHN0YXRlICovXG4gIHN0YXRlOiBDb21wb25lbnRTdGF0ZTtcbiAgLyoqXG4gICAqIEVzcGFjaW8gdmVydGljYWwgZW50cmUgY2FtcG9zLCBlbiBweC4gU2kgc2Ugb21pdGUsIHVzYSBlbCBkZWZhdWx0XG4gICAqIHJlc3BvbnNpdm8gZGUgbGEgbGliICg4cHggbW9iaWxlIC8gMTJweCBkZXNrdG9wKS4gw5p0aWwgcGFyYSBmb3JtdWxhcmlvc1xuICAgKiBkZW5zb3MgbyBtw6FzIGFpcmVhZG9zIHNpbiB0b2NhciBDU1MgZGVsIGNvbnN1bWVyLlxuICAgKi9cbiAgZmllbGRTcGFjaW5nPzogbnVtYmVyO1xuICAvKipcbiAgICogTXVlc3RyYSBlbCBkaXZpZGVyIGVudHJlIHNlY2Npb25lcy4gRGVmYXVsdCBgdHJ1ZWAuXG4gICAqIMOadGlsIHBhcmEgZm9ybXVsYXJpb3MgZW1iZWJpZG9zIGVuIHdpemFyZHMvY2FyZHMgZG9uZGUgZWwgZGl2aWRlciB2aXN1YWxcbiAgICogY29tcGl0ZSBjb24gZWwgbGF5b3V0IGRlbCBob3N0LlxuICAgKi9cbiAgc2hvd0RpdmlkZXJzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE1vZG8gZW1iZWJpZG86IGVsIGZvcm0gTk8gcmVuZGVyaXphIHN1IGJ1dHRvbi1ncm91cC9mb290ZXIgZGUgc3VibWl0LlxuICAgKiBTb2xvIGNhbXBvcyArIHZhbGlkYWNpw7NuLiBQYXJhIHdpemFyZHMvaG9zdHMgcXVlIGNvbnRyb2xhbiBsYSBuYXZlZ2FjacOzblxuICAgKiB5IGxlZW4gZWwgZXN0YWRvIGRlbCBmb3JtIHbDrWEgYEBWaWV3Q2hpbGQoRm9ybUNvbXBvbmVudClgIChzaWduYWxzIHDDumJsaWNvc1xuICAgKiBgdmFsdWVgL2B2YWxpZGAgKyBtw6l0b2RvIGB2YWxpZGF0ZSgpYC9gbWFya0FsbFRvdWNoZWQoKWApLlxuICAgKiBDdWFuZG8gZXMgYHRydWVgLCBpZ25vcmEgYHN0aWNreUZvb3RlcmAuXG4gICAqL1xuICBjb250cm9sbGVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEZpamEgZWwgYnV0dG9uLWdyb3VwIGRlIHN1Ym1pdCBhbCBmb25kbyAoYHBvc2l0aW9uOiBzdGlja3k7IGJvdHRvbTogMGApXG4gICAqIHBhcmEgbW9kYWxlcyBsYXJnb3MgY29uIHNjcm9sbC4gU29sbyBhcGxpY2Egc2kgTk8gZXMgYGNvbnRyb2xsZWRgLlxuICAgKiBQb3IgZGVmZWN0byAoc2luIGZsYWdzKSBlbCBzdWJtaXQgZXMgaW5saW5lIGFsIGZpbmFsIGRlbCBmb3JtLlxuICAgKi9cbiAgc3RpY2t5Rm9vdGVyPzogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogUG9zc2libGUgYWN0aW9uIHR5cGVzIGZvciBhIHRvb2xiYXIuXG4gKi9cbmV4cG9ydCBlbnVtIFRvb2xiYXJBY3Rpb25UeXBlIHtcbiAgQVZBVEFSID0gJ0FWQVRBUicsXG4gIElDT04gPSAnSUNPTicsXG4gIElNQUdFID0gJ0lNQUdFJyxcbiAgQlVUVE9OID0gJ0JVVFRPTicsXG59XG5cbi8qKlxuICogVG9vbGJhciBhY3Rpb24gZGVmaW5pdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgVG9vbGJhckFjdGlvbiA9IHtcbiAgLyoqIEFjdGlvbiB0eXBlICovXG4gIHR5cGU6ICdBVkFUQVInIHwgJ0lDT04nIHwgJ0lNQUdFJyB8ICdCVVRUT04nO1xuICAvKiogT3B0aW9uYWwgdG9rZW4gaWRlbnRpZmllciAqL1xuICB0b2tlbj86IHN0cmluZztcbiAgLyoqIFRvb2xiYXIgcG9zaXRpb24gKi9cbiAgcG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcgfCAnY2VudGVyJztcbiAgLyoqIE9wdGlvbmFsIGRlc2NyaXB0aW9uICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKiogQXNzb2NpYXRlZCBpbWFnZSAoaWYgYW55KSAqL1xuICBpbWFnZT86IEltYWdlTWV0YWRhdGE7XG4gIC8qKlxuICAgKiBVc2VyIHNoYXBlIHBhcmEgZWwgbW9kbyBgQVZBVEFSYCDigJQgaGFiaWxpdGEgZmFsbGJhY2sgaW50ZWxpZ2VudGU6XG4gICAqIGZvdG8g4oaSIGluaWNpYWxlcyAoZGUgYG5hbWVgL2BlbWFpbGApIOKGkiBpY29ubyBwZXJzb25hLiBTaSBzZSBvbWl0ZSwgZWxcbiAgICogdG9vbGJhciBzb2xvIG11ZXN0cmEgbGEgaW1hZ2VuIHBhc2FkYSBlbiBgZGVzY3JpcHRpb25gLlxuICAgKi9cbiAgdXNlcj86IHsgbmFtZT86IHN0cmluZzsgZW1haWw/OiBzdHJpbmc7IGF2YXRhclVybD86IHN0cmluZzsgaGFuZGxlPzogc3RyaW5nIH0gfCBudWxsO1xuICAvKiogQ29udHJvbHMgYXZhdGFyIHNpemUgd2hlbiB0eXBlIGlzIEFWQVRBUi4gRGVmYXVsdHMgdG8gJ3NtYWxsJy4gKi9cbiAgYXZhdGFyU2l6ZT86ICd4c21hbGwnIHwgJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyB8ICd4bGFyZ2UnO1xufTtcblxuLyoqXG4gKiBNZXRhZGF0YSBmb3IgYW4gaWNvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJY29uTWV0YWRhIHtcbiAgLyoqIEljb24gbmFtZSAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQb3NpY2nDs24gZGVsIGljb25vLiBgaWNvbi1vbmx5YCBlcyBwYXJhIHVuIGJvdMOzbiBTSU4gdGV4dG86IElvbmljIGxlIHF1aXRhXG4gICAqIGVsIG1hcmdlbiBsYXRlcmFsIHF1ZSByZXNlcnZhIHBhcmEgbGEgZXRpcXVldGEsIHkgYHZhbC1idXR0b25gIGxvIGRldGVjdGFcbiAgICogcGFyYSBkaW1lbnNpb25hcmxvIGN1YWRyYWRvIGVuIHZleiBkZSBjw6Fwc3VsYS5cbiAgICovXG4gIHNsb3Q6ICdzdGFydCcgfCAnZW5kJyB8ICdpY29uLW9ubHknO1xufVxuXG4vKipcbiAqIEJ1dHRvbiBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAqIFN1cHBvcnRzIGJvdGggc3RhdGljIGFuZCByZWFjdGl2ZSBjb250ZW50LlxuICogQHR5cGUge0J1dHRvbk1ldGFkYXRhfVxuICogQHByb3BlcnR5IHRleHQgLSBTdGF0aWMgYnV0dG9uIGxhYmVsICh0YWtlcyBwcmVjZWRlbmNlIG92ZXIgdGV4dENvbmZpZykuXG4gKiBAcHJvcGVydHkgdGV4dENvbmZpZyAtIFJlYWN0aXZlIGNvbnRlbnQgY29uZmlndXJhdGlvbiBmb3IgYnV0dG9uIHRleHQuXG4gKiBAcHJvcGVydHkgY29sb3IgLSBUaGUgYnV0dG9uIGNvbG9yIChJb25pYyBjb2xvciBzdHJpbmcpLlxuICogQHByb3BlcnR5IGljb24gLSBJY29uIHRvIGRpc3BsYXkgKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSBzdGF0ZSAtIEJ1dHRvbiBzdGF0ZSAoZW5hYmxlZCwgZGlzYWJsZWQsIHdvcmtpbmcsIGV0Yy4pLlxuICogQHByb3BlcnR5IGV4cGFuZCwgZmlsbCwgc2l6ZSwgc2hhcGUsIGhyZWYsIHRhcmdldCwgZG93bmxvYWQsIGhhbmRsZXIsIGV0Yy4gLSBTZWUgQnV0dG9uTWV0YWRhdGEgZm9yIGFsbCBvcHRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1dHRvbk1ldGFkYXRhIHtcbiAgLyoqIEFzc29jaWF0ZWQgYWN0aW9uIHR5cGUgKi9cbiAgYWN0aW9uVHlwZT86IEFjdGlvblR5cGU7XG4gIC8qKiBCdXR0b24gZXhwYW5zaW9uICovXG4gIGV4cGFuZD86ICdmdWxsJyB8ICdibG9jayc7XG4gIC8qKiBBc3NvY2lhdGVkIGxpbmsgKi9cbiAgbGluaz86IHN0cmluZztcbiAgLyoqIEFzc29jaWF0ZWQgaHJlZiBsaW5rICovXG4gIGhyZWY/OiBzdHJpbmc7XG4gIC8qKiBBbmd1bGFyIHJvdXRlciBsaW5rIChTUEEgbmF2aWdhdGlvbiwgbm8gcmVsb2FkKSAqL1xuICByb3V0ZXJMaW5rPzogc3RyaW5nIHwgYW55W107XG4gIC8qKiBMaW5rIHRhcmdldCAqL1xuICB0YXJnZXQ/OiAnX2JsYW5rJyB8ICdfc2VsZicgfCAnX3BhcmVudCcgfCAnX3RvcCc7XG4gIC8qKiBEb3dubG9hZCBmaWxlIG5hbWUgKi9cbiAgZG93bmxvYWQ/OiBzdHJpbmc7XG4gIC8qKiBCdXR0b24gY29sb3IgKi9cbiAgY29sb3I6IENvbG9yO1xuICAvKiogQnV0dG9uIHN0YXRlICovXG4gIHN0YXRlOiBDb21wb25lbnRTdGF0ZTtcbiAgLyoqIFN0YXRpYyBkaXNwbGF5IHRleHQgKHRha2VzIHByZWNlZGVuY2Ugb3ZlciByZWFjdGl2ZSBjb250ZW50KSAqL1xuICB0ZXh0Pzogc3RyaW5nO1xuICAvKiogUmVhY3RpdmUgY29udGVudCBjb25maWd1cmF0aW9uIGZvciBidXR0b24gdGV4dCAqL1xuICBjb250ZW50S2V5Pzogc3RyaW5nO1xuICAvKiogQ29tcG9uZW50IGNsYXNzIG5hbWUgZm9yIGNvbnRlbnQgbG9va3VwIChyZXF1aXJlZCB3aXRoIGNvbnRlbnRLZXkpICovXG4gIGNvbnRlbnRDbGFzcz86IHN0cmluZztcbiAgLyoqIEZhbGxiYWNrIHRleHQgaWYgY29udGVudEtleSBpcyBub3QgZm91bmQgKi9cbiAgY29udGVudEZhbGxiYWNrPzogc3RyaW5nO1xuICAvKiogVmFsdWVzIHRvIGludGVycG9sYXRlIGludG8gdGhlIGNvbnRlbnQgc3RyaW5nICovXG4gIGNvbnRlbnRJbnRlcnBvbGF0aW9uPzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPjtcbiAgLyoqIEFzc29jaWF0ZWQgaWNvbiAqL1xuICBpY29uPzogSWNvbk1ldGFkYTtcbiAgLyoqIEJ1dHRvbiBzaGFwZSAqL1xuICBzaGFwZT86ICdyb3VuZCc7XG4gIC8qKiBCdXR0b24gc2l6ZSAqL1xuICBzaXplPzogJ3NtYWxsJyB8ICdkZWZhdWx0JyB8ICdsYXJnZSc7XG4gIC8qKlxuICAgKiBCdXR0b24gZmlsbC5cbiAgICpcbiAgICogYHRpbnRgIG5vIGVzIHVuIGZpbGwgbmF0aXZvIGRlIElvbmljIChxdWUgc29sbyBlbnRpZW5kZVxuICAgKiBjbGVhci9vdXRsaW5lL3NvbGlkL2RlZmF1bHQpIOKAlCBgdmFsLWJ1dHRvbmAgbG8gbWFwZWEgYSBgY2xlYXJgIHNvYnJlIGVsXG4gICAqIGBpb24tYnV0dG9uYCByZWFsIHkgbGUgc3VtYSB1bmEgc3VwZXJmaWNpZSB0ZW51ZSBkZWwgbWlzbW8gYGNvbG9yYFxuICAgKiAoYHJnYmEoLS1pb24tY29sb3ItYmFzZS1yZ2IsIDAuMSlgLCBzaW4gYm9yZGUpLiBFeGlzdGUgcG9ycXVlIHVuIGBjbGVhcmBcbiAgICogcHVybywgc2luIGZvbmRvIG5pIGJvcmRlLCBzZSBjb25mdW5kZSBjb24gdGV4dG8gcGxhbm8gY3VhbmRvIGFjdMO6YSBjb21vXG4gICAqIGFjY2nDs24gZGUgdGFyamV0YS9maWxhIGVuIHZleiBkZSBsaW5rIGlubGluZSDigJQgZW5jb250cmFkbyBhdWRpdGFuZG9cbiAgICogT2toZWxpYSAoMjAyNi0wOC0yNCk6IFwiQ29waWFyIGxpc3RhXCIgbm8gc2UgbGXDrWEgY29tbyBhbGdvIHRvY2FibGUuXG4gICAqL1xuICBmaWxsPzogJ2NsZWFyJyB8ICdvdXRsaW5lJyB8ICdzb2xpZCcgfCAnZGVmYXVsdCcgfCAndGludCc7XG4gIC8qKiBCdXR0b24gdHlwZSAqL1xuICB0eXBlOiAnYnV0dG9uJyB8ICdzdWJtaXQnIHwgJ3Jlc2V0JztcbiAgLyoqIE9wdGlvbmFsIHRva2VuIGlkZW50aWZpZXIgKi9cbiAgdG9rZW4/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBOb21icmUgYWNjZXNpYmxlIGRlbCBib3TDs24uIE9ibGlnYXRvcmlvIGVuIHVuIGJvdMOzbiBgaWNvbi1vbmx5YDogc2luIHRleHRvXG4gICAqIHZpc2libGUsIHVuIGxlY3RvciBkZSBwYW50YWxsYSBzb2xvIGFudW5jaWEgXCJib3TDs25cIiAoZWwgYGlvbi1pY29uYCB2YVxuICAgKiBgYXJpYS1oaWRkZW5gKS4gSWdub3JhZG8gY3VhbmRvIGVsIGJvdMOzbiB0aWVuZSB0ZXh0byBwcm9waW8uXG4gICAqL1xuICBhcmlhTGFiZWw/OiBzdHJpbmc7XG4gIC8qKiBPcHRpb25hbCByZWZlcmVuY2UgKi9cbiAgcmVmPzogYW55O1xuICAvKiogQWN0aW9uIGhhbmRsZXIgKi9cbiAgaGFuZGxlcj86ICh2YWx1ZTogYW55KSA9PiBhbnkgfCBQcm9taXNlPGFueT47XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgcmVhY3RpdmUgY29udGVudCBpbiB2YWwtYnV0dG9uIGNvbXBvbmVudC5cbiAqIFVzZSB0aGlzIGludGVyZmFjZSB3aGVuIHlvdSBvbmx5IG5lZWQgdG8gc3BlY2lmeSBjb250ZW50LXJlbGF0ZWQgcHJvcGVydGllcy5cbiAqIFRoaXMgZm9sbG93cyB0aGUgc2FtZSBwYXR0ZXJuIGFzIFRleHRDb250ZW50Q29uZmlnIGZvciBjb25zaXN0ZW5jeS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdXR0b25Db250ZW50Q29uZmlnIHtcbiAgY29udGVudEtleTogc3RyaW5nO1xuICBjb250ZW50Q2xhc3M6IHN0cmluZztcbiAgY29udGVudEZhbGxiYWNrPzogc3RyaW5nO1xuICBjb250ZW50SW50ZXJwb2xhdGlvbj86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj47XG59XG4iXX0=
@@ -70,6 +70,7 @@ export class FormSchemaBuilderService {
70
70
  label,
71
71
  placeholder,
72
72
  hint,
73
+ note: def.noteText ?? '',
73
74
  type: this.parseInputType(def.type),
74
75
  order: def.order,
75
76
  validators,
@@ -99,6 +100,7 @@ export class FormSchemaBuilderService {
99
100
  placeholderText: field.placeholderText?.trim() ?? '',
100
101
  hint: field.hint,
101
102
  hintText: field.hintText?.trim() ?? '',
103
+ noteText: field.noteText?.trim() ?? '',
102
104
  required: !!field.required,
103
105
  validators,
104
106
  options: this.normalizeOptions(field.options),
@@ -237,4 +239,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
237
239
  type: Injectable,
238
240
  args: [{ providedIn: 'root' }]
239
241
  }] });
240
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zY2hlbWEtYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9mb3Jtcy9mb3JtLXNjaGVtYS1idWlsZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFFTCxlQUFlLEVBS2YsU0FBUyxHQUNWLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBRUwsK0JBQStCLEdBSWhDLE1BQU0sU0FBUyxDQUFDOztBQUdqQixNQUFNLE9BQU8sd0JBQXdCO0lBRHJDO1FBRVUsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztLQW1RcEM7SUFqUUMsU0FBUyxDQUNQLE1BQXdCLEVBQ3hCLGFBQXFCLEVBQ3JCLFFBQWdCLEVBQ2hCLGlCQUF5QixRQUFRLEVBQ2pDLFFBQXdCLGVBQWUsQ0FBQyxPQUFPO1FBRS9DLE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3RCxNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBdUIsQ0FBQztRQUNwRCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ25CLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxTQUFTLElBQUksR0FBRyxDQUFDLFlBQVksSUFB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ZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50U3RhdGUsXG4gIENvbXBvbmVudFN0YXRlcyxcbiAgRm9ybU1ldGFkYXRhLFxuICBGb3JtU2VjdGlvbixcbiAgSW5wdXRNZXRhZGF0YSxcbiAgSW5wdXRPcHRpb24sXG4gIElucHV0VHlwZSxcbn0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy90eXBlcyc7XG5pbXBvcnQgeyBidXR0b24gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2F0b21zL2J1dHRvbi9mYWN0b3J5JztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vaTE4bi9pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQ2Fub25pY2FsRmllbGRBbGlhc2VzLFxuICBERUZBVUxUX0NBTk9OSUNBTF9GSUVMRF9BTElBU0VTLFxuICBGaWVsZE9wdGlvbixcbiAgRmllbGRTY2hlbWFEZWYsXG4gIEZvcm1TY2hlbWFDb25maWcsXG59IGZyb20gJy4vdHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEZvcm1TY2hlbWFCdWlsZGVyU2VydmljZSB7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgYnVpbGRGb3JtKFxuICAgIHNjaGVtYTogRmllbGRTY2hlbWFEZWZbXSxcbiAgICBpMThuTmFtZXNwYWNlOiBzdHJpbmcsXG4gICAgZm9ybU5hbWU6IHN0cmluZyxcbiAgICBzdWJtaXRMYWJlbEtleTogc3RyaW5nID0gJ3N1Ym1pdCcsXG4gICAgc3RhdGU6IENvbXBvbmVudFN0YXRlID0gQ29tcG9uZW50U3RhdGVzLkVOQUJMRURcbiAgKTogRm9ybU1ldGFkYXRhIHtcbiAgICBjb25zdCBzb3J0ZWQgPSBbLi4uc2NoZW1hXS5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcik7XG4gICAgY29uc3Qgc2VjdGlvbnNCeUlkID0gbmV3IE1hcDxzdHJpbmcsIEZvcm1TZWN0aW9uPigpO1xuICAgIHNvcnRlZC5mb3JFYWNoKGRlZiA9PiB7XG4gICAgICBjb25zdCBrZXkgPSBkZWYuc2VjdGlvbklkIHx8IGRlZi5zZWN0aW9uTGFiZWwgfHwgJyc7XG4gICAgICBjb25zdCBzZWN0aW9uID1cbiAgICAgICAgc2VjdGlvbnNCeUlkLmdldChrZXkpID8/XG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBkZWYuc2VjdGlvbkxhYmVsIHx8ICcnLFxuICAgICAgICAgIHN1YnRpdGxlOiBkZWYuc2VjdGlvblN1YnRpdGxlIHx8ICcnLFxuICAgICAgICAgIG9yZGVyOiBkZWYuc2VjdGlvbk9yZGVyID8/IDAsXG4gICAgICAgICAgZmllbGRzOiBbXSxcbiAgICAgICAgfTtcbiAgICAgIHNlY3Rpb24uZmllbGRzLnB1c2godGhpcy5idWlsZEZpZWxkKGRlZiwgaTE4bk5hbWVzcGFjZSwgc3RhdGUpKTtcbiAgICAgIHNlY3Rpb25zQnlJZC5zZXQoa2V5LCBzZWN0aW9uKTtcbiAgICB9KTtcbiAgICBjb25zdCBzZWN0aW9ucyA9IFsuLi5zZWN0aW9uc0J5SWQudmFsdWVzKCldLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKTtcblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiBmb3JtTmFtZSxcbiAgICAgIHNlY3Rpb25zLFxuICAgICAgYWN0aW9uczogYnV0dG9uKHtcbiAgICAgICAgdGV4dDogdGhpcy5pMThuLnQoc3VibWl0TGFiZWxLZXksIGkxOG5OYW1lc3BhY2UpLFxuICAgICAgICB0eXBlOiAnc3VibWl0JyxcbiAgICAgICAgZmlsbDogJ3NvbGlkJyxcbiAgICAgICAgZXhwYW5kOiAnYmxvY2snLFxuICAgICAgfSksXG4gICAgICBzdGF0ZSxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkRmllbGQoXG4gICAgZGVmOiBGaWVsZFNjaGVtYURlZixcbiAgICBpMThuTmFtZXNwYWNlOiBzdHJpbmcsXG4gICAgc3RhdGU6IENvbXBvbmVudFN0YXRlXG4gICk6IElucHV0TWV0YWRhdGEge1xuICAgIC8vIE9yZGVuOiB0ZXh0byBkZWwgY2xpZW50ZSAodGFsIGN1YWwgbG8gZXNjcmliacOzKSDihpIgY2xhdmUgaTE4biBkZSBwcm9kdWN0by5cbiAgICAvLyBMb3MgKkVzLypFbiBzb24gc29sbyBjb21wYXRpYmlsaWRhZCBjb24gZXNxdWVtYXMgdmllam9zOiBzZSBsZWVuIGFsIGZpbmFsXG4gICAgLy8geSBuYWRpZSBsb3MgZXNjcmliZS4gVmVyIHJlZ2xhICM0IGVuIENMQVVERS5tZC5cbiAgICBjb25zdCBsYWJlbCA9XG4gICAgICBkZWYubGFiZWwgfHxcbiAgICAgIGRlZi5sYWJlbEVzIHx8XG4gICAgICBkZWYubGFiZWxFbiB8fFxuICAgICAgKGRlZi5sYWJlbEtleSA/IHRoaXMuaTE4bi50KGRlZi5sYWJlbEtleSwgaTE4bk5hbWVzcGFjZSkgOiBkZWYubmFtZSk7XG4gICAgY29uc3QgcGxhY2Vob2xkZXIgPVxuICAgICAgZGVmLnBsYWNlaG9sZGVyVGV4dCB8fFxuICAgICAgZGVmLnBsYWNlaG9sZGVyRXMgfHxcbiAgICAgIGRlZi5wbGFjZWhvbGRlckVuIHx8XG4gICAgICAoZGVmLnBsYWNlaG9sZGVyID8gdGhpcy5pMThuLnQoZGVmLnBsYWNlaG9sZGVyLCBpMThuTmFtZXNwYWNlKSA6ICcnKTtcbiAgICBjb25zdCBoaW50ID1cbiAgICAgIGRlZi5oaW50VGV4dCB8fFxuICAgICAgZGVmLmhpbnRFcyB8fFxuICAgICAgZGVmLmhpbnRFbiB8fFxuICAgICAgKGRlZi5oaW50ID8gdGhpcy5pMThuLnQoZGVmLmhpbnQsIGkxOG5OYW1lc3BhY2UpIDogJycpO1xuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSB0aGlzLnBhcnNlVmFsaWRhdG9ycyhkZWYpO1xuICAgIGNvbnN0IGVycm9yczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gICAgaWYgKGRlZi5yZXF1aXJlZCB8fCAoZGVmLnZhbGlkYXRvcnMgPz8gW10pLmluY2x1ZGVzKCdyZXF1aXJlZCcpKSB7XG4gICAgICBlcnJvcnNbJ3JlcXVpcmVkJ10gPSB0aGlzLmkxOG4udCgnZmllbGRSZXF1aXJlZCcsICdfY29tbW9uJyk7XG4gICAgfVxuICAgIGlmICgoZGVmLnZhbGlkYXRvcnMgPz8gW10pLmluY2x1ZGVzKCdlbWFpbCcpKSB7XG4gICAgICBlcnJvcnNbJ2VtYWlsJ10gPSB0aGlzLmkxOG4udCgnZmllbGRJbnZhbGlkRW1haWwnLCAnX2NvbW1vbicpO1xuICAgIH1cblxuICAgIGNvbnN0IG9wdGlvbnM6IElucHV0T3B0aW9uW10gfCB1bmRlZmluZWQgPSBkZWYub3B0aW9uc1xuICAgICAgPyBkZWYub3B0aW9ucy5tYXAobyA9PiAoeyBpZDogby5pZCwgbmFtZTogby5uYW1lLCBvcmRlcjogby5vcmRlciB9KSlcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRva2VuOiBkZWYubmFtZSxcbiAgICAgIG5hbWU6IGRlZi5uYW1lLFxuICAgICAgbGFiZWwsXG4gICAgICBwbGFjZWhvbGRlcixcbiAgICAgIGhpbnQsXG4gICAgICB0eXBlOiB0aGlzLnBhcnNlSW5wdXRUeXBlKGRlZi50eXBlKSxcbiAgICAgIG9yZGVyOiBkZWYub3JkZXIsXG4gICAgICB2YWxpZGF0b3JzLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIHN0ZXA6IGRlZi5zdGVwLFxuICAgICAgdW5pdExhYmVsOiBkZWYudW5pdExhYmVsLFxuICAgICAgbnVtYmVyUGlja2VyVmFyaWFudDogZGVmLm51bWJlclBpY2tlclZhcmlhbnQsXG4gICAgICBudW1iZXJQaWNrZXJFZGl0YWJsZTogZGVmLm51bWJlclBpY2tlckVkaXRhYmxlLFxuICAgICAgbnVtYmVyUGlja2VySW5wdXRNb2RlOiBkZWYubnVtYmVyUGlja2VySW5wdXRNb2RlLFxuICAgICAgcHJlY2lzaW9uOiBkZWYucHJlY2lzaW9uLFxuICAgICAgZXJyb3JzLFxuICAgICAgdmFsdWU6IGRlZi52YWx1ZSxcbiAgICAgIHN0YXRlLFxuICAgIH07XG4gIH1cblxuICBjcmVhdGVGaWVsZFNjaGVtYShcbiAgICBmaWVsZDogUGFydGlhbDxGaWVsZFNjaGVtYURlZj4gJiBQaWNrPEZpZWxkU2NoZW1hRGVmLCAnbmFtZScgfCAnbGFiZWwnPixcbiAgICBvcmRlcjogbnVtYmVyXG4gICk6IEZpZWxkU2NoZW1hRGVmIHtcbiAgICBjb25zdCB0eXBlID0gZmllbGQudHlwZSB8fCAnVEVYVCc7XG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IGZpZWxkLnZhbGlkYXRvcnMgPz8gdGhpcy5kZWZhdWx0VmFsaWRhdG9yc0Zvcih0eXBlLCAhIWZpZWxkLnJlcXVpcmVkKTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZSxcbiAgICAgIG5hbWU6IHRoaXMudG9Ub2tlbihmaWVsZC5uYW1lIHx8IGZpZWxkLmxhYmVsKSxcbiAgICAgIGxhYmVsS2V5OiBmaWVsZC5sYWJlbEtleSB8fCB0aGlzLnRvVG9rZW4oZmllbGQubmFtZSB8fCBmaWVsZC5sYWJlbCksXG4gICAgICAvLyBTaW4gKkVzLypFbjogZWwgdGV4dG8gZGVsIGNsaWVudGUgdmEgZW4gdW4gY2FtcG8geSBlbCBkZSBwcm9kdWN0byBlblxuICAgICAgLy8gbGFiZWxLZXkuIFZlciByZWdsYSAjNCBlbiBDTEFVREUubWQuXG4gICAgICBsYWJlbDogZmllbGQubGFiZWwudHJpbSgpLFxuICAgICAgcGxhY2Vob2xkZXI6IGZpZWxkLnBsYWNlaG9sZGVyLFxuICAgICAgcGxhY2Vob2xkZXJUZXh0OiBmaWVsZC5wbGFjZWhvbGRlclRleHQ/LnRyaW0oKSA/PyAnJyxcbiAgICAgIGhpbnQ6IGZpZWxkLmhpbnQsXG4gICAgICBoaW50VGV4dDogZmllbGQuaGludFRleHQ/LnRyaW0oKSA/PyAnJyxcbiAgICAgIHJlcXVpcmVkOiAhIWZpZWxkLnJlcXVpcmVkLFxuICAgICAgdmFsaWRhdG9ycyxcbiAgICAgIG9wdGlvbnM6IHRoaXMubm9ybWFsaXplT3B0aW9ucyhmaWVsZC5vcHRpb25zKSxcbiAgICAgIHNlY3Rpb25JZDogZmllbGQuc2VjdGlvbklkLFxuICAgICAgc2VjdGlvbkxhYmVsOiBmaWVsZC5zZWN0aW9uTGFiZWw/LnRyaW0oKSA/PyAnJyxcbiAgICAgIHNlY3Rpb25TdWJ0aXRsZTogZmllbGQuc2VjdGlvblN1YnRpdGxlPy50cmltKCkgPz8gJycsXG4gICAgICBzZWN0aW9uT3JkZXI6IGZpZWxkLnNlY3Rpb25PcmRlcixcbiAgICAgIHN0ZXA6IGZpZWxkLnN0ZXAsXG4gICAgICB1bml0TGFiZWw6IGZpZWxkLnVuaXRMYWJlbCxcbiAgICAgIG51bWJlclBpY2tlclZhcmlhbnQ6IGZpZWxkLm51bWJlclBpY2tlclZhcmlhbnQsXG4gICAgICBudW1iZXJQaWNrZXJFZGl0YWJsZTogZmllbGQubnVtYmVyUGlja2VyRWRpdGFibGUsXG4gICAgICBudW1iZXJQaWNrZXJJbnB1dE1vZGU6IGZpZWxkLm51bWJlclBpY2tlcklucHV0TW9kZSxcbiAgICAgIHByZWNpc2lvbjogZmllbGQucHJlY2lzaW9uLFxuICAgICAgb3JkZXIsXG4gICAgfTtcbiAgfVxuXG4gIGNyZWF0ZUZvcm1TY2hlbWFDb25maWcoaW5wdXQ6IHtcbiAgICBzY2hlbWFJZDogc3RyaW5nO1xuICAgIHNjaGVtYVZlcnNpb24/OiBzdHJpbmc7XG4gICAgLyoqIFTDrXR1bG8gZGVsIGZvcm11bGFyaW8uIExvIGVzY3JpYmUgbGEgb3JnYW5pemFjacOzbjogbm8gc2UgdHJhZHVjZS4gKi9cbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBmaWVsZHM6IEZpZWxkU2NoZW1hRGVmW107XG4gICAgY2Fub25pY2FsQWxpYXNlcz86IENhbm9uaWNhbEZpZWxkQWxpYXNlcztcbiAgfSk6IEZvcm1TY2hlbWFDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBzY2hlbWFJZDogaW5wdXQuc2NoZW1hSWQsXG4gICAgICBzY2hlbWFWZXJzaW9uOiBpbnB1dC5zY2hlbWFWZXJzaW9uLFxuICAgICAgbGFiZWw6IGlucHV0LmxhYmVsLFxuICAgICAgY2Fub25pY2FsTWFwOiB0aGlzLmJ1aWxkQ2Fub25pY2FsTWFwKGlucHV0LmZpZWxkcywgaW5wdXQuY2Fub25pY2FsQWxpYXNlcyksXG4gICAgICBmaWVsZFNjaGVtYTogaW5wdXQuZmllbGRzLFxuICAgIH07XG4gIH1cblxuICBidWlsZENhbm9uaWNhbE1hcChcbiAgICBmaWVsZHM6IEZpZWxkU2NoZW1hRGVmW10sXG4gICAgYWxpYXNlczogQ2Fub25pY2FsRmllbGRBbGlhc2VzID0gREVGQVVMVF9DQU5PTklDQUxfRklFTERfQUxJQVNFU1xuICApOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICBjb25zdCBuYW1lcyA9IG5ldyBTZXQoZmllbGRzLm1hcChmaWVsZCA9PiBmaWVsZC5uYW1lKSk7XG4gICAgY29uc3QgbWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgZm9yIChjb25zdCBbY2Fub25pY2FsTmFtZSwgY2FuZGlkYXRlc10gb2YgT2JqZWN0LmVudHJpZXMoYWxpYXNlcykpIHtcbiAgICAgIGNvbnN0IG1hdGNoID0gY2FuZGlkYXRlcy5maW5kKGNhbmRpZGF0ZSA9PiBuYW1lcy5oYXMoY2FuZGlkYXRlKSk7XG4gICAgICBpZiAobWF0Y2gpIG1hcFtjYW5vbmljYWxOYW1lXSA9IG1hdGNoO1xuICAgIH1cbiAgICByZXR1cm4gbWFwO1xuICB9XG5cbiAgdG9Ub2tlbih2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdmFsdWVcbiAgICAgIC5ub3JtYWxpemUoJ05GRCcpXG4gICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpXG4gICAgICAucmVwbGFjZSgvW15hLXpBLVowLTlfIC1dL2csICcnKVxuICAgICAgLnRyaW0oKVxuICAgICAgLnJlcGxhY2UoL1tcXHMtXSsoLikvZywgKF8sIGM6IHN0cmluZykgPT4gYy50b1VwcGVyQ2FzZSgpKVxuICAgICAgLnJlcGxhY2UoL15bQS1aXS8sIGMgPT4gYy50b0xvd2VyQ2FzZSgpKTtcbiAgfVxuXG4gIHVuaXF1ZUZpZWxkTmFtZSh2YWx1ZTogc3RyaW5nLCBleGlzdGluZ0ZpZWxkczogQXJyYXk8UGljazxGaWVsZFNjaGVtYURlZiwgJ25hbWUnPj4pOiBzdHJpbmcge1xuICAgIGNvbnN0IGJhc2UgPSB0aGlzLnRvVG9rZW4odmFsdWUpIHx8ICdmaWVsZCc7XG4gICAgY29uc3QgdXNlZCA9IG5ldyBTZXQoZXhpc3RpbmdGaWVsZHMubWFwKGZpZWxkID0+IHRoaXMudG9Ub2tlbihmaWVsZC5uYW1lKSkpO1xuICAgIGlmICghdXNlZC5oYXMoYmFzZSkpIHJldHVybiBiYXNlO1xuICAgIGxldCBzdWZmaXggPSAyO1xuICAgIHdoaWxlICh1c2VkLmhhcyhgJHtiYXNlfSR7c3VmZml4fWApKSBzdWZmaXggKz0gMTtcbiAgICByZXR1cm4gYCR7YmFzZX0ke3N1ZmZpeH1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlVmFsaWRhdG9ycyhkZWY6IEZpZWxkU2NoZW1hRGVmKTogVmFsaWRhdG9yRm5bXSB7XG4gICAgY29uc3QgcmVzdWx0OiBWYWxpZGF0b3JGbltdID0gW107XG4gICAgY29uc3QgZW50cmllcyA9IGRlZi52YWxpZGF0b3JzID8/IFtdO1xuICAgIGNvbnN0IGhhc1JlcXVpcmVkID0gZGVmLnJlcXVpcmVkIHx8IGVudHJpZXMuaW5jbHVkZXMoJ3JlcXVpcmVkJyk7XG5cbiAgICBpZiAoaGFzUmVxdWlyZWQpIHJlc3VsdC5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuXG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICBpZiAoZW50cnkgPT09ICdyZXF1aXJlZCcpIGNvbnRpbnVlO1xuICAgICAgaWYgKGVudHJ5ID09PSAnZW1haWwnKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKFZhbGlkYXRvcnMuZW1haWwpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1pbkxlbmd0aE1hdGNoID0gZW50cnkubWF0Y2goL15taW5MZW5ndGg6KFxcZCspJC8pO1xuICAgICAgaWYgKG1pbkxlbmd0aE1hdGNoKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKE51bWJlcihtaW5MZW5ndGhNYXRjaFsxXSkpKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBtYXhMZW5ndGhNYXRjaCA9IGVudHJ5Lm1hdGNoKC9ebWF4TGVuZ3RoOihcXGQrKSQvKTtcbiAgICAgIGlmIChtYXhMZW5ndGhNYXRjaCkge1xuICAgICAgICByZXN1bHQucHVzaChWYWxpZGF0b3JzLm1heExlbmd0aChOdW1iZXIobWF4TGVuZ3RoTWF0Y2hbMV0pKSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgbWluTWF0Y2ggPSBlbnRyeS5tYXRjaCgvXm1pbjooXFxkKykkLyk7XG4gICAgICBpZiAobWluTWF0Y2gpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goVmFsaWRhdG9ycy5taW4oTnVtYmVyKG1pbk1hdGNoWzFdKSkpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1heE1hdGNoID0gZW50cnkubWF0Y2goL15tYXg6KFxcZCspJC8pO1xuICAgICAgaWYgKG1heE1hdGNoKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKFZhbGlkYXRvcnMubWF4KE51bWJlcihtYXhNYXRjaFsxXSkpKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGRlZmF1bHRWYWxpZGF0b3JzRm9yKHR5cGU6IHN0cmluZywgcmVxdWlyZWQ6IGJvb2xlYW4pOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IG5ldyBTZXQ8c3RyaW5nPihyZXF1aXJlZCA/IFsncmVxdWlyZWQnXSA6IFtdKTtcbiAgICBpZiAodHlwZSA9PT0gJ0VNQUlMJykgdmFsaWRhdG9ycy5hZGQoJ2VtYWlsJyk7XG4gICAgaWYgKHR5cGUgPT09ICdURVhUJyB8fCB0eXBlID09PSAnUEhPTkUnKSB2YWxpZGF0b3JzLmFkZCgnbWF4TGVuZ3RoOjIwMCcpO1xuICAgIHJldHVybiBbLi4udmFsaWRhdG9yc107XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZU9wdGlvbnMob3B0aW9ucz86IEZpZWxkT3B0aW9uW10pOiBGaWVsZE9wdGlvbltdIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIW9wdGlvbnM/Lmxlbmd0aCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gWy4uLm9wdGlvbnNdXG4gICAgICAubWFwKChvcHRpb24sIGluZGV4KSA9PiAoe1xuICAgICAgICBpZDogb3B0aW9uLmlkLFxuICAgICAgICBuYW1lOiBvcHRpb24ubmFtZSxcbiAgICAgICAgb3JkZXI6IG9wdGlvbi5vcmRlciA/PyBpbmRleCxcbiAgICAgIH0pKVxuICAgICAgLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZUlucHV0VHlwZSh0eXBlU3RyOiBzdHJpbmcpOiBJbnB1dFR5cGUge1xuICAgIGNvbnN0IG1hcDogUmVjb3JkPHN0cmluZywgSW5wdXRUeXBlPiA9IHtcbiAgICAgIFRFWFQ6IElucHV0VHlwZS5URVhULFxuICAgICAgVEVYVEFSRUE6IElucHV0VHlwZS5URVhUQVJFQSxcbiAgICAgIEVNQUlMOiBJbnB1dFR5cGUuRU1BSUwsXG4gICAgICBOVU1CRVI6IElucHV0VHlwZS5OVU1CRVIsXG4gICAgICBOVU1CRVJfUElDS0VSOiBJbnB1dFR5cGUuTlVNQkVSX1BJQ0tFUixcbiAgICAgIERBVEU6IElucHV0VHlwZS5EQVRFLFxuICAgICAgU0VMRUNUOiBJbnB1dFR5cGUuU0VMRUNULFxuICAgICAgTVVMVElfU0VMRUNUOiBJbnB1dFR5cGUuTVVMVElfU0VMRUNULFxuICAgICAgTVVMVElfU0VMRUNUX1NJTVBMRTogSW5wdXRUeXBlLk1VTFRJX1NFTEVDVF9TSU1QTEUsXG4gICAgICBSQURJTzogSW5wdXRUeXBlLlJBRElPLFxuICAgICAgVE9HR0xFOiBJbnB1dFR5cGUuVE9HR0xFLFxuICAgICAgQ0hFQ0s6IElucHV0VHlwZS5DSEVDSyxcbiAgICAgIEZJTEU6IElucHV0VHlwZS5GSUxFLFxuICAgICAgQVRUQUNITUVOVDogSW5wdXRUeXBlLkFUVEFDSE1FTlQsXG4gICAgICBQSE9ORTogSW5wdXRUeXBlLlBIT05FLFxuICAgICAgQ1VSUkVOQ1k6IElucHV0VHlwZS5DVVJSRU5DWSxcbiAgICAgIEVNT0pJX1JBVElORzogSW5wdXRUeXBlLkVNT0pJX1JBVElORyxcbiAgICB9O1xuICAgIHJldHVybiBtYXBbdHlwZVN0cl0gPz8gSW5wdXRUeXBlLlRFWFQ7XG4gIH1cbn1cbiJdfQ==
242
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zY2hlbWEtYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9mb3Jtcy9mb3JtLXNjaGVtYS1idWlsZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFFTCxlQUFlLEVBS2YsU0FBUyxHQUNWLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBRUwsK0JBQStCLEdBSWhDLE1BQU0sU0FBUyxDQUFDOztBQUdqQixNQUFNLE9BQU8sd0JBQXdCO0lBRHJDO1FBRVUsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztLQXFRcEM7SUFuUUMsU0FBUyxDQUNQLE1BQXdCLEVBQ3hCLGFBQXFCLEVBQ3JCLFFBQWdCLEVBQ2hCLGlCQUF5QixRQUFRLEVBQ2pDLFFBQXdCLGVBQWUsQ0FBQyxPQUFPO1FBRS9DLE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3RCxNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBdUIsQ0FBQztRQUNwRCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ25CLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxTQUFTLElBQUksR0FBRyxDQUFDLFlBQVksSUFB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WCxNQUFNOzs0RkFDbkIsd0JBQXdCO2tCQURwQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7XG4gIENvbXBvbmVudFN0YXRlLFxuICBDb21wb25lbnRTdGF0ZXMsXG4gIEZvcm1NZXRhZGF0YSxcbiAgRm9ybVNlY3Rpb24sXG4gIElucHV0TWV0YWRhdGEsXG4gIElucHV0T3B0aW9uLFxuICBJbnB1dFR5cGUsXG59IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvdHlwZXMnO1xuaW1wb3J0IHsgYnV0dG9uIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9hdG9tcy9idXR0b24vZmFjdG9yeSc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uL2kxOG4vaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIENhbm9uaWNhbEZpZWxkQWxpYXNlcyxcbiAgREVGQVVMVF9DQU5PTklDQUxfRklFTERfQUxJQVNFUyxcbiAgRmllbGRPcHRpb24sXG4gIEZpZWxkU2NoZW1hRGVmLFxuICBGb3JtU2NoZW1hQ29uZmlnLFxufSBmcm9tICcuL3R5cGVzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBGb3JtU2NoZW1hQnVpbGRlclNlcnZpY2Uge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuXG4gIGJ1aWxkRm9ybShcbiAgICBzY2hlbWE6IEZpZWxkU2NoZW1hRGVmW10sXG4gICAgaTE4bk5hbWVzcGFjZTogc3RyaW5nLFxuICAgIGZvcm1OYW1lOiBzdHJpbmcsXG4gICAgc3VibWl0TGFiZWxLZXk6IHN0cmluZyA9ICdzdWJtaXQnLFxuICAgIHN0YXRlOiBDb21wb25lbnRTdGF0ZSA9IENvbXBvbmVudFN0YXRlcy5FTkFCTEVEXG4gICk6IEZvcm1NZXRhZGF0YSB7XG4gICAgY29uc3Qgc29ydGVkID0gWy4uLnNjaGVtYV0uc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpO1xuICAgIGNvbnN0IHNlY3Rpb25zQnlJZCA9IG5ldyBNYXA8c3RyaW5nLCBGb3JtU2VjdGlvbj4oKTtcbiAgICBzb3J0ZWQuZm9yRWFjaChkZWYgPT4ge1xuICAgICAgY29uc3Qga2V5ID0gZGVmLnNlY3Rpb25JZCB8fCBkZWYuc2VjdGlvbkxhYmVsIHx8ICcnO1xuICAgICAgY29uc3Qgc2VjdGlvbiA9XG4gICAgICAgIHNlY3Rpb25zQnlJZC5nZXQoa2V5KSA/P1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogZGVmLnNlY3Rpb25MYWJlbCB8fCAnJyxcbiAgICAgICAgICBzdWJ0aXRsZTogZGVmLnNlY3Rpb25TdWJ0aXRsZSB8fCAnJyxcbiAgICAgICAgICBvcmRlcjogZGVmLnNlY3Rpb25PcmRlciA/PyAwLFxuICAgICAgICAgIGZpZWxkczogW10sXG4gICAgICAgIH07XG4gICAgICBzZWN0aW9uLmZpZWxkcy5wdXNoKHRoaXMuYnVpbGRGaWVsZChkZWYsIGkxOG5OYW1lc3BhY2UsIHN0YXRlKSk7XG4gICAgICBzZWN0aW9uc0J5SWQuc2V0KGtleSwgc2VjdGlvbik7XG4gICAgfSk7XG4gICAgY29uc3Qgc2VjdGlvbnMgPSBbLi4uc2VjdGlvbnNCeUlkLnZhbHVlcygpXS5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogZm9ybU5hbWUsXG4gICAgICBzZWN0aW9ucyxcbiAgICAgIGFjdGlvbnM6IGJ1dHRvbih7XG4gICAgICAgIHRleHQ6IHRoaXMuaTE4bi50KHN1Ym1pdExhYmVsS2V5LCBpMThuTmFtZXNwYWNlKSxcbiAgICAgICAgdHlwZTogJ3N1Ym1pdCcsXG4gICAgICAgIGZpbGw6ICdzb2xpZCcsXG4gICAgICAgIGV4cGFuZDogJ2Jsb2NrJyxcbiAgICAgIH0pLFxuICAgICAgc3RhdGUsXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZEZpZWxkKFxuICAgIGRlZjogRmllbGRTY2hlbWFEZWYsXG4gICAgaTE4bk5hbWVzcGFjZTogc3RyaW5nLFxuICAgIHN0YXRlOiBDb21wb25lbnRTdGF0ZVxuICApOiBJbnB1dE1ldGFkYXRhIHtcbiAgICAvLyBPcmRlbjogdGV4dG8gZGVsIGNsaWVudGUgKHRhbCBjdWFsIGxvIGVzY3JpYmnDsykg4oaSIGNsYXZlIGkxOG4gZGUgcHJvZHVjdG8uXG4gICAgLy8gTG9zICpFcy8qRW4gc29uIHNvbG8gY29tcGF0aWJpbGlkYWQgY29uIGVzcXVlbWFzIHZpZWpvczogc2UgbGVlbiBhbCBmaW5hbFxuICAgIC8vIHkgbmFkaWUgbG9zIGVzY3JpYmUuIFZlciByZWdsYSAjNCBlbiBDTEFVREUubWQuXG4gICAgY29uc3QgbGFiZWwgPVxuICAgICAgZGVmLmxhYmVsIHx8XG4gICAgICBkZWYubGFiZWxFcyB8fFxuICAgICAgZGVmLmxhYmVsRW4gfHxcbiAgICAgIChkZWYubGFiZWxLZXkgPyB0aGlzLmkxOG4udChkZWYubGFiZWxLZXksIGkxOG5OYW1lc3BhY2UpIDogZGVmLm5hbWUpO1xuICAgIGNvbnN0IHBsYWNlaG9sZGVyID1cbiAgICAgIGRlZi5wbGFjZWhvbGRlclRleHQgfHxcbiAgICAgIGRlZi5wbGFjZWhvbGRlckVzIHx8XG4gICAgICBkZWYucGxhY2Vob2xkZXJFbiB8fFxuICAgICAgKGRlZi5wbGFjZWhvbGRlciA/IHRoaXMuaTE4bi50KGRlZi5wbGFjZWhvbGRlciwgaTE4bk5hbWVzcGFjZSkgOiAnJyk7XG4gICAgY29uc3QgaGludCA9XG4gICAgICBkZWYuaGludFRleHQgfHxcbiAgICAgIGRlZi5oaW50RXMgfHxcbiAgICAgIGRlZi5oaW50RW4gfHxcbiAgICAgIChkZWYuaGludCA/IHRoaXMuaTE4bi50KGRlZi5oaW50LCBpMThuTmFtZXNwYWNlKSA6ICcnKTtcbiAgICBjb25zdCB2YWxpZGF0b3JzID0gdGhpcy5wYXJzZVZhbGlkYXRvcnMoZGVmKTtcbiAgICBjb25zdCBlcnJvcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAgIGlmIChkZWYucmVxdWlyZWQgfHwgKGRlZi52YWxpZGF0b3JzID8/IFtdKS5pbmNsdWRlcygncmVxdWlyZWQnKSkge1xuICAgICAgZXJyb3JzWydyZXF1aXJlZCddID0gdGhpcy5pMThuLnQoJ2ZpZWxkUmVxdWlyZWQnLCAnX2NvbW1vbicpO1xuICAgIH1cbiAgICBpZiAoKGRlZi52YWxpZGF0b3JzID8/IFtdKS5pbmNsdWRlcygnZW1haWwnKSkge1xuICAgICAgZXJyb3JzWydlbWFpbCddID0gdGhpcy5pMThuLnQoJ2ZpZWxkSW52YWxpZEVtYWlsJywgJ19jb21tb24nKTtcbiAgICB9XG5cbiAgICBjb25zdCBvcHRpb25zOiBJbnB1dE9wdGlvbltdIHwgdW5kZWZpbmVkID0gZGVmLm9wdGlvbnNcbiAgICAgID8gZGVmLm9wdGlvbnMubWFwKG8gPT4gKHsgaWQ6IG8uaWQsIG5hbWU6IG8ubmFtZSwgb3JkZXI6IG8ub3JkZXIgfSkpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiB7XG4gICAgICB0b2tlbjogZGVmLm5hbWUsXG4gICAgICBuYW1lOiBkZWYubmFtZSxcbiAgICAgIGxhYmVsLFxuICAgICAgcGxhY2Vob2xkZXIsXG4gICAgICBoaW50LFxuICAgICAgbm90ZTogZGVmLm5vdGVUZXh0ID8/ICcnLFxuICAgICAgdHlwZTogdGhpcy5wYXJzZUlucHV0VHlwZShkZWYudHlwZSksXG4gICAgICBvcmRlcjogZGVmLm9yZGVyLFxuICAgICAgdmFsaWRhdG9ycyxcbiAgICAgIG9wdGlvbnMsXG4gICAgICBzdGVwOiBkZWYuc3RlcCxcbiAgICAgIHVuaXRMYWJlbDogZGVmLnVuaXRMYWJlbCxcbiAgICAgIG51bWJlclBpY2tlclZhcmlhbnQ6IGRlZi5udW1iZXJQaWNrZXJWYXJpYW50LFxuICAgICAgbnVtYmVyUGlja2VyRWRpdGFibGU6IGRlZi5udW1iZXJQaWNrZXJFZGl0YWJsZSxcbiAgICAgIG51bWJlclBpY2tlcklucHV0TW9kZTogZGVmLm51bWJlclBpY2tlcklucHV0TW9kZSxcbiAgICAgIHByZWNpc2lvbjogZGVmLnByZWNpc2lvbixcbiAgICAgIGVycm9ycyxcbiAgICAgIHZhbHVlOiBkZWYudmFsdWUsXG4gICAgICBzdGF0ZSxcbiAgICB9O1xuICB9XG5cbiAgY3JlYXRlRmllbGRTY2hlbWEoXG4gICAgZmllbGQ6IFBhcnRpYWw8RmllbGRTY2hlbWFEZWY+ICYgUGljazxGaWVsZFNjaGVtYURlZiwgJ25hbWUnIHwgJ2xhYmVsJz4sXG4gICAgb3JkZXI6IG51bWJlclxuICApOiBGaWVsZFNjaGVtYURlZiB7XG4gICAgY29uc3QgdHlwZSA9IGZpZWxkLnR5cGUgfHwgJ1RFWFQnO1xuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBmaWVsZC52YWxpZGF0b3JzID8/IHRoaXMuZGVmYXVsdFZhbGlkYXRvcnNGb3IodHlwZSwgISFmaWVsZC5yZXF1aXJlZCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGUsXG4gICAgICBuYW1lOiB0aGlzLnRvVG9rZW4oZmllbGQubmFtZSB8fCBmaWVsZC5sYWJlbCksXG4gICAgICBsYWJlbEtleTogZmllbGQubGFiZWxLZXkgfHwgdGhpcy50b1Rva2VuKGZpZWxkLm5hbWUgfHwgZmllbGQubGFiZWwpLFxuICAgICAgLy8gU2luICpFcy8qRW46IGVsIHRleHRvIGRlbCBjbGllbnRlIHZhIGVuIHVuIGNhbXBvIHkgZWwgZGUgcHJvZHVjdG8gZW5cbiAgICAgIC8vIGxhYmVsS2V5LiBWZXIgcmVnbGEgIzQgZW4gQ0xBVURFLm1kLlxuICAgICAgbGFiZWw6IGZpZWxkLmxhYmVsLnRyaW0oKSxcbiAgICAgIHBsYWNlaG9sZGVyOiBmaWVsZC5wbGFjZWhvbGRlcixcbiAgICAgIHBsYWNlaG9sZGVyVGV4dDogZmllbGQucGxhY2Vob2xkZXJUZXh0Py50cmltKCkgPz8gJycsXG4gICAgICBoaW50OiBmaWVsZC5oaW50LFxuICAgICAgaGludFRleHQ6IGZpZWxkLmhpbnRUZXh0Py50cmltKCkgPz8gJycsXG4gICAgICBub3RlVGV4dDogZmllbGQubm90ZVRleHQ/LnRyaW0oKSA/PyAnJyxcbiAgICAgIHJlcXVpcmVkOiAhIWZpZWxkLnJlcXVpcmVkLFxuICAgICAgdmFsaWRhdG9ycyxcbiAgICAgIG9wdGlvbnM6IHRoaXMubm9ybWFsaXplT3B0aW9ucyhmaWVsZC5vcHRpb25zKSxcbiAgICAgIHNlY3Rpb25JZDogZmllbGQuc2VjdGlvbklkLFxuICAgICAgc2VjdGlvbkxhYmVsOiBmaWVsZC5zZWN0aW9uTGFiZWw/LnRyaW0oKSA/PyAnJyxcbiAgICAgIHNlY3Rpb25TdWJ0aXRsZTogZmllbGQuc2VjdGlvblN1YnRpdGxlPy50cmltKCkgPz8gJycsXG4gICAgICBzZWN0aW9uT3JkZXI6IGZpZWxkLnNlY3Rpb25PcmRlcixcbiAgICAgIHN0ZXA6IGZpZWxkLnN0ZXAsXG4gICAgICB1bml0TGFiZWw6IGZpZWxkLnVuaXRMYWJlbCxcbiAgICAgIG51bWJlclBpY2tlclZhcmlhbnQ6IGZpZWxkLm51bWJlclBpY2tlclZhcmlhbnQsXG4gICAgICBudW1iZXJQaWNrZXJFZGl0YWJsZTogZmllbGQubnVtYmVyUGlja2VyRWRpdGFibGUsXG4gICAgICBudW1iZXJQaWNrZXJJbnB1dE1vZGU6IGZpZWxkLm51bWJlclBpY2tlcklucHV0TW9kZSxcbiAgICAgIHByZWNpc2lvbjogZmllbGQucHJlY2lzaW9uLFxuICAgICAgb3JkZXIsXG4gICAgfTtcbiAgfVxuXG4gIGNyZWF0ZUZvcm1TY2hlbWFDb25maWcoaW5wdXQ6IHtcbiAgICBzY2hlbWFJZDogc3RyaW5nO1xuICAgIHNjaGVtYVZlcnNpb24/OiBzdHJpbmc7XG4gICAgLyoqIFTDrXR1bG8gZGVsIGZvcm11bGFyaW8uIExvIGVzY3JpYmUgbGEgb3JnYW5pemFjacOzbjogbm8gc2UgdHJhZHVjZS4gKi9cbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBmaWVsZHM6IEZpZWxkU2NoZW1hRGVmW107XG4gICAgY2Fub25pY2FsQWxpYXNlcz86IENhbm9uaWNhbEZpZWxkQWxpYXNlcztcbiAgfSk6IEZvcm1TY2hlbWFDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBzY2hlbWFJZDogaW5wdXQuc2NoZW1hSWQsXG4gICAgICBzY2hlbWFWZXJzaW9uOiBpbnB1dC5zY2hlbWFWZXJzaW9uLFxuICAgICAgbGFiZWw6IGlucHV0LmxhYmVsLFxuICAgICAgY2Fub25pY2FsTWFwOiB0aGlzLmJ1aWxkQ2Fub25pY2FsTWFwKGlucHV0LmZpZWxkcywgaW5wdXQuY2Fub25pY2FsQWxpYXNlcyksXG4gICAgICBmaWVsZFNjaGVtYTogaW5wdXQuZmllbGRzLFxuICAgIH07XG4gIH1cblxuICBidWlsZENhbm9uaWNhbE1hcChcbiAgICBmaWVsZHM6IEZpZWxkU2NoZW1hRGVmW10sXG4gICAgYWxpYXNlczogQ2Fub25pY2FsRmllbGRBbGlhc2VzID0gREVGQVVMVF9DQU5PTklDQUxfRklFTERfQUxJQVNFU1xuICApOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICBjb25zdCBuYW1lcyA9IG5ldyBTZXQoZmllbGRzLm1hcChmaWVsZCA9PiBmaWVsZC5uYW1lKSk7XG4gICAgY29uc3QgbWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgZm9yIChjb25zdCBbY2Fub25pY2FsTmFtZSwgY2FuZGlkYXRlc10gb2YgT2JqZWN0LmVudHJpZXMoYWxpYXNlcykpIHtcbiAgICAgIGNvbnN0IG1hdGNoID0gY2FuZGlkYXRlcy5maW5kKGNhbmRpZGF0ZSA9PiBuYW1lcy5oYXMoY2FuZGlkYXRlKSk7XG4gICAgICBpZiAobWF0Y2gpIG1hcFtjYW5vbmljYWxOYW1lXSA9IG1hdGNoO1xuICAgIH1cbiAgICByZXR1cm4gbWFwO1xuICB9XG5cbiAgdG9Ub2tlbih2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdmFsdWVcbiAgICAgIC5ub3JtYWxpemUoJ05GRCcpXG4gICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpXG4gICAgICAucmVwbGFjZSgvW15hLXpBLVowLTlfIC1dL2csICcnKVxuICAgICAgLnRyaW0oKVxuICAgICAgLnJlcGxhY2UoL1tcXHMtXSsoLikvZywgKF8sIGM6IHN0cmluZykgPT4gYy50b1VwcGVyQ2FzZSgpKVxuICAgICAgLnJlcGxhY2UoL15bQS1aXS8sIGMgPT4gYy50b0xvd2VyQ2FzZSgpKTtcbiAgfVxuXG4gIHVuaXF1ZUZpZWxkTmFtZSh2YWx1ZTogc3RyaW5nLCBleGlzdGluZ0ZpZWxkczogQXJyYXk8UGljazxGaWVsZFNjaGVtYURlZiwgJ25hbWUnPj4pOiBzdHJpbmcge1xuICAgIGNvbnN0IGJhc2UgPSB0aGlzLnRvVG9rZW4odmFsdWUpIHx8ICdmaWVsZCc7XG4gICAgY29uc3QgdXNlZCA9IG5ldyBTZXQoZXhpc3RpbmdGaWVsZHMubWFwKGZpZWxkID0+IHRoaXMudG9Ub2tlbihmaWVsZC5uYW1lKSkpO1xuICAgIGlmICghdXNlZC5oYXMoYmFzZSkpIHJldHVybiBiYXNlO1xuICAgIGxldCBzdWZmaXggPSAyO1xuICAgIHdoaWxlICh1c2VkLmhhcyhgJHtiYXNlfSR7c3VmZml4fWApKSBzdWZmaXggKz0gMTtcbiAgICByZXR1cm4gYCR7YmFzZX0ke3N1ZmZpeH1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlVmFsaWRhdG9ycyhkZWY6IEZpZWxkU2NoZW1hRGVmKTogVmFsaWRhdG9yRm5bXSB7XG4gICAgY29uc3QgcmVzdWx0OiBWYWxpZGF0b3JGbltdID0gW107XG4gICAgY29uc3QgZW50cmllcyA9IGRlZi52YWxpZGF0b3JzID8/IFtdO1xuICAgIGNvbnN0IGhhc1JlcXVpcmVkID0gZGVmLnJlcXVpcmVkIHx8IGVudHJpZXMuaW5jbHVkZXMoJ3JlcXVpcmVkJyk7XG5cbiAgICBpZiAoaGFzUmVxdWlyZWQpIHJlc3VsdC5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuXG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICBpZiAoZW50cnkgPT09ICdyZXF1aXJlZCcpIGNvbnRpbnVlO1xuICAgICAgaWYgKGVudHJ5ID09PSAnZW1haWwnKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKFZhbGlkYXRvcnMuZW1haWwpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1pbkxlbmd0aE1hdGNoID0gZW50cnkubWF0Y2goL15taW5MZW5ndGg6KFxcZCspJC8pO1xuICAgICAgaWYgKG1pbkxlbmd0aE1hdGNoKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKE51bWJlcihtaW5MZW5ndGhNYXRjaFsxXSkpKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBtYXhMZW5ndGhNYXRjaCA9IGVudHJ5Lm1hdGNoKC9ebWF4TGVuZ3RoOihcXGQrKSQvKTtcbiAgICAgIGlmIChtYXhMZW5ndGhNYXRjaCkge1xuICAgICAgICByZXN1bHQucHVzaChWYWxpZGF0b3JzLm1heExlbmd0aChOdW1iZXIobWF4TGVuZ3RoTWF0Y2hbMV0pKSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgbWluTWF0Y2ggPSBlbnRyeS5tYXRjaCgvXm1pbjooXFxkKykkLyk7XG4gICAgICBpZiAobWluTWF0Y2gpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goVmFsaWRhdG9ycy5taW4oTnVtYmVyKG1pbk1hdGNoWzFdKSkpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1heE1hdGNoID0gZW50cnkubWF0Y2goL15tYXg6KFxcZCspJC8pO1xuICAgICAgaWYgKG1heE1hdGNoKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKFZhbGlkYXRvcnMubWF4KE51bWJlcihtYXhNYXRjaFsxXSkpKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGRlZmF1bHRWYWxpZGF0b3JzRm9yKHR5cGU6IHN0cmluZywgcmVxdWlyZWQ6IGJvb2xlYW4pOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IG5ldyBTZXQ8c3RyaW5nPihyZXF1aXJlZCA/IFsncmVxdWlyZWQnXSA6IFtdKTtcbiAgICBpZiAodHlwZSA9PT0gJ0VNQUlMJykgdmFsaWRhdG9ycy5hZGQoJ2VtYWlsJyk7XG4gICAgaWYgKHR5cGUgPT09ICdURVhUJyB8fCB0eXBlID09PSAnUEhPTkUnKSB2YWxpZGF0b3JzLmFkZCgnbWF4TGVuZ3RoOjIwMCcpO1xuICAgIHJldHVybiBbLi4udmFsaWRhdG9yc107XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZU9wdGlvbnMob3B0aW9ucz86IEZpZWxkT3B0aW9uW10pOiBGaWVsZE9wdGlvbltdIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIW9wdGlvbnM/Lmxlbmd0aCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gWy4uLm9wdGlvbnNdXG4gICAgICAubWFwKChvcHRpb24sIGluZGV4KSA9PiAoe1xuICAgICAgICBpZDogb3B0aW9uLmlkLFxuICAgICAgICBuYW1lOiBvcHRpb24ubmFtZSxcbiAgICAgICAgb3JkZXI6IG9wdGlvbi5vcmRlciA/PyBpbmRleCxcbiAgICAgIH0pKVxuICAgICAgLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZUlucHV0VHlwZSh0eXBlU3RyOiBzdHJpbmcpOiBJbnB1dFR5cGUge1xuICAgIGNvbnN0IG1hcDogUmVjb3JkPHN0cmluZywgSW5wdXRUeXBlPiA9IHtcbiAgICAgIFRFWFQ6IElucHV0VHlwZS5URVhULFxuICAgICAgVEVYVEFSRUE6IElucHV0VHlwZS5URVhUQVJFQSxcbiAgICAgIEVNQUlMOiBJbnB1dFR5cGUuRU1BSUwsXG4gICAgICBOVU1CRVI6IElucHV0VHlwZS5OVU1CRVIsXG4gICAgICBOVU1CRVJfUElDS0VSOiBJbnB1dFR5cGUuTlVNQkVSX1BJQ0tFUixcbiAgICAgIERBVEU6IElucHV0VHlwZS5EQVRFLFxuICAgICAgU0VMRUNUOiBJbnB1dFR5cGUuU0VMRUNULFxuICAgICAgTVVMVElfU0VMRUNUOiBJbnB1dFR5cGUuTVVMVElfU0VMRUNULFxuICAgICAgTVVMVElfU0VMRUNUX1NJTVBMRTogSW5wdXRUeXBlLk1VTFRJX1NFTEVDVF9TSU1QTEUsXG4gICAgICBSQURJTzogSW5wdXRUeXBlLlJBRElPLFxuICAgICAgVE9HR0xFOiBJbnB1dFR5cGUuVE9HR0xFLFxuICAgICAgQ0hFQ0s6IElucHV0VHlwZS5DSEVDSyxcbiAgICAgIEZJTEU6IElucHV0VHlwZS5GSUxFLFxuICAgICAgQVRUQUNITUVOVDogSW5wdXRUeXBlLkFUVEFDSE1FTlQsXG4gICAgICBQSE9ORTogSW5wdXRUeXBlLlBIT05FLFxuICAgICAgQ1VSUkVOQ1k6IElucHV0VHlwZS5DVVJSRU5DWSxcbiAgICAgIEVNT0pJX1JBVElORzogSW5wdXRUeXBlLkVNT0pJX1JBVElORyxcbiAgICB9O1xuICAgIHJldHVybiBtYXBbdHlwZVN0cl0gPz8gSW5wdXRUeXBlLlRFWFQ7XG4gIH1cbn1cbiJdfQ==