mediasfu-angular 1.0.0 → 1.0.2
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.
- package/LICENSE +21 -0
- package/README.md +194 -192
- package/dist/README.md +194 -192
- package/dist/esm2022/lib/components/background-components/background-modal/background-modal.component.mjs +37 -1
- package/dist/esm2022/lib/components/breakout-components/breakout-rooms-modal.component.mjs +51 -1
- package/dist/esm2022/lib/components/breakout-components/edit-room-modal/edit-room-modal.component.mjs +49 -1
- package/dist/esm2022/lib/components/co-host-components/co-host-modal/co-host-modal.component.mjs +1 -2
- package/dist/esm2022/lib/components/display-components/alert-component/alert.component.component.mjs +25 -19
- package/dist/esm2022/lib/components/display-components/audio-card/audio-card.component.mjs +60 -1
- package/dist/esm2022/lib/components/display-components/audio-grid/audio-grid.component.mjs +21 -1
- package/dist/esm2022/lib/components/display-components/card-video-display/card-video-display.component.mjs +36 -1
- package/dist/esm2022/lib/components/display-components/control-buttons-alt-component/control-buttons-alt-component.component.mjs +39 -1
- package/dist/esm2022/lib/components/display-components/control-buttons-component-touch/control-buttons-component-touch.component.mjs +25 -41
- package/dist/esm2022/lib/components/display-components/control-widgets/menu-participants-widget.component.mjs +22 -1
- package/dist/esm2022/lib/components/display-components/control-widgets/menu-record-widget.component.mjs +23 -1
- package/dist/esm2022/lib/components/display-components/control-widgets/menu-widget.component.mjs +24 -1
- package/dist/esm2022/lib/components/display-components/control-widgets/message-widget.component.mjs +24 -1
- package/dist/esm2022/lib/components/display-components/control-widgets/record-timer-widget.component.mjs +16 -1
- package/dist/esm2022/lib/components/display-components/control-widgets/screenshare-widget.component.mjs +28 -1
- package/dist/esm2022/lib/components/display-components/flexible-grid/flexible-grid.component.mjs +28 -19
- package/dist/esm2022/lib/components/display-components/flexible-video/flexible-video.component.mjs +31 -46
- package/dist/esm2022/lib/components/display-components/loading-modal/loading-modal.component.mjs +20 -18
- package/dist/esm2022/lib/components/display-components/main-aspect-component/main-aspect-component.component.mjs +33 -25
- package/dist/esm2022/lib/components/display-components/main-container-component/main-container-component.component.mjs +29 -17
- package/dist/esm2022/lib/components/display-components/main-grid-component/main-grid-component.component.mjs +29 -15
- package/dist/esm2022/lib/components/display-components/main-screen-component/main-screen-component.component.mjs +44 -23
- package/dist/esm2022/lib/components/display-components/meeting-progress-timer/meeting-progress-timer.component.mjs +26 -31
- package/dist/esm2022/lib/components/display-components/mini-audio/mini-audio.component.mjs +52 -59
- package/dist/esm2022/lib/components/display-components/mini-card/mini-card.component.mjs +20 -24
- package/dist/esm2022/lib/components/display-components/mini-card-audio/mini-card-audio.component.mjs +40 -40
- package/dist/esm2022/lib/components/display-components/other-grid-component/other-grid-component.component.mjs +29 -14
- package/dist/esm2022/lib/components/display-components/pagination/pagination.component.mjs +30 -24
- package/dist/esm2022/lib/components/display-components/sub-aspect-component/sub-aspect-component.component.mjs +19 -25
- package/dist/esm2022/lib/components/display-components/video-card/video-card.component.mjs +63 -1
- package/dist/esm2022/lib/components/display-settings-components/display-settings-modal.component.mjs +29 -18
- package/dist/esm2022/lib/components/event-settings-components/event-settings-modal/event-settings-modal.component.mjs +48 -39
- package/dist/esm2022/lib/components/exit-components/confirm-exit-modal/confirm-exit-modal.component.mjs +36 -23
- package/dist/esm2022/lib/components/media-settings-components/media-settings-modal/media-settings-modal.component.mjs +36 -25
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-broadcast.component.mjs +54 -3
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-chat.component.mjs +54 -3
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-conference.component.mjs +52 -3
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-generic.component.mjs +52 -3
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-webinar.component.mjs +50 -3
- package/dist/esm2022/lib/components/menu-components/custom-buttons/custom-buttons.component.mjs +50 -52
- package/dist/esm2022/lib/components/menu-components/meeting-id-component/meeting-id-component.component.mjs +7 -2
- package/dist/esm2022/lib/components/menu-components/meeting-passcode-component/meeting-passcode-component.component.mjs +6 -1
- package/dist/esm2022/lib/components/menu-components/menu-modal/menu-modal.component.mjs +22 -29
- package/dist/esm2022/lib/components/menu-components/share-buttons-component/share-buttons-component.component.mjs +16 -14
- package/dist/esm2022/lib/components/message-components/message-panel/message-panel.component.mjs +25 -1
- package/dist/esm2022/lib/components/message-components/messages-modal/messages-modal.component.mjs +35 -1
- package/dist/esm2022/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.mjs +17 -34
- package/dist/esm2022/lib/components/misc-components/pre-join-page/pre-join-page.component.mjs +9 -1
- package/dist/esm2022/lib/components/misc-components/share-event-modal/share-event-modal.component.mjs +15 -1
- package/dist/esm2022/lib/components/misc-components/welcome-page/welcome-page.component.mjs +16 -1
- package/dist/esm2022/lib/components/participants-components/participant-list/participant-list.component.mjs +20 -1
- package/dist/esm2022/lib/components/participants-components/participant-list-item/participant-list-item.component.mjs +20 -1
- package/dist/esm2022/lib/components/participants-components/participant-list-others/participant-list-others.component.mjs +18 -1
- package/dist/esm2022/lib/components/participants-components/participant-list-others-item/participant-list-others-item.component.mjs +18 -1
- package/dist/esm2022/lib/components/participants-components/participants-modal/participants-modal.component.mjs +25 -1
- package/dist/esm2022/lib/components/polls-components/poll-modal/poll-modal.component.mjs +28 -1
- package/dist/esm2022/lib/components/recording-components/advanced-panel-component/advanced-panel-components.component.mjs +16 -1
- package/dist/esm2022/lib/components/recording-components/recording-modal/recording-modal.component.mjs +13 -1
- package/dist/esm2022/lib/components/recording-components/standard-panel-component/standard-panel-component.component.mjs +6 -1
- package/dist/esm2022/lib/components/requests-components/render-request-component/render-request-component.component.mjs +23 -1
- package/dist/esm2022/lib/components/requests-components/requests-modal/requests-modal.component.mjs +18 -1
- package/dist/esm2022/lib/components/screenboard-components/screenboard/screenboard.component.mjs +11 -1
- package/dist/esm2022/lib/components/screenboard-components/screenboard-modal/screenboard-modal.component.mjs +12 -1
- package/dist/esm2022/lib/components/waiting-components/waiting-room-modal.component.mjs +60 -1
- package/dist/esm2022/lib/components/whiteboard-components/configure-whiteboard-modal/configure-whiteboard-modal.component.mjs +22 -1
- package/dist/esm2022/lib/components/whiteboard-components/whiteboard/whiteboard.component.mjs +50 -1
- package/dist/esm2022/lib/consumers/add-videos-grid.service.mjs +50 -1
- package/dist/esm2022/lib/consumers/auto-adjust.service.mjs +27 -1
- package/dist/esm2022/lib/consumers/calculate-rows-and-columns.service.mjs +19 -1
- package/dist/esm2022/lib/consumers/change-vids.service.mjs +132 -67
- package/dist/esm2022/lib/consumers/check-grid.service.mjs +33 -19
- package/dist/esm2022/lib/consumers/check-permission.service.mjs +26 -1
- package/dist/esm2022/lib/consumers/check-screen-share.service.mjs +36 -1
- package/dist/esm2022/lib/consumers/close-and-resize.service.mjs +103 -1
- package/dist/esm2022/lib/consumers/compare-active-names.service.mjs +32 -1
- package/dist/esm2022/lib/consumers/compare-screen-states.service.mjs +36 -1
- package/dist/esm2022/lib/consumers/connect-ips.service.mjs +43 -1
- package/dist/esm2022/lib/consumers/connect-recv-transport.service.mjs +34 -1
- package/dist/esm2022/lib/consumers/connect-send-transport-audio.service.mjs +39 -1
- package/dist/esm2022/lib/consumers/connect-send-transport-screen.service.mjs +41 -1
- package/dist/esm2022/lib/consumers/connect-send-transport-video.service.mjs +45 -1
- package/dist/esm2022/lib/consumers/connect-send-transport.service.mjs +55 -1
- package/dist/esm2022/lib/consumers/consumer-resume.service.mjs +37 -1
- package/dist/esm2022/lib/consumers/control-media.service.mjs +46 -1
- package/dist/esm2022/lib/consumers/create-send-transport.service.mjs +47 -1
- package/dist/esm2022/lib/consumers/disconnect-send-transport-audio.service.mjs +51 -1
- package/dist/esm2022/lib/consumers/disconnect-send-transport-screen.service.mjs +40 -1
- package/dist/esm2022/lib/consumers/disconnect-send-transport-video.service.mjs +46 -1
- package/dist/esm2022/lib/consumers/disp-streams.service.mjs +93 -1
- package/dist/esm2022/lib/consumers/generate-page-content.service.mjs +48 -1
- package/dist/esm2022/lib/consumers/get-estimate.service.mjs +51 -1
- package/dist/esm2022/lib/consumers/get-piped-producers-alt.service.mjs +34 -1
- package/dist/esm2022/lib/consumers/get-producers-piped.service.mjs +34 -1
- package/dist/esm2022/lib/consumers/get-videos.service.mjs +34 -1
- package/dist/esm2022/lib/consumers/mix-streams.service.mjs +23 -1
- package/dist/esm2022/lib/consumers/on-screen-changes.service.mjs +41 -1
- package/dist/esm2022/lib/consumers/prepopulate-user-media.service.mjs +100 -1
- package/dist/esm2022/lib/consumers/process-consumer-transports-audio.service.mjs +30 -1
- package/dist/esm2022/lib/consumers/process-consumer-transports.service.mjs +38 -1
- package/dist/esm2022/lib/consumers/re-port.service.mjs +49 -1
- package/dist/esm2022/lib/consumers/re-update-inter.service.mjs +83 -1
- package/dist/esm2022/lib/consumers/readjust.service.mjs +51 -1
- package/dist/esm2022/lib/consumers/receive-all-piped-transports.service.mjs +32 -1
- package/dist/esm2022/lib/consumers/receive-room-messages.service.mjs +28 -1
- package/dist/esm2022/lib/consumers/reorder-streams.service.mjs +59 -1
- package/dist/esm2022/lib/consumers/request-screen-share.service.mjs +35 -1
- package/dist/esm2022/lib/consumers/resume-pause-audio-streams.service.mjs +52 -1
- package/dist/esm2022/lib/consumers/resume-pause-streams.service.mjs +34 -1
- package/dist/esm2022/lib/consumers/resume-send-transport-audio.service.mjs +37 -1
- package/dist/esm2022/lib/consumers/signal-new-consumer-transport.service.mjs +38 -38
- package/dist/esm2022/lib/consumers/socket-receive-methods/join-consume-room.service.mjs +34 -1
- package/dist/esm2022/lib/consumers/socket-receive-methods/new-pipe-producer.service.mjs +40 -1
- package/dist/esm2022/lib/consumers/socket-receive-methods/producer-closed.service.mjs +28 -1
- package/dist/esm2022/lib/consumers/start-share-screen.service.mjs +41 -1
- package/dist/esm2022/lib/consumers/stop-share-screen.service.mjs +56 -1
- package/dist/esm2022/lib/consumers/stream-success-audio-switch.service.mjs +54 -1
- package/dist/esm2022/lib/consumers/stream-success-audio.service.mjs +62 -1
- package/dist/esm2022/lib/consumers/stream-success-screen.service.mjs +51 -1
- package/dist/esm2022/lib/consumers/stream-success-video.service.mjs +59 -1
- package/dist/esm2022/lib/consumers/switch-user-audio.service.mjs +34 -1
- package/dist/esm2022/lib/consumers/switch-user-video-alt.service.mjs +33 -1
- package/dist/esm2022/lib/consumers/switch-user-video.service.mjs +48 -1
- package/dist/esm2022/lib/consumers/trigger.service.mjs +39 -1
- package/dist/esm2022/lib/consumers/update-mini-cards-grid.service.mjs +55 -1
- package/dist/esm2022/lib/consumers/update-participant-audio-decibels.service.mjs +46 -1
- package/dist/esm2022/lib/methods/background-methods/launch-background.service.mjs +26 -1
- package/dist/esm2022/lib/methods/breakout-room-methods/breakout-room-updated.service.mjs +72 -1
- package/dist/esm2022/lib/methods/breakout-room-methods/launch-breakout-rooms.service.mjs +25 -1
- package/dist/esm2022/lib/methods/co-host-methods/launch-co-host.service.mjs +25 -1
- package/dist/esm2022/lib/methods/co-host-methods/modify-co-host-settings.service.mjs +45 -1
- package/dist/esm2022/lib/methods/display-settings-methods/launch-display-settings.service.mjs +23 -1
- package/dist/esm2022/lib/methods/display-settings-methods/modify-display-settings.service.mjs +76 -1
- package/dist/esm2022/lib/methods/exit-methods/confirm-exit.service.mjs +25 -1
- package/dist/esm2022/lib/methods/exit-methods/launch-confirm-exit.service.mjs +21 -1
- package/dist/esm2022/lib/methods/media-settings-methods/launch-media-settings.service.mjs +36 -1
- package/dist/esm2022/lib/methods/menu-methods/launch-menu-modal.service.mjs +23 -1
- package/dist/esm2022/lib/methods/message-methods/launch-messages.service.mjs +23 -1
- package/dist/esm2022/lib/methods/message-methods/send-message.service.mjs +50 -1
- package/dist/esm2022/lib/methods/participants-methods/launch-participants.service.mjs +25 -1
- package/dist/esm2022/lib/methods/participants-methods/message-participants.service.mjs +47 -1
- package/dist/esm2022/lib/methods/participants-methods/mute-participants.service.mjs +40 -1
- package/dist/esm2022/lib/methods/participants-methods/remove-participants.service.mjs +46 -1
- package/dist/esm2022/lib/methods/polls-methods/handle-create-poll.service.mjs +39 -1
- package/dist/esm2022/lib/methods/polls-methods/handle-end-poll.service.mjs +33 -1
- package/dist/esm2022/lib/methods/polls-methods/handle-vote-poll.service.mjs +35 -1
- package/dist/esm2022/lib/methods/polls-methods/launch-poll.service.mjs +21 -1
- package/dist/esm2022/lib/methods/polls-methods/poll-updated.service.mjs +32 -1
- package/dist/esm2022/lib/methods/recording-methods/check-pause-state.service.mjs +25 -1
- package/dist/esm2022/lib/methods/recording-methods/check-resume-state.service.mjs +23 -1
- package/dist/esm2022/lib/methods/recording-methods/confirm-recording.service.mjs +64 -1
- package/dist/esm2022/lib/methods/recording-methods/launch-recording.service.mjs +44 -1
- package/dist/esm2022/lib/methods/recording-methods/record-pause-timer.service.mjs +28 -1
- package/dist/esm2022/lib/methods/recording-methods/record-resume-timer.service.mjs +45 -1
- package/dist/esm2022/lib/methods/recording-methods/record-start-timer.service.mjs +46 -1
- package/dist/esm2022/lib/methods/recording-methods/record-update-timer.service.mjs +33 -1
- package/dist/esm2022/lib/methods/recording-methods/start-recording.service.mjs +51 -1
- package/dist/esm2022/lib/methods/recording-methods/stop-recording.service.mjs +39 -1
- package/dist/esm2022/lib/methods/recording-methods/update-recording.service.mjs +49 -1
- package/dist/esm2022/lib/methods/requests-methods/launch-requests.service.mjs +26 -1
- package/dist/esm2022/lib/methods/requests-methods/respond-to-requests.service.mjs +40 -1
- package/dist/esm2022/lib/methods/settings-methods/launch-settings.service.mjs +26 -1
- package/dist/esm2022/lib/methods/settings-methods/modify-settings.service.mjs +43 -1
- package/dist/esm2022/lib/methods/stream-methods/click-audio.service.mjs +98 -1
- package/dist/esm2022/lib/methods/stream-methods/click-chat.service.mjs +32 -1
- package/dist/esm2022/lib/methods/stream-methods/click-screen-share.service.mjs +69 -1
- package/dist/esm2022/lib/methods/stream-methods/click-video.service.mjs +89 -1
- package/dist/esm2022/lib/methods/stream-methods/switch-audio.service.mjs +48 -1
- package/dist/esm2022/lib/methods/stream-methods/switch-video-alt.service.mjs +51 -1
- package/dist/esm2022/lib/methods/stream-methods/switch-video.service.mjs +57 -1
- package/dist/esm2022/lib/methods/utils/format-number.service.mjs +27 -15
- package/dist/esm2022/lib/methods/utils/generate-random-messages.service.mjs +34 -1
- package/dist/esm2022/lib/methods/utils/generate-random-participants.service.mjs +28 -1
- package/dist/esm2022/lib/methods/utils/generate-random-polls.service.mjs +27 -1
- package/dist/esm2022/lib/methods/utils/generate-random-request-list.service.mjs +37 -1
- package/dist/esm2022/lib/methods/utils/generate-random-waiting-room-list.service.mjs +22 -1
- package/dist/esm2022/lib/methods/utils/get-modal-position.util.mjs +14 -4
- package/dist/esm2022/lib/methods/utils/get-overlay-position.util.mjs +14 -4
- package/dist/esm2022/lib/methods/utils/initial-values.util.mjs +13 -3
- package/dist/esm2022/lib/methods/utils/meeting-timer/start-meeting-progress-timer.service.mjs +38 -1
- package/dist/esm2022/lib/methods/utils/mini-audio-player/mini-audio-player.component.mjs +56 -1
- package/dist/esm2022/lib/methods/utils/producer/a-params.service.mjs +38 -1
- package/dist/esm2022/lib/methods/utils/producer/h-params.service.mjs +51 -1
- package/dist/esm2022/lib/methods/utils/producer/screen-params.service.mjs +38 -1
- package/dist/esm2022/lib/methods/utils/producer/v-params.service.mjs +51 -1
- package/dist/esm2022/lib/methods/utils/producer/video-capture-constraints.service.mjs +47 -1
- package/dist/esm2022/lib/methods/utils/sleep.util.mjs +10 -4
- package/dist/esm2022/lib/methods/utils/sound-player.service.mjs +22 -1
- package/dist/esm2022/lib/methods/utils/validate-alphanumeric.service.mjs +17 -1
- package/dist/esm2022/lib/methods/waiting-methods/launch-waiting.service.mjs +19 -1
- package/dist/esm2022/lib/methods/waiting-methods/respond-to-waiting.service.mjs +30 -1
- package/dist/esm2022/lib/methods/whiteboard-methods/capture-canvas-stream.service.mjs +30 -1
- package/dist/esm2022/lib/methods/whiteboard-methods/launch-configure-whiteboard.service.mjs +21 -1
- package/dist/esm2022/lib/producer-client/producer-client-emits/create-device-client.service.mjs +24 -1
- package/dist/esm2022/lib/producer-client/producer-client-emits/join-room-client.service.mjs +32 -1
- package/dist/esm2022/lib/producer-client/producer-client-emits/update-room-parameters-client.service.mjs +45 -1
- package/dist/esm2022/lib/producers/producer-emits/join-con-room.service.mjs +39 -1
- package/dist/esm2022/lib/producers/producer-emits/join-room.service.mjs +39 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/all-members-rest.service.mjs +74 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/all-members.service.mjs +72 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/all-waiting-room-members.service.mjs +28 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/ban-participant.service.mjs +37 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/control-media-host.service.mjs +38 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/disconnect-user-self.service.mjs +25 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/disconnect.service.mjs +27 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/get-domains.service.mjs +25 -10
- package/dist/esm2022/lib/producers/socket-receive-methods/host-request-response.service.mjs +32 -49
- package/dist/esm2022/lib/producers/socket-receive-methods/meeting-ended.service.mjs +30 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/meeting-still-there.service.mjs +24 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/meeting-time-remaining.service.mjs +28 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/participant-requested.service.mjs +32 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/person-joined.service.mjs +26 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-closed.service.mjs +62 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-paused.service.mjs +63 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-resumed.service.mjs +46 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/re-initiate-recording.service.mjs +30 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/receive-message.service.mjs +39 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/recording-notice.service.mjs +39 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/room-record-params.service.mjs +63 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/screen-producer-id.service.mjs +42 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/start-records.service.mjs +26 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/stopped-recording.service.mjs +26 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/time-left-recording.service.mjs +22 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/update-consuming-domains.service.mjs +43 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/update-media-settings.service.mjs +31 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/updated-co-host.service.mjs +41 -1
- package/dist/esm2022/lib/producers/socket-receive-methods/user-waiting.service.mjs +15 -41
- package/dist/esm2022/lib/sockets/socket-manager.service.mjs +41 -1
- package/dist/fesm2022/mediasfu-angular.mjs +8192 -910
- package/dist/fesm2022/mediasfu-angular.mjs.map +1 -1
- package/dist/lib/components/background-components/background-modal/background-modal.component.d.ts +36 -0
- package/dist/lib/components/breakout-components/breakout-rooms-modal.component.d.ts +50 -0
- package/dist/lib/components/breakout-components/edit-room-modal/edit-room-modal.component.d.ts +48 -0
- package/dist/lib/components/co-host-components/co-host-modal/co-host-modal.component.d.ts +62 -0
- package/dist/lib/components/display-components/alert-component/alert.component.component.d.ts +24 -18
- package/dist/lib/components/display-components/audio-card/audio-card.component.d.ts +59 -0
- package/dist/lib/components/display-components/audio-grid/audio-grid.component.d.ts +20 -0
- package/dist/lib/components/display-components/card-video-display/card-video-display.component.d.ts +35 -0
- package/dist/lib/components/display-components/control-buttons-alt-component/control-buttons-alt-component.component.d.ts +38 -0
- package/dist/lib/components/display-components/control-buttons-component-touch/control-buttons-component-touch.component.d.ts +24 -40
- package/dist/lib/components/display-components/control-widgets/menu-participants-widget.component.d.ts +21 -0
- package/dist/lib/components/display-components/control-widgets/menu-record-widget.component.d.ts +22 -0
- package/dist/lib/components/display-components/control-widgets/menu-widget.component.d.ts +23 -0
- package/dist/lib/components/display-components/control-widgets/message-widget.component.d.ts +23 -0
- package/dist/lib/components/display-components/control-widgets/record-timer-widget.component.d.ts +15 -0
- package/dist/lib/components/display-components/control-widgets/screenshare-widget.component.d.ts +27 -0
- package/dist/lib/components/display-components/flexible-grid/flexible-grid.component.d.ts +27 -18
- package/dist/lib/components/display-components/flexible-video/flexible-video.component.d.ts +30 -45
- package/dist/lib/components/display-components/loading-modal/loading-modal.component.d.ts +19 -17
- package/dist/lib/components/display-components/main-aspect-component/main-aspect-component.component.d.ts +32 -24
- package/dist/lib/components/display-components/main-container-component/main-container-component.component.d.ts +28 -16
- package/dist/lib/components/display-components/main-grid-component/main-grid-component.component.d.ts +28 -14
- package/dist/lib/components/display-components/main-screen-component/main-screen-component.component.d.ts +43 -22
- package/dist/lib/components/display-components/meeting-progress-timer/meeting-progress-timer.component.d.ts +25 -30
- package/dist/lib/components/display-components/mini-audio/mini-audio.component.d.ts +55 -62
- package/dist/lib/components/display-components/mini-card/mini-card.component.d.ts +19 -23
- package/dist/lib/components/display-components/mini-card-audio/mini-card-audio.component.d.ts +39 -39
- package/dist/lib/components/display-components/other-grid-component/other-grid-component.component.d.ts +28 -13
- package/dist/lib/components/display-components/pagination/pagination.component.d.ts +29 -23
- package/dist/lib/components/display-components/sub-aspect-component/sub-aspect-component.component.d.ts +18 -24
- package/dist/lib/components/display-components/video-card/video-card.component.d.ts +62 -0
- package/dist/lib/components/display-settings-components/display-settings-modal.component.d.ts +28 -17
- package/dist/lib/components/event-settings-components/event-settings-modal/event-settings-modal.component.d.ts +47 -38
- package/dist/lib/components/exit-components/confirm-exit-modal/confirm-exit-modal.component.d.ts +35 -22
- package/dist/lib/components/media-settings-components/media-settings-modal/media-settings-modal.component.d.ts +35 -24
- package/dist/lib/components/mediasfu-components/mediasfu-broadcast.component.d.ts +49 -0
- package/dist/lib/components/mediasfu-components/mediasfu-chat.component.d.ts +49 -0
- package/dist/lib/components/mediasfu-components/mediasfu-conference.component.d.ts +47 -11
- package/dist/lib/components/mediasfu-components/mediasfu-generic.component.d.ts +47 -11
- package/dist/lib/components/mediasfu-components/mediasfu-webinar.component.d.ts +45 -11
- package/dist/lib/components/menu-components/custom-buttons/custom-buttons.component.d.ts +49 -51
- package/dist/lib/components/menu-components/meeting-id-component/meeting-id-component.component.d.ts +6 -1
- package/dist/lib/components/menu-components/meeting-passcode-component/meeting-passcode-component.component.d.ts +5 -0
- package/dist/lib/components/menu-components/menu-modal/menu-modal.component.d.ts +21 -28
- package/dist/lib/components/menu-components/share-buttons-component/share-buttons-component.component.d.ts +15 -13
- package/dist/lib/components/message-components/message-panel/message-panel.component.d.ts +24 -0
- package/dist/lib/components/message-components/messages-modal/messages-modal.component.d.ts +34 -0
- package/dist/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.d.ts +16 -33
- package/dist/lib/components/misc-components/pre-join-page/pre-join-page.component.d.ts +8 -0
- package/dist/lib/components/misc-components/share-event-modal/share-event-modal.component.d.ts +14 -0
- package/dist/lib/components/misc-components/welcome-page/welcome-page.component.d.ts +15 -0
- package/dist/lib/components/participants-components/participant-list/participant-list.component.d.ts +19 -0
- package/dist/lib/components/participants-components/participant-list-item/participant-list-item.component.d.ts +19 -0
- package/dist/lib/components/participants-components/participant-list-others/participant-list-others.component.d.ts +17 -0
- package/dist/lib/components/participants-components/participant-list-others-item/participant-list-others-item.component.d.ts +17 -0
- package/dist/lib/components/participants-components/participants-modal/participants-modal.component.d.ts +24 -0
- package/dist/lib/components/polls-components/poll-modal/poll-modal.component.d.ts +27 -0
- package/dist/lib/components/recording-components/advanced-panel-component/advanced-panel-components.component.d.ts +15 -0
- package/dist/lib/components/recording-components/recording-modal/recording-modal.component.d.ts +12 -0
- package/dist/lib/components/recording-components/standard-panel-component/standard-panel-component.component.d.ts +5 -0
- package/dist/lib/components/requests-components/render-request-component/render-request-component.component.d.ts +22 -0
- package/dist/lib/components/requests-components/requests-modal/requests-modal.component.d.ts +17 -0
- package/dist/lib/components/screenboard-components/screenboard/screenboard.component.d.ts +10 -0
- package/dist/lib/components/screenboard-components/screenboard-modal/screenboard-modal.component.d.ts +11 -0
- package/dist/lib/components/waiting-components/waiting-room-modal.component.d.ts +59 -0
- package/dist/lib/components/whiteboard-components/configure-whiteboard-modal/configure-whiteboard-modal.component.d.ts +21 -0
- package/dist/lib/components/whiteboard-components/whiteboard/whiteboard.component.d.ts +49 -0
- package/dist/lib/consumers/add-videos-grid.service.d.ts +49 -0
- package/dist/lib/consumers/auto-adjust.service.d.ts +26 -0
- package/dist/lib/consumers/calculate-rows-and-columns.service.d.ts +18 -0
- package/dist/lib/consumers/change-vids.service.d.ts +131 -66
- package/dist/lib/consumers/check-grid.service.d.ts +32 -18
- package/dist/lib/consumers/check-permission.service.d.ts +25 -0
- package/dist/lib/consumers/check-screen-share.service.d.ts +35 -0
- package/dist/lib/consumers/close-and-resize.service.d.ts +102 -0
- package/dist/lib/consumers/compare-active-names.service.d.ts +31 -0
- package/dist/lib/consumers/compare-screen-states.service.d.ts +35 -0
- package/dist/lib/consumers/connect-ips.service.d.ts +42 -0
- package/dist/lib/consumers/connect-recv-transport.service.d.ts +33 -0
- package/dist/lib/consumers/connect-send-transport-audio.service.d.ts +38 -0
- package/dist/lib/consumers/connect-send-transport-screen.service.d.ts +40 -0
- package/dist/lib/consumers/connect-send-transport-video.service.d.ts +44 -0
- package/dist/lib/consumers/connect-send-transport.service.d.ts +54 -0
- package/dist/lib/consumers/consumer-resume.service.d.ts +36 -0
- package/dist/lib/consumers/control-media.service.d.ts +45 -0
- package/dist/lib/consumers/create-send-transport.service.d.ts +46 -0
- package/dist/lib/consumers/disconnect-send-transport-audio.service.d.ts +50 -0
- package/dist/lib/consumers/disconnect-send-transport-screen.service.d.ts +39 -0
- package/dist/lib/consumers/disconnect-send-transport-video.service.d.ts +45 -0
- package/dist/lib/consumers/disp-streams.service.d.ts +92 -0
- package/dist/lib/consumers/generate-page-content.service.d.ts +47 -0
- package/dist/lib/consumers/get-estimate.service.d.ts +50 -0
- package/dist/lib/consumers/get-piped-producers-alt.service.d.ts +33 -0
- package/dist/lib/consumers/get-producers-piped.service.d.ts +33 -0
- package/dist/lib/consumers/get-videos.service.d.ts +33 -0
- package/dist/lib/consumers/mix-streams.service.d.ts +22 -0
- package/dist/lib/consumers/on-screen-changes.service.d.ts +40 -0
- package/dist/lib/consumers/prepopulate-user-media.service.d.ts +99 -0
- package/dist/lib/consumers/process-consumer-transports-audio.service.d.ts +29 -0
- package/dist/lib/consumers/process-consumer-transports.service.d.ts +37 -0
- package/dist/lib/consumers/re-port.service.d.ts +48 -0
- package/dist/lib/consumers/re-update-inter.service.d.ts +82 -0
- package/dist/lib/consumers/readjust.service.d.ts +50 -0
- package/dist/lib/consumers/receive-all-piped-transports.service.d.ts +31 -0
- package/dist/lib/consumers/receive-room-messages.service.d.ts +27 -0
- package/dist/lib/consumers/reorder-streams.service.d.ts +58 -0
- package/dist/lib/consumers/request-screen-share.service.d.ts +34 -0
- package/dist/lib/consumers/resume-pause-audio-streams.service.d.ts +51 -0
- package/dist/lib/consumers/resume-pause-streams.service.d.ts +33 -0
- package/dist/lib/consumers/resume-send-transport-audio.service.d.ts +36 -0
- package/dist/lib/consumers/signal-new-consumer-transport.service.d.ts +37 -37
- package/dist/lib/consumers/socket-receive-methods/join-consume-room.service.d.ts +33 -0
- package/dist/lib/consumers/socket-receive-methods/new-pipe-producer.service.d.ts +39 -0
- package/dist/lib/consumers/socket-receive-methods/producer-closed.service.d.ts +27 -0
- package/dist/lib/consumers/start-share-screen.service.d.ts +40 -0
- package/dist/lib/consumers/stop-share-screen.service.d.ts +55 -0
- package/dist/lib/consumers/stream-success-audio-switch.service.d.ts +53 -0
- package/dist/lib/consumers/stream-success-audio.service.d.ts +61 -0
- package/dist/lib/consumers/stream-success-screen.service.d.ts +50 -0
- package/dist/lib/consumers/stream-success-video.service.d.ts +58 -0
- package/dist/lib/consumers/switch-user-audio.service.d.ts +33 -0
- package/dist/lib/consumers/switch-user-video-alt.service.d.ts +32 -0
- package/dist/lib/consumers/switch-user-video.service.d.ts +47 -0
- package/dist/lib/consumers/trigger.service.d.ts +38 -0
- package/dist/lib/consumers/update-mini-cards-grid.service.d.ts +54 -0
- package/dist/lib/consumers/update-participant-audio-decibels.service.d.ts +45 -0
- package/dist/lib/methods/background-methods/launch-background.service.d.ts +25 -0
- package/dist/lib/methods/breakout-room-methods/breakout-room-updated.service.d.ts +71 -0
- package/dist/lib/methods/breakout-room-methods/launch-breakout-rooms.service.d.ts +24 -0
- package/dist/lib/methods/co-host-methods/launch-co-host.service.d.ts +24 -0
- package/dist/lib/methods/co-host-methods/modify-co-host-settings.service.d.ts +44 -0
- package/dist/lib/methods/display-settings-methods/launch-display-settings.service.d.ts +22 -0
- package/dist/lib/methods/display-settings-methods/modify-display-settings.service.d.ts +75 -0
- package/dist/lib/methods/exit-methods/confirm-exit.service.d.ts +24 -0
- package/dist/lib/methods/exit-methods/launch-confirm-exit.service.d.ts +20 -0
- package/dist/lib/methods/media-settings-methods/launch-media-settings.service.d.ts +35 -0
- package/dist/lib/methods/menu-methods/launch-menu-modal.service.d.ts +22 -0
- package/dist/lib/methods/message-methods/launch-messages.service.d.ts +22 -0
- package/dist/lib/methods/message-methods/send-message.service.d.ts +49 -0
- package/dist/lib/methods/participants-methods/launch-participants.service.d.ts +24 -0
- package/dist/lib/methods/participants-methods/message-participants.service.d.ts +46 -0
- package/dist/lib/methods/participants-methods/mute-participants.service.d.ts +39 -0
- package/dist/lib/methods/participants-methods/remove-participants.service.d.ts +45 -0
- package/dist/lib/methods/polls-methods/handle-create-poll.service.d.ts +38 -0
- package/dist/lib/methods/polls-methods/handle-end-poll.service.d.ts +32 -0
- package/dist/lib/methods/polls-methods/handle-vote-poll.service.d.ts +34 -0
- package/dist/lib/methods/polls-methods/launch-poll.service.d.ts +20 -0
- package/dist/lib/methods/polls-methods/poll-updated.service.d.ts +31 -0
- package/dist/lib/methods/recording-methods/check-pause-state.service.d.ts +24 -0
- package/dist/lib/methods/recording-methods/check-resume-state.service.d.ts +22 -0
- package/dist/lib/methods/recording-methods/confirm-recording.service.d.ts +63 -0
- package/dist/lib/methods/recording-methods/launch-recording.service.d.ts +43 -0
- package/dist/lib/methods/recording-methods/record-pause-timer.service.d.ts +27 -0
- package/dist/lib/methods/recording-methods/record-resume-timer.service.d.ts +44 -0
- package/dist/lib/methods/recording-methods/record-start-timer.service.d.ts +45 -0
- package/dist/lib/methods/recording-methods/record-update-timer.service.d.ts +32 -0
- package/dist/lib/methods/recording-methods/start-recording.service.d.ts +50 -0
- package/dist/lib/methods/recording-methods/stop-recording.service.d.ts +38 -0
- package/dist/lib/methods/recording-methods/update-recording.service.d.ts +48 -0
- package/dist/lib/methods/requests-methods/launch-requests.service.d.ts +25 -0
- package/dist/lib/methods/requests-methods/respond-to-requests.service.d.ts +39 -0
- package/dist/lib/methods/settings-methods/launch-settings.service.d.ts +25 -0
- package/dist/lib/methods/settings-methods/modify-settings.service.d.ts +42 -0
- package/dist/lib/methods/stream-methods/click-audio.service.d.ts +97 -0
- package/dist/lib/methods/stream-methods/click-chat.service.d.ts +31 -0
- package/dist/lib/methods/stream-methods/click-screen-share.service.d.ts +68 -0
- package/dist/lib/methods/stream-methods/click-video.service.d.ts +88 -0
- package/dist/lib/methods/stream-methods/switch-audio.service.d.ts +47 -0
- package/dist/lib/methods/stream-methods/switch-video-alt.service.d.ts +50 -0
- package/dist/lib/methods/stream-methods/switch-video.service.d.ts +56 -0
- package/dist/lib/methods/utils/format-number.service.d.ts +26 -14
- package/dist/lib/methods/utils/generate-random-messages.service.d.ts +33 -0
- package/dist/lib/methods/utils/generate-random-participants.service.d.ts +27 -0
- package/dist/lib/methods/utils/generate-random-polls.service.d.ts +26 -0
- package/dist/lib/methods/utils/generate-random-request-list.service.d.ts +36 -0
- package/dist/lib/methods/utils/generate-random-waiting-room-list.service.d.ts +21 -0
- package/dist/lib/methods/utils/get-modal-position.util.d.ts +13 -3
- package/dist/lib/methods/utils/get-overlay-position.util.d.ts +13 -3
- package/dist/lib/methods/utils/meeting-timer/start-meeting-progress-timer.service.d.ts +37 -0
- package/dist/lib/methods/utils/mini-audio-player/mini-audio-player.component.d.ts +55 -0
- package/dist/lib/methods/utils/producer/a-params.service.d.ts +37 -0
- package/dist/lib/methods/utils/producer/h-params.service.d.ts +50 -0
- package/dist/lib/methods/utils/producer/screen-params.service.d.ts +37 -0
- package/dist/lib/methods/utils/producer/v-params.service.d.ts +50 -0
- package/dist/lib/methods/utils/producer/video-capture-constraints.service.d.ts +46 -0
- package/dist/lib/methods/utils/sleep.util.d.ts +9 -3
- package/dist/lib/methods/utils/sound-player.service.d.ts +21 -0
- package/dist/lib/methods/utils/validate-alphanumeric.service.d.ts +16 -0
- package/dist/lib/methods/waiting-methods/launch-waiting.service.d.ts +18 -0
- package/dist/lib/methods/waiting-methods/respond-to-waiting.service.d.ts +29 -0
- package/dist/lib/methods/whiteboard-methods/capture-canvas-stream.service.d.ts +29 -0
- package/dist/lib/methods/whiteboard-methods/launch-configure-whiteboard.service.d.ts +20 -0
- package/dist/lib/producer-client/producer-client-emits/create-device-client.service.d.ts +23 -0
- package/dist/lib/producer-client/producer-client-emits/join-room-client.service.d.ts +31 -0
- package/dist/lib/producer-client/producer-client-emits/update-room-parameters-client.service.d.ts +44 -0
- package/dist/lib/producers/producer-emits/join-con-room.service.d.ts +38 -0
- package/dist/lib/producers/producer-emits/join-room.service.d.ts +38 -0
- package/dist/lib/producers/socket-receive-methods/all-members-rest.service.d.ts +73 -0
- package/dist/lib/producers/socket-receive-methods/all-members.service.d.ts +71 -0
- package/dist/lib/producers/socket-receive-methods/all-waiting-room-members.service.d.ts +27 -0
- package/dist/lib/producers/socket-receive-methods/ban-participant.service.d.ts +36 -0
- package/dist/lib/producers/socket-receive-methods/control-media-host.service.d.ts +37 -0
- package/dist/lib/producers/socket-receive-methods/disconnect-user-self.service.d.ts +24 -0
- package/dist/lib/producers/socket-receive-methods/disconnect.service.d.ts +26 -0
- package/dist/lib/producers/socket-receive-methods/get-domains.service.d.ts +24 -9
- package/dist/lib/producers/socket-receive-methods/host-request-response.service.d.ts +31 -48
- package/dist/lib/producers/socket-receive-methods/meeting-ended.service.d.ts +29 -0
- package/dist/lib/producers/socket-receive-methods/meeting-still-there.service.d.ts +23 -0
- package/dist/lib/producers/socket-receive-methods/meeting-time-remaining.service.d.ts +27 -0
- package/dist/lib/producers/socket-receive-methods/participant-requested.service.d.ts +31 -0
- package/dist/lib/producers/socket-receive-methods/person-joined.service.d.ts +25 -0
- package/dist/lib/producers/socket-receive-methods/producer-media-closed.service.d.ts +61 -0
- package/dist/lib/producers/socket-receive-methods/producer-media-paused.service.d.ts +62 -0
- package/dist/lib/producers/socket-receive-methods/producer-media-resumed.service.d.ts +45 -0
- package/dist/lib/producers/socket-receive-methods/re-initiate-recording.service.d.ts +29 -0
- package/dist/lib/producers/socket-receive-methods/receive-message.service.d.ts +38 -0
- package/dist/lib/producers/socket-receive-methods/recording-notice.service.d.ts +38 -0
- package/dist/lib/producers/socket-receive-methods/room-record-params.service.d.ts +62 -0
- package/dist/lib/producers/socket-receive-methods/screen-producer-id.service.d.ts +41 -0
- package/dist/lib/producers/socket-receive-methods/start-records.service.d.ts +25 -0
- package/dist/lib/producers/socket-receive-methods/stopped-recording.service.d.ts +25 -0
- package/dist/lib/producers/socket-receive-methods/time-left-recording.service.d.ts +21 -0
- package/dist/lib/producers/socket-receive-methods/update-consuming-domains.service.d.ts +42 -0
- package/dist/lib/producers/socket-receive-methods/update-media-settings.service.d.ts +30 -0
- package/dist/lib/producers/socket-receive-methods/updated-co-host.service.d.ts +40 -0
- package/dist/lib/producers/socket-receive-methods/user-waiting.service.d.ts +14 -40
- package/dist/lib/sockets/socket-manager.service.d.ts +40 -0
- package/package.json +11 -2
|
@@ -8,37 +8,50 @@ import * as i1 from "../../../methods/exit-methods/confirm-exit.service";
|
|
|
8
8
|
import * as i2 from "@angular/common";
|
|
9
9
|
import * as i3 from "@fortawesome/angular-fontawesome";
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
11
|
+
* ConfirmExitModal component renders a modal view for exit confirmation,
|
|
12
|
+
* allowing users to confirm or cancel an exit event from a session or room.
|
|
12
13
|
*
|
|
14
|
+
* @component
|
|
13
15
|
* @selector app-confirm-exit-modal
|
|
14
|
-
* @templateUrl ./confirm-exit-modal.component.html
|
|
15
|
-
* @styleUrls ./confirm-exit-modal.component.css
|
|
16
16
|
* @standalone true
|
|
17
17
|
* @imports [CommonModule, FormsModule, FontAwesomeModule]
|
|
18
18
|
*
|
|
19
|
-
* @
|
|
20
|
-
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```html
|
|
21
|
+
* <app-confirm-exit-modal
|
|
22
|
+
* [isConfirmExitModalVisible]="true"
|
|
23
|
+
* [onConfirmExitClose]="closeModal"
|
|
24
|
+
* [exitEventOnConfirm]="confirmExit"
|
|
25
|
+
* [member]="memberName"
|
|
26
|
+
* [ban]="false"
|
|
27
|
+
* [roomName]="currentRoom"
|
|
28
|
+
* [socket]="socketInstance"
|
|
29
|
+
* [islevel]="userLevel">
|
|
30
|
+
* </app-confirm-exit-modal>
|
|
31
|
+
* ```
|
|
21
32
|
*
|
|
22
|
-
* @
|
|
23
|
-
* @
|
|
24
|
-
* @
|
|
25
|
-
* @
|
|
26
|
-
* @
|
|
27
|
-
* @
|
|
28
|
-
* @
|
|
29
|
-
* @
|
|
30
|
-
* @
|
|
31
|
-
* @
|
|
32
|
-
*
|
|
33
|
-
* @property {
|
|
33
|
+
* @input {boolean} isConfirmExitModalVisible - Determines the visibility of the modal.
|
|
34
|
+
* @input {() => void} onConfirmExitClose - Callback to close the modal.
|
|
35
|
+
* @input {string} position - Position on the screen (default: 'topRight').
|
|
36
|
+
* @input {string} backgroundColor - Background color of the modal (default: '#83c0e9').
|
|
37
|
+
* @input {(options: ConfirmExitOptions) => void} exitEventOnConfirm - Callback function to handle exit confirmation.
|
|
38
|
+
* @input {string} member - Identifies the member for whom the exit is confirmed.
|
|
39
|
+
* @input {boolean} ban - Indicates if the exit action includes a ban.
|
|
40
|
+
* @input {string} roomName - Name of the room involved in the exit action.
|
|
41
|
+
* @input {Socket} socket - Socket instance for real-time interaction.
|
|
42
|
+
* @input {string} islevel - User level information.
|
|
43
|
+
*
|
|
44
|
+
* @property {IconDefinition} faTimes - FontAwesome icon for the close button.
|
|
45
|
+
* @property {any} modalContentStyle - Object defining the style for modal content.
|
|
34
46
|
*
|
|
35
47
|
* @constructor
|
|
36
|
-
* @param {ConfirmExit} confirmExitService - Service
|
|
48
|
+
* @param {ConfirmExit} confirmExitService - Service to handle the exit confirmation.
|
|
49
|
+
*
|
|
50
|
+
* @method ngOnInit - Initializes component properties and default styles for the modal content.
|
|
51
|
+
* @method ngOnChanges - Updates component state upon changes in input properties.
|
|
52
|
+
* @param {SimpleChanges} changes - Object containing the current and previous property values.
|
|
37
53
|
*
|
|
38
|
-
* @method
|
|
39
|
-
* @method ngOnChanges - Lifecycle hook that is called when any data-bound property changes.
|
|
40
|
-
* @param {SimpleChanges} changes - Object of current and previous property values.
|
|
41
|
-
* @method handleConfirmExit - Handles the exit confirmation event.
|
|
54
|
+
* @method handleConfirmExit - Handles the exit confirmation event, triggering the provided `exitEventOnConfirm` function and then closing the modal.
|
|
42
55
|
*/
|
|
43
56
|
export class ConfirmExitModal {
|
|
44
57
|
confirmExitService;
|
|
@@ -116,4 +129,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
116
129
|
}], islevel: [{
|
|
117
130
|
type: Input
|
|
118
131
|
}] } });
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1leGl0LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2V4aXQtY29tcG9uZW50cy9jb25maXJtLWV4aXQtbW9kYWwvY29uZmlybS1leGl0LW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2V4aXQtY29tcG9uZW50cy9jb25maXJtLWV4aXQtbW9kYWwvY29uZmlybS1leGl0LW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7QUFxQnJFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdDRztBQVFILE1BQU0sT0FBTyxnQkFBZ0I7SUFnQlA7SUFmWCx5QkFBeUIsR0FBRyxLQUFLLENBQUM7SUFDbEMsa0JBQWtCLENBQWM7SUFDaEMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUN0QixlQUFlLEdBQUcsU0FBUyxDQUFDO0lBQzVCLGtCQUFrQixDQUF5QztJQUMzRCxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ1osR0FBRyxHQUFHLEtBQUssQ0FBQztJQUNaLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDZCxNQUFNLEdBQVcsRUFBWSxDQUFDO0lBQzlC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cywgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmYVRpbWVzIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcbmltcG9ydCB7IEZvbnRBd2Vzb21lTW9kdWxlIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xuaW1wb3J0IHtcbiAgQ29uZmlybUV4aXQsXG4gIENvbmZpcm1FeGl0T3B0aW9ucyxcbn0gZnJvbSAnLi4vLi4vLi4vbWV0aG9kcy9leGl0LW1ldGhvZHMvY29uZmlybS1leGl0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU29ja2V0IH0gZnJvbSAnc29ja2V0LmlvLWNsaWVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlybUV4aXRNb2RhbE9wdGlvbnMge1xuICBpc0NvbmZpcm1FeGl0TW9kYWxWaXNpYmxlOiBib29sZWFuO1xuICBvbkNvbmZpcm1FeGl0Q2xvc2U6ICgpID0+IHZvaWQ7XG4gIHBvc2l0aW9uPzogJ3RvcFJpZ2h0JyB8ICd0b3BMZWZ0JyB8ICdib3R0b21SaWdodCcgfCAnYm90dG9tTGVmdCc7XG4gIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgZXhpdEV2ZW50T25Db25maXJtPzogKG9wdGlvbnM6IENvbmZpcm1FeGl0T3B0aW9ucykgPT4gdm9pZDtcbiAgbWVtYmVyOiBzdHJpbmc7XG4gIGJhbj86IGJvb2xlYW47XG4gIHJvb21OYW1lOiBzdHJpbmc7XG4gIHNvY2tldDogU29ja2V0O1xuICBpc2xldmVsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIENvbmZpcm1FeGl0TW9kYWxUeXBlID0gKG9wdGlvbnM6IENvbmZpcm1FeGl0TW9kYWxPcHRpb25zKSA9PiBIVE1MRWxlbWVudDtcbi8qKlxuICogQ29tcG9uZW50IGZvciBkaXNwbGF5aW5nIGEgY29uZmlybWF0aW9uIG1vZGFsIHdoZW4gZXhpdGluZy5cbiAqXG4gKiBAc2VsZWN0b3IgYXBwLWNvbmZpcm0tZXhpdC1tb2RhbFxuICogQHRlbXBsYXRlVXJsIC4vY29uZmlybS1leGl0LW1vZGFsLmNvbXBvbmVudC5odG1sXG4gKiBAc3R5bGVVcmxzIC4vY29uZmlybS1leGl0LW1vZGFsLmNvbXBvbmVudC5jc3NcbiAqIEBzdGFuZGFsb25lIHRydWVcbiAqIEBpbXBvcnRzIFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBGb250QXdlc29tZU1vZHVsZV1cbiAqXG4gKiBAY2xhc3MgQ29uZmlybUV4aXRNb2RhbFxuICogQGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXNcbiAqXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzQ29uZmlybUV4aXRNb2RhbFZpc2libGUgLSBWaXNpYmlsaXR5IHN0YXRlIG9mIHRoZSBjb25maXJtYXRpb24gbW9kYWwuXG4gKiBAcHJvcGVydHkgeygpID0+IHZvaWR9IG9uQ29uZmlybUV4aXRDbG9zZSAtIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGNsb3NlIHRoZSBtb2RhbC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBwb3NpdGlvbiAtIFBvc2l0aW9uIG9mIHRoZSBtb2RhbCBvbiB0aGUgc2NyZWVuLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGJhY2tncm91bmRDb2xvciAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIG1vZGFsLlxuICogQHByb3BlcnR5IHsob3B0aW9uczogQ29uZmlybUV4aXRPcHRpb25zKSA9PiB2b2lkfSBleGl0RXZlbnRPbkNvbmZpcm0gLSBFdmVudCB0cmlnZ2VyZWQgb24gY29uZmlybWluZyBleGl0LlxuICogQHByb3BlcnR5IHtzdHJpbmd9IG1lbWJlciAtIE1lbWJlciBpbmZvcm1hdGlvbi5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gYmFuIC0gQmFuIHN0YXR1cy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSByb29tTmFtZSAtIE5hbWUgb2YgdGhlIHJvb20uXG4gKiBAcHJvcGVydHkge1NvY2tldH0gc29ja2V0IC0gU29ja2V0IGluc3RhbmNlLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGlzbGV2ZWwgLSBMZXZlbCBpbmZvcm1hdGlvbi5cbiAqIEBwcm9wZXJ0eSB7SWNvbkRlZmluaXRpb259IGZhVGltZXMgLSBGb250QXdlc29tZSBpY29uIGZvciBjbG9zZSBidXR0b24uXG4gKiBAcHJvcGVydHkge2FueX0gbW9kYWxDb250ZW50U3R5bGUgLSBTdHlsZSBvYmplY3QgZm9yIG1vZGFsIGNvbnRlbnQuXG4gKlxuICogQGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge0NvbmZpcm1FeGl0fSBjb25maXJtRXhpdFNlcnZpY2UgLSBTZXJ2aWNlIGZvciBoYW5kbGluZyBleGl0IGNvbmZpcm1hdGlvbi5cbiAqXG4gKiBAbWV0aG9kIG5nT25Jbml0IC0gTGlmZWN5Y2xlIGhvb2sgdGhhdCBpcyBjYWxsZWQgYWZ0ZXIgZGF0YS1ib3VuZCBwcm9wZXJ0aWVzIGFyZSBpbml0aWFsaXplZC5cbiAqIEBtZXRob2QgbmdPbkNoYW5nZXMgLSBMaWZlY3ljbGUgaG9vayB0aGF0IGlzIGNhbGxlZCB3aGVuIGFueSBkYXRhLWJvdW5kIHByb3BlcnR5IGNoYW5nZXMuXG4gKiBAcGFyYW0ge1NpbXBsZUNoYW5nZXN9IGNoYW5nZXMgLSBPYmplY3Qgb2YgY3VycmVudCBhbmQgcHJldmlvdXMgcHJvcGVydHkgdmFsdWVzLlxuICogQG1ldGhvZCBoYW5kbGVDb25maXJtRXhpdCAtIEhhbmRsZXMgdGhlIGV4aXQgY29uZmlybWF0aW9uIGV2ZW50LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY29uZmlybS1leGl0LW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbmZpcm0tZXhpdC1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbmZpcm0tZXhpdC1tb2RhbC5jb21wb25lbnQuY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBGb250QXdlc29tZU1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIENvbmZpcm1FeGl0TW9kYWwgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGlzQ29uZmlybUV4aXRNb2RhbFZpc2libGUgPSBmYWxzZTtcbiAgQElucHV0KCkgb25Db25maXJtRXhpdENsb3NlITogKCkgPT4gdm9pZDtcbiAgQElucHV0KCkgcG9zaXRpb24gPSAndG9wUmlnaHQnO1xuICBASW5wdXQoKSBiYWNrZ3JvdW5kQ29sb3IgPSAnIzgzYzBlOSc7XG4gIEBJbnB1dCgpIGV4aXRFdmVudE9uQ29uZmlybSE6IChvcHRpb25zOiBDb25maXJtRXhpdE9wdGlvbnMpID0+IHZvaWQ7XG4gIEBJbnB1dCgpIG1lbWJlciA9ICcnO1xuICBASW5wdXQoKSBiYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcm9vbU5hbWUgPSAnJztcbiAgQElucHV0KCkgc29ja2V0OiBTb2NrZXQgPSB7fSBhcyBTb2NrZXQ7XG4gIEBJbnB1dCgpIGlzbGV2ZWwgPSAnJztcblxuICBmYVRpbWVzID0gZmFUaW1lcztcblxuICBtb2RhbENvbnRlbnRTdHlsZTogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlybUV4aXRTZXJ2aWNlOiBDb25maXJtRXhpdCkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBzY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgIGxldCBtb2RhbFdpZHRoID0gMC44ICogc2NyZWVuV2lkdGg7XG4gICAgaWYgKG1vZGFsV2lkdGggPiAzNTApIHtcbiAgICAgIG1vZGFsV2lkdGggPSAzNTA7XG4gICAgfVxuXG4gICAgdGhpcy5tb2RhbENvbnRlbnRTdHlsZSA9IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5iYWNrZ3JvdW5kQ29sb3IsXG4gICAgICB0b3A6IHRoaXMucG9zaXRpb24uaW5jbHVkZXMoJ3RvcCcpID8gJzEwcHgnIDogJ2F1dG8nLFxuICAgICAgYm90dG9tOiB0aGlzLnBvc2l0aW9uLmluY2x1ZGVzKCdib3R0b20nKSA/ICcxMHB4JyA6ICdhdXRvJyxcbiAgICAgIGxlZnQ6IHRoaXMucG9zaXRpb24uaW5jbHVkZXMoJ0xlZnQnKSA/ICcxMHB4JyA6ICdhdXRvJyxcbiAgICAgIHJpZ2h0OiB0aGlzLnBvc2l0aW9uLmluY2x1ZGVzKCdSaWdodCcpID8gJzEwcHgnIDogJ2F1dG8nLFxuICAgICAgd2lkdGg6IGAke21vZGFsV2lkdGh9cHhgLFxuICAgIH07XG5cbiAgICBpZiAoIXRoaXMuZXhpdEV2ZW50T25Db25maXJtKSB7XG4gICAgICB0aGlzLmV4aXRFdmVudE9uQ29uZmlybSA9IHRoaXMuY29uZmlybUV4aXRTZXJ2aWNlLmNvbmZpcm1FeGl0LmJpbmQodGhpcy5jb25maXJtRXhpdFNlcnZpY2UpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snaXNDb25maXJtRXhpdE1vZGFsVmlzaWJsZSddICYmIGNoYW5nZXNbJ2lzbGV2ZWwnXSkge1xuICAgICAgdGhpcy5pc2xldmVsID0gY2hhbmdlc1snaXNsZXZlbCddLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVDb25maXJtRXhpdCgpIHtcbiAgICB0aGlzLmV4aXRFdmVudE9uQ29uZmlybSh7XG4gICAgICBzb2NrZXQ6IHRoaXMuc29ja2V0LFxuICAgICAgbWVtYmVyOiB0aGlzLm1lbWJlcixcbiAgICAgIHJvb21OYW1lOiB0aGlzLnJvb21OYW1lLFxuICAgICAgYmFuOiB0aGlzLmJhbixcbiAgICB9KTtcbiAgICB0aGlzLm9uQ29uZmlybUV4aXRDbG9zZSgpO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiaXNDb25maXJtRXhpdE1vZGFsVmlzaWJsZVwiIGNsYXNzPVwibW9kYWwtY29udGFpbmVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIiBbbmdTdHlsZV09XCJtb2RhbENvbnRlbnRTdHlsZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1wiPlxyXG4gICAgICA8aDIgY2xhc3M9XCJtb2RhbC10aXRsZVwiPkNvbmZpcm0gRXhpdDwvaDI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiY2xvc2UtaWNvblwiIChjbGljayk9XCJvbkNvbmZpcm1FeGl0Q2xvc2UoKVwiPlxyXG4gICAgICAgIDxmYS1pY29uIFtpY29uXT1cImZhVGltZXNcIiBzaXplPVwibGdcIj48L2ZhLWljb24+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGhyIC8+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxyXG4gICAgICA8cCBjbGFzcz1cImNvbmZpcm0tZXhpdC10ZXh0XCI+XHJcbiAgICAgICAge3sgaXNsZXZlbCA9PT0gJzInID8gJ1RoaXMgd2lsbCBlbmQgdGhlIGV2ZW50IGZvciBhbGwuIENvbmZpcm0gZXhpdC4nIDogJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBleGl0PycgfX1cclxuICAgICAgPC9wPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8aHIgLz5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImNhbmNlbC1idXR0b25cIiAoY2xpY2spPVwib25Db25maXJtRXhpdENsb3NlKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvbmZpcm0tYnV0dG9uXCIgKGNsaWNrKT1cImhhbmRsZUNvbmZpcm1FeGl0KClcIj5cclxuICAgICAgICB7eyBpc2xldmVsID09PSAnMicgPyAnRW5kIEV2ZW50JyA6ICdFeGl0JyB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1leGl0LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2V4aXQtY29tcG9uZW50cy9jb25maXJtLWV4aXQtbW9kYWwvY29uZmlybS1leGl0LW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2V4aXQtY29tcG9uZW50cy9jb25maXJtLWV4aXQtbW9kYWwvY29uZmlybS1leGl0LW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7QUFzQnJFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Q0c7QUFTSCxNQUFNLE9BQU8sZ0JBQWdCO0lBZ0JQO0lBZlgseUJBQXlCLEdBQUcsS0FBSyxDQUFDO0lBQ2xDLGtCQUFrQixDQUFjO0lBQ2hDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDdEIsZUFBZSxHQUFHLFNBQVMsQ0FBQztJQUM1QixrQkFBa0IsQ0FBeUM7SUFDM0QsTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNaLEdBQUcsR0FBRyxLQUFLLENBQUM7SUFDWixRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ2QsTUFBTSxHQUFXLEVB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IFNpbXBsZUNoYW5nZXMsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZmFUaW1lcyB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBGb250QXdlc29tZU1vZHVsZSB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcbmltcG9ydCB7XG4gIENvbmZpcm1FeGl0LFxuICBDb25maXJtRXhpdE9wdGlvbnMsXG59IGZyb20gJy4uLy4uLy4uL21ldGhvZHMvZXhpdC1tZXRob2RzL2NvbmZpcm0tZXhpdC5zZXJ2aWNlJztcbmltcG9ydCB7IFNvY2tldCB9IGZyb20gJ3NvY2tldC5pby1jbGllbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpcm1FeGl0TW9kYWxPcHRpb25zIHtcbiAgaXNDb25maXJtRXhpdE1vZGFsVmlzaWJsZTogYm9vbGVhbjtcbiAgb25Db25maXJtRXhpdENsb3NlOiAoKSA9PiB2b2lkO1xuICBwb3NpdGlvbj86ICd0b3BSaWdodCcgfCAndG9wTGVmdCcgfCAnYm90dG9tUmlnaHQnIHwgJ2JvdHRvbUxlZnQnO1xuICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gIGV4aXRFdmVudE9uQ29uZmlybT86IChvcHRpb25zOiBDb25maXJtRXhpdE9wdGlvbnMpID0+IHZvaWQ7XG4gIG1lbWJlcjogc3RyaW5nO1xuICBiYW4/OiBib29sZWFuO1xuICByb29tTmFtZTogc3RyaW5nO1xuICBzb2NrZXQ6IFNvY2tldDtcbiAgaXNsZXZlbDogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBDb25maXJtRXhpdE1vZGFsVHlwZSA9IChvcHRpb25zOiBDb25maXJtRXhpdE1vZGFsT3B0aW9ucykgPT4gSFRNTEVsZW1lbnQ7XG5cbi8qKlxuICogQ29uZmlybUV4aXRNb2RhbCBjb21wb25lbnQgcmVuZGVycyBhIG1vZGFsIHZpZXcgZm9yIGV4aXQgY29uZmlybWF0aW9uLFxuICogYWxsb3dpbmcgdXNlcnMgdG8gY29uZmlybSBvciBjYW5jZWwgYW4gZXhpdCBldmVudCBmcm9tIGEgc2Vzc2lvbiBvciByb29tLlxuICpcbiAqIEBjb21wb25lbnRcbiAqIEBzZWxlY3RvciBhcHAtY29uZmlybS1leGl0LW1vZGFsXG4gKiBAc3RhbmRhbG9uZSB0cnVlXG4gKiBAaW1wb3J0cyBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgRm9udEF3ZXNvbWVNb2R1bGVdXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxhcHAtY29uZmlybS1leGl0LW1vZGFsXG4gKiAgIFtpc0NvbmZpcm1FeGl0TW9kYWxWaXNpYmxlXT1cInRydWVcIlxuICogICBbb25Db25maXJtRXhpdENsb3NlXT1cImNsb3NlTW9kYWxcIlxuICogICBbZXhpdEV2ZW50T25Db25maXJtXT1cImNvbmZpcm1FeGl0XCJcbiAqICAgW21lbWJlcl09XCJtZW1iZXJOYW1lXCJcbiAqICAgW2Jhbl09XCJmYWxzZVwiXG4gKiAgIFtyb29tTmFtZV09XCJjdXJyZW50Um9vbVwiXG4gKiAgIFtzb2NrZXRdPVwic29ja2V0SW5zdGFuY2VcIlxuICogICBbaXNsZXZlbF09XCJ1c2VyTGV2ZWxcIj5cbiAqIDwvYXBwLWNvbmZpcm0tZXhpdC1tb2RhbD5cbiAqIGBgYFxuICpcbiAqIEBpbnB1dCB7Ym9vbGVhbn0gaXNDb25maXJtRXhpdE1vZGFsVmlzaWJsZSAtIERldGVybWluZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIG1vZGFsLlxuICogQGlucHV0IHsoKSA9PiB2b2lkfSBvbkNvbmZpcm1FeGl0Q2xvc2UgLSBDYWxsYmFjayB0byBjbG9zZSB0aGUgbW9kYWwuXG4gKiBAaW5wdXQge3N0cmluZ30gcG9zaXRpb24gLSBQb3NpdGlvbiBvbiB0aGUgc2NyZWVuIChkZWZhdWx0OiAndG9wUmlnaHQnKS5cbiAqIEBpbnB1dCB7c3RyaW5nfSBiYWNrZ3JvdW5kQ29sb3IgLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBtb2RhbCAoZGVmYXVsdDogJyM4M2MwZTknKS5cbiAqIEBpbnB1dCB7KG9wdGlvbnM6IENvbmZpcm1FeGl0T3B0aW9ucykgPT4gdm9pZH0gZXhpdEV2ZW50T25Db25maXJtIC0gQ2FsbGJhY2sgZnVuY3Rpb24gdG8gaGFuZGxlIGV4aXQgY29uZmlybWF0aW9uLlxuICogQGlucHV0IHtzdHJpbmd9IG1lbWJlciAtIElkZW50aWZpZXMgdGhlIG1lbWJlciBmb3Igd2hvbSB0aGUgZXhpdCBpcyBjb25maXJtZWQuXG4gKiBAaW5wdXQge2Jvb2xlYW59IGJhbiAtIEluZGljYXRlcyBpZiB0aGUgZXhpdCBhY3Rpb24gaW5jbHVkZXMgYSBiYW4uXG4gKiBAaW5wdXQge3N0cmluZ30gcm9vbU5hbWUgLSBOYW1lIG9mIHRoZSByb29tIGludm9sdmVkIGluIHRoZSBleGl0IGFjdGlvbi5cbiAqIEBpbnB1dCB7U29ja2V0fSBzb2NrZXQgLSBTb2NrZXQgaW5zdGFuY2UgZm9yIHJlYWwtdGltZSBpbnRlcmFjdGlvbi5cbiAqIEBpbnB1dCB7c3RyaW5nfSBpc2xldmVsIC0gVXNlciBsZXZlbCBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAcHJvcGVydHkge0ljb25EZWZpbml0aW9ufSBmYVRpbWVzIC0gRm9udEF3ZXNvbWUgaWNvbiBmb3IgdGhlIGNsb3NlIGJ1dHRvbi5cbiAqIEBwcm9wZXJ0eSB7YW55fSBtb2RhbENvbnRlbnRTdHlsZSAtIE9iamVjdCBkZWZpbmluZyB0aGUgc3R5bGUgZm9yIG1vZGFsIGNvbnRlbnQuXG4gKlxuICogQGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge0NvbmZpcm1FeGl0fSBjb25maXJtRXhpdFNlcnZpY2UgLSBTZXJ2aWNlIHRvIGhhbmRsZSB0aGUgZXhpdCBjb25maXJtYXRpb24uXG4gKlxuICogQG1ldGhvZCBuZ09uSW5pdCAtIEluaXRpYWxpemVzIGNvbXBvbmVudCBwcm9wZXJ0aWVzIGFuZCBkZWZhdWx0IHN0eWxlcyBmb3IgdGhlIG1vZGFsIGNvbnRlbnQuXG4gKiBAbWV0aG9kIG5nT25DaGFuZ2VzIC0gVXBkYXRlcyBjb21wb25lbnQgc3RhdGUgdXBvbiBjaGFuZ2VzIGluIGlucHV0IHByb3BlcnRpZXMuXG4gKiBAcGFyYW0ge1NpbXBsZUNoYW5nZXN9IGNoYW5nZXMgLSBPYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBhbmQgcHJldmlvdXMgcHJvcGVydHkgdmFsdWVzLlxuICpcbiAqIEBtZXRob2QgaGFuZGxlQ29uZmlybUV4aXQgLSBIYW5kbGVzIHRoZSBleGl0IGNvbmZpcm1hdGlvbiBldmVudCwgdHJpZ2dlcmluZyB0aGUgcHJvdmlkZWQgYGV4aXRFdmVudE9uQ29uZmlybWAgZnVuY3Rpb24gYW5kIHRoZW4gY2xvc2luZyB0aGUgbW9kYWwuXG4gKi9cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvbmZpcm0tZXhpdC1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25maXJtLWV4aXQtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb25maXJtLWV4aXQtbW9kYWwuY29tcG9uZW50LmNzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgRm9udEF3ZXNvbWVNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBDb25maXJtRXhpdE1vZGFsIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBpc0NvbmZpcm1FeGl0TW9kYWxWaXNpYmxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIG9uQ29uZmlybUV4aXRDbG9zZSE6ICgpID0+IHZvaWQ7XG4gIEBJbnB1dCgpIHBvc2l0aW9uID0gJ3RvcFJpZ2h0JztcbiAgQElucHV0KCkgYmFja2dyb3VuZENvbG9yID0gJyM4M2MwZTknO1xuICBASW5wdXQoKSBleGl0RXZlbnRPbkNvbmZpcm0hOiAob3B0aW9uczogQ29uZmlybUV4aXRPcHRpb25zKSA9PiB2b2lkO1xuICBASW5wdXQoKSBtZW1iZXIgPSAnJztcbiAgQElucHV0KCkgYmFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJvb21OYW1lID0gJyc7XG4gIEBJbnB1dCgpIHNvY2tldDogU29ja2V0ID0ge30gYXMgU29ja2V0O1xuICBASW5wdXQoKSBpc2xldmVsID0gJyc7XG5cbiAgZmFUaW1lcyA9IGZhVGltZXM7XG5cbiAgbW9kYWxDb250ZW50U3R5bGU6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpcm1FeGl0U2VydmljZTogQ29uZmlybUV4aXQpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3Qgc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICBsZXQgbW9kYWxXaWR0aCA9IDAuOCAqIHNjcmVlbldpZHRoO1xuICAgIGlmIChtb2RhbFdpZHRoID4gMzUwKSB7XG4gICAgICBtb2RhbFdpZHRoID0gMzUwO1xuICAgIH1cblxuICAgIHRoaXMubW9kYWxDb250ZW50U3R5bGUgPSB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMuYmFja2dyb3VuZENvbG9yLFxuICAgICAgdG9wOiB0aGlzLnBvc2l0aW9uLmluY2x1ZGVzKCd0b3AnKSA/ICcxMHB4JyA6ICdhdXRvJyxcbiAgICAgIGJvdHRvbTogdGhpcy5wb3NpdGlvbi5pbmNsdWRlcygnYm90dG9tJykgPyAnMTBweCcgOiAnYXV0bycsXG4gICAgICBsZWZ0OiB0aGlzLnBvc2l0aW9uLmluY2x1ZGVzKCdMZWZ0JykgPyAnMTBweCcgOiAnYXV0bycsXG4gICAgICByaWdodDogdGhpcy5wb3NpdGlvbi5pbmNsdWRlcygnUmlnaHQnKSA/ICcxMHB4JyA6ICdhdXRvJyxcbiAgICAgIHdpZHRoOiBgJHttb2RhbFdpZHRofXB4YCxcbiAgICB9O1xuXG4gICAgaWYgKCF0aGlzLmV4aXRFdmVudE9uQ29uZmlybSkge1xuICAgICAgdGhpcy5leGl0RXZlbnRPbkNvbmZpcm0gPSB0aGlzLmNvbmZpcm1FeGl0U2VydmljZS5jb25maXJtRXhpdC5iaW5kKHRoaXMuY29uZmlybUV4aXRTZXJ2aWNlKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ2lzQ29uZmlybUV4aXRNb2RhbFZpc2libGUnXSAmJiBjaGFuZ2VzWydpc2xldmVsJ10pIHtcbiAgICAgIHRoaXMuaXNsZXZlbCA9IGNoYW5nZXNbJ2lzbGV2ZWwnXS5jdXJyZW50VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQ29uZmlybUV4aXQoKSB7XG4gICAgdGhpcy5leGl0RXZlbnRPbkNvbmZpcm0oe1xuICAgICAgc29ja2V0OiB0aGlzLnNvY2tldCxcbiAgICAgIG1lbWJlcjogdGhpcy5tZW1iZXIsXG4gICAgICByb29tTmFtZTogdGhpcy5yb29tTmFtZSxcbiAgICAgIGJhbjogdGhpcy5iYW4sXG4gICAgfSk7XG4gICAgdGhpcy5vbkNvbmZpcm1FeGl0Q2xvc2UoKTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImlzQ29uZmlybUV4aXRNb2RhbFZpc2libGVcIiBjbGFzcz1cIm1vZGFsLWNvbnRhaW5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCIgW25nU3R5bGVdPVwibW9kYWxDb250ZW50U3R5bGVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcIj5cclxuICAgICAgPGgyIGNsYXNzPVwibW9kYWwtdGl0bGVcIj5Db25maXJtIEV4aXQ8L2gyPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImNsb3NlLWljb25cIiAoY2xpY2spPVwib25Db25maXJtRXhpdENsb3NlKClcIj5cclxuICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJmYVRpbWVzXCIgc2l6ZT1cImxnXCI+PC9mYS1pY29uPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxociAvPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cclxuICAgICAgPHAgY2xhc3M9XCJjb25maXJtLWV4aXQtdGV4dFwiPlxyXG4gICAgICAgIHt7IGlzbGV2ZWwgPT09ICcyJyA/ICdUaGlzIHdpbGwgZW5kIHRoZSBldmVudCBmb3IgYWxsLiBDb25maXJtIGV4aXQuJyA6ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZXhpdD8nIH19XHJcbiAgICAgIDwvcD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGhyIC8+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XHJcbiAgICAgIDxidXR0b24gY2xhc3M9XCJjYW5jZWwtYnV0dG9uXCIgKGNsaWNrKT1cIm9uQ29uZmlybUV4aXRDbG9zZSgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gY2xhc3M9XCJjb25maXJtLWJ1dHRvblwiIChjbGljayk9XCJoYW5kbGVDb25maXJtRXhpdCgpXCI+XHJcbiAgICAgICAge3sgaXNsZXZlbCA9PT0gJzInID8gJ0VuZCBFdmVudCcgOiAnRXhpdCcgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -11,25 +11,36 @@ import * as i4 from "@angular/common";
|
|
|
11
11
|
import * as i5 from "@fortawesome/angular-fontawesome";
|
|
12
12
|
import * as i6 from "@angular/forms";
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
14
|
+
* MediaSettingsModal component renders a modal interface for managing media settings.
|
|
15
|
+
* Users can switch between different audio and video input devices and adjust other settings.
|
|
15
16
|
*
|
|
17
|
+
* @component
|
|
16
18
|
* @selector app-media-settings-modal
|
|
17
|
-
* @templateUrl ./media-settings-modal.component.html
|
|
18
|
-
* @styleUrls ./media-settings-modal.component.css
|
|
19
19
|
* @standalone true
|
|
20
20
|
* @imports [CommonModule, FontAwesomeModule, FormsModule]
|
|
21
21
|
*
|
|
22
|
-
* @
|
|
23
|
-
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```html
|
|
24
|
+
* <app-media-settings-modal
|
|
25
|
+
* [isMediaSettingsModalVisible]="true"
|
|
26
|
+
* [onMediaSettingsClose]="closeModal"
|
|
27
|
+
* [switchCameraOnPress]="handleCameraSwitch"
|
|
28
|
+
* [switchVideoOnPress]="handleVideoSwitch"
|
|
29
|
+
* [switchAudioOnPress]="handleAudioSwitch"
|
|
30
|
+
* [parameters]="mediaSettingsParams"
|
|
31
|
+
* position="topRight"
|
|
32
|
+
* backgroundColor="#83c0e9">
|
|
33
|
+
* </app-media-settings-modal>
|
|
34
|
+
* ```
|
|
24
35
|
*
|
|
25
|
-
* @
|
|
26
|
-
* @
|
|
27
|
-
* @
|
|
28
|
-
* @
|
|
29
|
-
* @
|
|
30
|
-
* @
|
|
31
|
-
* @
|
|
32
|
-
* @
|
|
36
|
+
* @input {boolean} isMediaSettingsModalVisible - Indicates whether the modal is visible.
|
|
37
|
+
* @input {() => void} onMediaSettingsClose - Function to close the modal.
|
|
38
|
+
* @input {(params: SwitchVideoAltOptions) => Promise<void>} switchCameraOnPress - Function to handle camera switching.
|
|
39
|
+
* @input {(params: SwitchVideoOptions) => Promise<void>} switchVideoOnPress - Function to handle video switching.
|
|
40
|
+
* @input {(params: SwitchAudioOptions) => Promise<void>} switchAudioOnPress - Function to handle audio switching.
|
|
41
|
+
* @input {MediaSettingsModalParameters} parameters - Parameters for the modal.
|
|
42
|
+
* @input {string} position - Position of the modal on the screen (default: 'topRight').
|
|
43
|
+
* @input {string} backgroundColor - Background color of the modal (default: '#83c0e9').
|
|
33
44
|
*
|
|
34
45
|
* @property {IconDefinition} faTimes - FontAwesome icon for closing the modal.
|
|
35
46
|
* @property {IconDefinition} faSyncAlt - FontAwesome icon for sync.
|
|
@@ -47,18 +58,18 @@ import * as i6 from "@angular/forms";
|
|
|
47
58
|
* @param {SwitchVideo} switchVideoService - Service for switching video.
|
|
48
59
|
* @param {SwitchVideoAlt} switchVideoAltService - Alternative service for switching video.
|
|
49
60
|
*
|
|
50
|
-
* @method ngOnInit -
|
|
51
|
-
* @method ngOnChanges -
|
|
52
|
-
* @method setupDefaultServices -
|
|
53
|
-
* @method updateParameters - Updates the parameters
|
|
54
|
-
* @method ensureDefaultSelections - Ensures
|
|
55
|
-
* @method initializeModalSettings - Initializes
|
|
61
|
+
* @method ngOnInit - Initializes the component and sets up default selections and services.
|
|
62
|
+
* @method ngOnChanges - Updates component state based on input changes.
|
|
63
|
+
* @method setupDefaultServices - Configures default services for switching camera, video, and audio.
|
|
64
|
+
* @method updateParameters - Updates the modal parameters.
|
|
65
|
+
* @method ensureDefaultSelections - Ensures default selections for video and audio inputs.
|
|
66
|
+
* @method initializeModalSettings - Initializes the modal settings.
|
|
56
67
|
* @method modalContentStyle - Returns the style object for the modal content.
|
|
57
|
-
* @method handleSwitchCamera -
|
|
58
|
-
* @method handleVideoSwitch -
|
|
59
|
-
* @method handleAudioSwitch -
|
|
60
|
-
* @method handleModalClose -
|
|
61
|
-
* @method showVirtual - Toggles the
|
|
68
|
+
* @method handleSwitchCamera - Initiates camera switching.
|
|
69
|
+
* @method handleVideoSwitch - Initiates video input switching.
|
|
70
|
+
* @method handleAudioSwitch - Initiates audio input switching.
|
|
71
|
+
* @method handleModalClose - Closes the modal.
|
|
72
|
+
* @method showVirtual - Toggles the virtual background modal.
|
|
62
73
|
*/
|
|
63
74
|
export class MediaSettingsModal {
|
|
64
75
|
switchAudioService;
|
|
@@ -206,4 +217,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
206
217
|
}], backgroundColor: [{
|
|
207
218
|
type: Input
|
|
208
219
|
}] } });
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtc2V0dGluZ3MtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvbWVkaWEtc2V0dGluZ3MtY29tcG9uZW50cy9tZWRpYS1zZXR0aW5ncy1tb2RhbC9tZWRpYS1zZXR0aW5ncy1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9tZWRpYS1zZXR0aW5ncy1jb21wb25lbnRzL21lZGlhLXNldHRpbmdzLW1vZGFsL21lZGlhLXNldHRpbmdzLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQ0wsT0FBTyxFQUNQLFNBQVMsRUFDVCxRQUFRLEVBQ1IsWUFBWSxFQUNaLFdBQVcsR0FDWixNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBNkM3Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlERztBQVFILE1BQU0sT0FBTyxrQkFBa0I7SUFzQm5CO0lBQ0E7SUFDQTtJQXZCRCwyQkFBMkIsR0FBRyxLQUFLLENBQUM7SUFDcEMsb0JBQW9CLENBQWM7SUFDbEMsbUJBQW1CLENBQWtDO0lBQ3JELGtCQUFrQixDQUFrQztJQUNwRCxrQkFBa0IsQ0FBa0M7SUFDcEQsVUFBVSxDQUFnQztJ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QUN4RCxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7WUFDdEQsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUN6RixDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLDhCQUE4QixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQzVGLENBQUM7dUdBNUlVLGtCQUFrQjsyRkFBbEIsa0JBQWtCLG1iQ2hIL0IscytEQTZDQSw4bENEaUVZLFlBQVksb1ZBQUUsaUJBQWlCLDRQQUFFLFdBQVc7OzJGQUUzQyxrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0UsMEJBQTBCLGNBR3hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxXQUFXLENBQUM7dUlBRzlDLDJCQUEyQjtzQkFBbkMsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgZmFUaW1lcyxcbiAgZmFTeW5jQWx0LFxuICBmYUNhbWVyYSxcbiAgZmFNaWNyb3Bob25lLFxuICBmYVBob3RvRmlsbSxcbn0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb250QXdlc29tZU1vZHVsZSB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgU3dpdGNoQXVkaW8sXG4gIFN3aXRjaEF1ZGlvT3B0aW9ucyxcbiAgU3dpdGNoQXVkaW9QYXJhbWV0ZXJzLFxufSBmcm9tICcuLi8uLi8uLi9tZXRob2RzL3N0cmVhbS1tZXRob2RzL3N3aXRjaC1hdWRpby5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIFN3aXRjaFZpZGVvLFxuICBTd2l0Y2hWaWRlb09wdGlvbnMsXG4gIFN3aXRjaFZpZGVvUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vLi4vLi4vbWV0aG9kcy9zdHJlYW0tbWV0aG9kcy9zd2l0Y2gtdmlkZW8uc2VydmljZSc7XG5pbXBvcnQge1xuICBTd2l0Y2hWaWRlb0FsdCxcbiAgU3dpdGNoVmlkZW9BbHRPcHRpb25zLFxuICBTd2l0Y2hWaWRlb0FsdFBhcmFtZXRlcnMsXG59IGZyb20gJy4uLy4uLy4uL21ldGhvZHMvc3RyZWFtLW1ldGhvZHMvc3dpdGNoLXZpZGVvLWFsdC5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBNZWRpYVNldHRpbmdzTW9kYWxQYXJhbWV0ZXJzXG4gIGV4dGVuZHMgU3dpdGNoQXVkaW9QYXJhbWV0ZXJzLFxuICAgIFN3aXRjaFZpZGVvUGFyYW1ldGVycyxcbiAgICBTd2l0Y2hWaWRlb0FsdFBhcmFtZXRlcnMge1xuICB1c2VyRGVmYXVsdFZpZGVvSW5wdXREZXZpY2U6IHN0cmluZztcbiAgdmlkZW9JbnB1dHM6IE1lZGlhRGV2aWNlSW5mb1tdO1xuICBhdWRpb0lucHV0czogTWVkaWFEZXZpY2VJbmZvW107XG4gIHVzZXJEZWZhdWx0QXVkaW9JbnB1dERldmljZTogc3RyaW5nO1xuICBpc0JhY2tncm91bmRNb2RhbFZpc2libGU6IGJvb2xlYW47XG4gIHVwZGF0ZUlzQmFja2dyb3VuZE1vZGFsVmlzaWJsZTogKHZpc2libGU6IGJvb2xlYW4pID0+IHZvaWQ7XG5cbiAgLy8gbWVkaWFzZnUgZnVuY3Rpb25zXG4gIGdldFVwZGF0ZWRBbGxQYXJhbXM6ICgpID0+IE1lZGlhU2V0dGluZ3NNb2RhbFBhcmFtZXRlcnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVkaWFTZXR0aW5nc01vZGFsT3B0aW9ucyB7XG4gIGlzTWVkaWFTZXR0aW5nc01vZGFsVmlzaWJsZTogYm9vbGVhbjtcbiAgb25NZWRpYVNldHRpbmdzQ2xvc2U6ICgpID0+IHZvaWQ7XG4gIHN3aXRjaENhbWVyYU9uUHJlc3M/OiAob3B0aW9uczogU3dpdGNoVmlkZW9BbHRPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBzd2l0Y2hWaWRlb09uUHJlc3M/OiAob3B0aW9uczogU3dpdGNoVmlkZW9PcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBzd2l0Y2hBdWRpb09uUHJlc3M/OiAob3B0aW9uczogU3dpdGNoQXVkaW9PcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBwYXJhbWV0ZXJzOiBNZWRpYVNldHRpbmdzTW9kYWxQYXJhbWV0ZXJzO1xuICBwb3NpdGlvbjogc3RyaW5nO1xuICBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgTWVkaWFTZXR0aW5nc01vZGFsVHlwZSA9IChvcHRpb25zOiBNZWRpYVNldHRpbmdzTW9kYWxPcHRpb25zKSA9PiBIVE1MRWxlbWVudDtcblxuLyoqXG4gKiBDb21wb25lbnQgZm9yIGRpc3BsYXlpbmcgYW5kIG1hbmFnaW5nIG1lZGlhIHNldHRpbmdzIGluIGEgbW9kYWwuXG4gKlxuICogQHNlbGVjdG9yIGFwcC1tZWRpYS1zZXR0aW5ncy1tb2RhbFxuICogQHRlbXBsYXRlVXJsIC4vbWVkaWEtc2V0dGluZ3MtbW9kYWwuY29tcG9uZW50Lmh0bWxcbiAqIEBzdHlsZVVybHMgLi9tZWRpYS1zZXR0aW5ncy1tb2RhbC5jb21wb25lbnQuY3NzXG4gKiBAc3RhbmRhbG9uZSB0cnVlXG4gKiBAaW1wb3J0cyBbQ29tbW9uTW9kdWxlLCBGb250QXdlc29tZU1vZHVsZSwgRm9ybXNNb2R1bGVdXG4gKlxuICogQGNsYXNzIE1lZGlhU2V0dGluZ3NNb2RhbFxuICogQGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXNcbiAqXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzTWVkaWFTZXR0aW5nc01vZGFsVmlzaWJsZSAtIERldGVybWluZXMgaWYgdGhlIG1lZGlhIHNldHRpbmdzIG1vZGFsIGlzIHZpc2libGUuXG4gKiBAcHJvcGVydHkgeygpID0+IHZvaWR9IG9uTWVkaWFTZXR0aW5nc0Nsb3NlIC0gQ2FsbGJhY2sgZnVuY3Rpb24gdG8gY2xvc2UgdGhlIG1lZGlhIHNldHRpbmdzIG1vZGFsLlxuICogQHByb3BlcnR5IHsocGFyYW1zOiBhbnkpID0+IFByb21pc2U8dm9pZD59IHN3aXRjaENhbWVyYU9uUHJlc3MgLSBDYWxsYmFjayBmdW5jdGlvbiB0byBzd2l0Y2ggdGhlIGNhbWVyYS5cbiAqIEBwcm9wZXJ0eSB7KHBhcmFtczogYW55KSA9PiBQcm9taXNlPHZvaWQ+fSBzd2l0Y2hWaWRlb09uUHJlc3MgLSBDYWxsYmFjayBmdW5jdGlvbiB0byBzd2l0Y2ggdGhlIHZpZGVvLlxuICogQHByb3BlcnR5IHsocGFyYW1zOiBhbnkpID0+IFByb21pc2U8dm9pZD59IHN3aXRjaEF1ZGlvT25QcmVzcyAtIENhbGxiYWNrIGZ1bmN0aW9uIHRvIHN3aXRjaCB0aGUgYXVkaW8uXG4gKiBAcHJvcGVydHkge01lZGlhU2V0dGluZ3NNb2RhbFBhcmFtZXRlcnN9IHBhcmFtZXRlcnMgLSBQYXJhbWV0ZXJzIGZvciB0aGUgbWVkaWEgc2V0dGluZ3MgbW9kYWwuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcG9zaXRpb24gLSBQb3NpdGlvbiBvZiB0aGUgbW9kYWwgb24gdGhlIHNjcmVlbi4gRGVmYXVsdCBpcyAndG9wUmlnaHQnLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGJhY2tncm91bmRDb2xvciAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIG1vZGFsLiBEZWZhdWx0IGlzICcjODNjMGU5Jy5cbiAqXG4gKiBAcHJvcGVydHkge0ljb25EZWZpbml0aW9ufSBmYVRpbWVzIC0gRm9udEF3ZXNvbWUgaWNvbiBmb3IgY2xvc2luZyB0aGUgbW9kYWwuXG4gKiBAcHJvcGVydHkge0ljb25EZWZpbml0aW9ufSBmYVN5bmNBbHQgLSBGb250QXdlc29tZSBpY29uIGZvciBzeW5jLlxuICogQHByb3BlcnR5IHtJY29uRGVmaW5pdGlvbn0gZmFDYW1lcmEgLSBGb250QXdlc29tZSBpY29uIGZvciBjYW1lcmEuXG4gKiBAcHJvcGVydHkge0ljb25EZWZpbml0aW9ufSBmYU1pY3JvcGhvbmUgLSBGb250QXdlc29tZSBpY29uIGZvciBtaWNyb3Bob25lLlxuICogQHByb3BlcnR5IHtJY29uRGVmaW5pdGlvbn0gZmFQaG90b0ZpbG0gLSBGb250QXdlc29tZSBpY29uIGZvciBwaG90byBmaWxtLlxuICpcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBzZWxlY3RlZFZpZGVvSW5wdXQgLSBDdXJyZW50bHkgc2VsZWN0ZWQgdmlkZW8gaW5wdXQgZGV2aWNlIElELlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHNlbGVjdGVkQXVkaW9JbnB1dCAtIEN1cnJlbnRseSBzZWxlY3RlZCBhdWRpbyBpbnB1dCBkZXZpY2UgSUQuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcHJldlNlbGVjdGVkVmlkZW9JbnB1dCAtIFByZXZpb3VzbHkgc2VsZWN0ZWQgdmlkZW8gaW5wdXQgZGV2aWNlIElELlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHByZXZTZWxlY3RlZEF1ZGlvSW5wdXQgLSBQcmV2aW91c2x5IHNlbGVjdGVkIGF1ZGlvIGlucHV0IGRldmljZSBJRC5cbiAqXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7U3dpdGNoQXVkaW99IHN3aXRjaEF1ZGlvU2VydmljZSAtIFNlcnZpY2UgZm9yIHN3aXRjaGluZyBhdWRpby5cbiAqIEBwYXJhbSB7U3dpdGNoVmlkZW99IHN3aXRjaFZpZGVvU2VydmljZSAtIFNlcnZpY2UgZm9yIHN3aXRjaGluZyB2aWRlby5cbiAqIEBwYXJhbSB7U3dpdGNoVmlkZW9BbHR9IHN3aXRjaFZpZGVvQWx0U2VydmljZSAtIEFsdGVybmF0aXZlIHNlcnZpY2UgZm9yIHN3aXRjaGluZyB2aWRlby5cbiAqXG4gKiBAbWV0aG9kIG5nT25Jbml0IC0gTGlmZWN5Y2xlIGhvb2sgdGhhdCBpcyBjYWxsZWQgYWZ0ZXIgZGF0YS1ib3VuZCBwcm9wZXJ0aWVzIGFyZSBpbml0aWFsaXplZC5cbiAqIEBtZXRob2QgbmdPbkNoYW5nZXMgLSBMaWZlY3ljbGUgaG9vayB0aGF0IGlzIGNhbGxlZCB3aGVuIGFueSBkYXRhLWJvdW5kIHByb3BlcnR5IGNoYW5nZXMuXG4gKiBAbWV0aG9kIHNldHVwRGVmYXVsdFNlcnZpY2VzIC0gU2V0cyB1cCBkZWZhdWx0IHNlcnZpY2VzIGZvciBzd2l0Y2hpbmcgY2FtZXJhLCB2aWRlbywgYW5kIGF1ZGlvIGlmIG5vdCBwcm92aWRlZC5cbiAqIEBtZXRob2QgdXBkYXRlUGFyYW1ldGVycyAtIFVwZGF0ZXMgdGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBtb2RhbC5cbiAqIEBtZXRob2QgZW5zdXJlRGVmYXVsdFNlbGVjdGlvbnMgLSBFbnN1cmVzIHRoYXQgZGVmYXVsdCBzZWxlY3Rpb25zIGZvciB2aWRlbyBhbmQgYXVkaW8gaW5wdXRzIGFyZSBzZXQuXG4gKiBAbWV0aG9kIGluaXRpYWxpemVNb2RhbFNldHRpbmdzIC0gSW5pdGlhbGl6ZXMgc2V0dGluZ3MgZm9yIHRoZSBtb2RhbC5cbiAqIEBtZXRob2QgbW9kYWxDb250ZW50U3R5bGUgLSBSZXR1cm5zIHRoZSBzdHlsZSBvYmplY3QgZm9yIHRoZSBtb2RhbCBjb250ZW50LlxuICogQG1ldGhvZCBoYW5kbGVTd2l0Y2hDYW1lcmEgLSBIYW5kbGVzIHRoZSBhY3Rpb24gdG8gc3dpdGNoIHRoZSBjYW1lcmEuXG4gKiBAbWV0aG9kIGhhbmRsZVZpZGVvU3dpdGNoIC0gSGFuZGxlcyB0aGUgYWN0aW9uIHRvIHN3aXRjaCB0aGUgdmlkZW8gaW5wdXQuXG4gKiBAbWV0aG9kIGhhbmRsZUF1ZGlvU3dpdGNoIC0gSGFuZGxlcyB0aGUgYWN0aW9uIHRvIHN3aXRjaCB0aGUgYXVkaW8gaW5wdXQuXG4gKiBAbWV0aG9kIGhhbmRsZU1vZGFsQ2xvc2UgLSBIYW5kbGVzIHRoZSBhY3Rpb24gdG8gY2xvc2UgdGhlIG1vZGFsLlxuICogQG1ldGhvZCBzaG93VmlydHVhbCAtIFRvZ2dsZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIHZpcnR1YWwgYmFja2dyb3VuZCBtb2RhbC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW1lZGlhLXNldHRpbmdzLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lZGlhLXNldHRpbmdzLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVkaWEtc2V0dGluZ3MtbW9kYWwuY29tcG9uZW50LmNzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb250QXdlc29tZU1vZHVsZSwgRm9ybXNNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBNZWRpYVNldHRpbmdzTW9kYWwgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGlzTWVkaWFTZXR0aW5nc01vZGFsVmlzaWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBvbk1lZGlhU2V0dGluZ3NDbG9zZSE6ICgpID0+IHZvaWQ7XG4gIEBJbnB1dCgpIHN3aXRjaENhbWVyYU9uUHJlc3MhOiAocGFyYW1zOiBhbnkpID0+IFByb21pc2U8dm9pZD47XG4gIEBJbnB1dCgpIHN3aXRjaFZpZGVvT25QcmVzcyE6IChwYXJhbXM6IGFueSkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgQElucHV0KCkgc3dpdGNoQXVkaW9PblByZXNzITogKHBhcmFtczogYW55KSA9PiBQcm9taXNlPHZvaWQ+O1xuICBASW5wdXQoKSBwYXJhbWV0ZXJzITogTWVkaWFTZXR0aW5nc01vZGFsUGFyYW1ldGVycztcbiAgQElucHV0KCkgcG9zaXRpb24gPSAndG9wUmlnaHQnO1xuICBASW5wdXQoKSBiYWNrZ3JvdW5kQ29sb3IgPSAnIzgzYzBlOSc7XG5cbiAgZmFUaW1lcyA9IGZhVGltZXM7XG4gIGZhU3luY0FsdCA9IGZhU3luY0FsdDtcbiAgZmFDYW1lcmEgPSBmYUNhbWVyYTtcbiAgZmFNaWNyb3Bob25lID0gZmFNaWNyb3Bob25lO1xuICBmYVBob3RvRmlsbSA9IGZhUGhvdG9GaWxtO1xuXG4gIHNlbGVjdGVkVmlkZW9JbnB1dCE6IHN0cmluZztcbiAgc2VsZWN0ZWRBdWRpb0lucHV0ITogc3RyaW5nO1xuICBwcmV2U2VsZWN0ZWRWaWRlb0lucHV0ITogc3RyaW5nO1xuICBwcmV2U2VsZWN0ZWRBdWRpb0lucHV0ITogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3dpdGNoQXVkaW9TZXJ2aWNlOiBTd2l0Y2hBdWRpbyxcbiAgICBwcml2YXRlIHN3aXRjaFZpZGVvU2VydmljZTogU3dpdGNoVmlkZW8sXG4gICAgcHJpdmF0ZSBzd2l0Y2hWaWRlb0FsdFNlcnZpY2U6IFN3aXRjaFZpZGVvQWx0LFxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuaXNNZWRpYVNldHRpbmdzTW9kYWxWaXNpYmxlKSB7XG4gICAgICB0aGlzLnVwZGF0ZVBhcmFtZXRlcnMoKTtcbiAgICAgIHRoaXMuc2V0dXBEZWZhdWx0U2VydmljZXMoKTtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZU1vZGFsU2V0dGluZ3MoKTtcbiAgICAgIHRoaXMuZW5zdXJlRGVmYXVsdFNlbGVjdGlvbnMoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKFxuICAgICAgY2hhbmdlc1snaXNNZWRpYVNldHRpbmdzTW9kYWxWaXNpYmxlJ10gJiZcbiAgICAgIHRoaXMuaXNNZWRpYVNldHRpbmdzTW9kYWxWaXNpYmxlICYmXG4gICAgICB0aGlzLnBhcmFtZXRlcnNcbiAgICApIHtcbiAgICAgIHRoaXMudXBkYXRlUGFyYW1ldGVycygpO1xuICAgICAgdGhpcy5zZXR1cERlZmF1bHRTZXJ2aWNlcygpO1xuICAgICAgdGhpcy5lbnN1cmVEZWZhdWx0U2VsZWN0aW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIHNldHVwRGVmYXVsdFNlcnZpY2VzKCkge1xuICAgIGlmICghdGhpcy5zd2l0Y2hDYW1lcmFPblByZXNzKSB7XG4gICAgICB0aGlzLnN3aXRjaENhbWVyYU9uUHJlc3MgPSAocGFyYW1zOiBhbnkpID0+IHRoaXMuc3dpdGNoVmlkZW9BbHRTZXJ2aWNlLnN3aXRjaFZpZGVvQWx0KHBhcmFtcyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnN3aXRjaFZpZGVvT25QcmVzcykge1xuICAgICAgdGhpcy5zd2l0Y2hWaWRlb09uUHJlc3MgPSAocGFyYW1zOiBhbnkpID0+IHRoaXMuc3dpdGNoVmlkZW9TZXJ2aWNlLnN3aXRjaFZpZGVvKHBhcmFtcyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnN3aXRjaEF1ZGlvT25QcmVzcykge1xuICAgICAgdGhpcy5zd2l0Y2hBdWRpb09uUHJlc3MgPSAocGFyYW1zOiBhbnkpID0+IHRoaXMuc3dpdGNoQXVkaW9TZXJ2aWNlLnN3aXRjaEF1ZGlvKHBhcmFtcyk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlUGFyYW1ldGVycygpIHtcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSB7XG4gICAgICAuLi50aGlzLnBhcmFtZXRlcnMsXG4gICAgICAuLi50aGlzLnBhcmFtZXRlcnMuZ2V0VXBkYXRlZEFsbFBhcmFtcygpLFxuICAgIH07XG4gIH1cblxuICBlbnN1cmVEZWZhdWx0U2VsZWN0aW9ucygpIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRWaWRlb0lucHV0ICYmIHRoaXMucGFyYW1ldGVycy52aWRlb0lucHV0cy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVmlkZW9JbnB1dCA9IHRoaXMucGFyYW1ldGVycy52aWRlb0lucHV0c1swXS5kZXZpY2VJZDtcbiAgICAgIHRoaXMucHJldlNlbGVjdGVkVmlkZW9JbnB1dCA9IHRoaXMuc2VsZWN0ZWRWaWRlb0lucHV0O1xuICAgICAgdGhpcy5oYW5kbGVWaWRlb1N3aXRjaCh7IHRhcmdldDogeyB2YWx1ZTogdGhpcy5zZWxlY3RlZFZpZGVvSW5wdXQgfSB9IGFzIGFueSk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkQXVkaW9JbnB1dCAmJiB0aGlzLnBhcmFtZXRlcnMuYXVkaW9JbnB1dHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zZWxlY3RlZEF1ZGlvSW5wdXQgPSB0aGlzLnBhcmFtZXRlcnMuYXVkaW9JbnB1dHNbMF0uZGV2aWNlSWQ7XG4gICAgICB0aGlzLnByZXZTZWxlY3RlZEF1ZGlvSW5wdXQgPSB0aGlzLnNlbGVjdGVkQXVkaW9JbnB1dDtcbiAgICAgIHRoaXMuaGFuZGxlQXVkaW9Td2l0Y2goeyB0YXJnZXQ6IHsgdmFsdWU6IHRoaXMuc2VsZWN0ZWRBdWRpb0lucHV0IH0gfSBhcyBhbnkpO1xuICAgIH1cbiAgfVxuXG4gIGluaXRpYWxpemVNb2RhbFNldHRpbmdzKCkge1xuICAgIGNvbnN0IHNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgbGV0IG1vZGFsV2lkdGggPSAwLjcgKiBzY3JlZW5XaWR0aDtcbiAgICBpZiAobW9kYWxXaWR0aCA+IDM1MCkge1xuICAgICAgbW9kYWxXaWR0aCA9IDM1MDtcbiAgICB9XG4gIH1cblxuICBtb2RhbENvbnRlbnRTdHlsZSgpIHtcbiAgICBjb25zdCBzY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgIGxldCBtb2RhbFdpZHRoID0gMC44ICogc2NyZWVuV2lkdGg7XG4gICAgaWYgKG1vZGFsV2lkdGggPiAzNTApIHtcbiAgICAgIG1vZGFsV2lkdGggPSAzNTA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5iYWNrZ3JvdW5kQ29sb3IsXG4gICAgICBib3JkZXJSYWRpdXM6ICcxMHB4JyxcbiAgICAgIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgIHdpZHRoOiBgJHttb2RhbFdpZHRofXB4YCxcbiAgICAgIG1heEhlaWdodDogJzY1JScsXG4gICAgICBvdmVyZmxvd1k6ICdhdXRvJyxcbiAgICAgIHRvcDogdGhpcy5wb3NpdGlvbi5pbmNsdWRlcygndG9wJykgPyAnMTBweCcgOiAnYXV0bycsXG4gICAgICBib3R0b206IHRoaXMucG9zaXRpb24uaW5jbHVkZXMoJ2JvdHRvbScpID8gJzEwcHgnIDogJ2F1dG8nLFxuICAgICAgbGVmdDogdGhpcy5wb3NpdGlvbi5pbmNsdWRlcygnTGVmdCcpID8gJzEwcHgnIDogJ2F1dG8nLFxuICAgICAgcmlnaHQ6IHRoaXMucG9zaXRpb24uaW5jbHVkZXMoJ1JpZ2h0JykgPyAnMTBweCcgOiAnYXV0bycsXG4gICAgfTtcbiAgfVxuXG4gIGhhbmRsZVN3aXRjaENhbWVyYSA9IGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCB0aGlzLnN3aXRjaENhbWVyYU9uUHJlc3MoeyBwYXJhbWV0ZXJzOiB0aGlzLnBhcmFtZXRlcnMgfSk7XG4gIH07XG5cbiAgaGFuZGxlVmlkZW9Td2l0Y2ggPSBhc3luYyAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxTZWxlY3RFbGVtZW50KS52YWx1ZTtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMucHJldlNlbGVjdGVkVmlkZW9JbnB1dCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFZpZGVvSW5wdXQgPSB2YWx1ZTtcbiAgICAgIHRoaXMucHJldlNlbGVjdGVkVmlkZW9JbnB1dCA9IHRoaXMuc2VsZWN0ZWRWaWRlb0lucHV0O1xuICAgICAgYXdhaXQgdGhpcy5zd2l0Y2hWaWRlb09uUHJlc3MoeyB2aWRlb1ByZWZlcmVuY2U6IHZhbHVlLCBwYXJhbWV0ZXJzOiB0aGlzLnBhcmFtZXRlcnMgfSk7XG4gICAgfVxuICB9O1xuXG4gIGhhbmRsZUF1ZGlvU3dpdGNoID0gYXN5bmMgKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudCkudmFsdWU7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLnByZXZTZWxlY3RlZEF1ZGlvSW5wdXQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRBdWRpb0lucHV0ID0gdmFsdWU7XG4gICAgICB0aGlzLnByZXZTZWxlY3RlZEF1ZGlvSW5wdXQgPSB0aGlzLnNlbGVjdGVkQXVkaW9JbnB1dDtcbiAgICAgIGF3YWl0IHRoaXMuc3dpdGNoQXVkaW9PblByZXNzKHsgYXVkaW9QcmVmZXJlbmNlOiB2YWx1ZSwgcGFyYW1ldGVyczogdGhpcy5wYXJhbWV0ZXJzIH0pO1xuICAgIH1cbiAgfTtcblxuICBoYW5kbGVNb2RhbENsb3NlKCkge1xuICAgIHRoaXMub25NZWRpYVNldHRpbmdzQ2xvc2UoKTtcbiAgfVxuXG4gIHNob3dWaXJ0dWFsKCkge1xuICAgIHRoaXMucGFyYW1ldGVycy51cGRhdGVJc0JhY2tncm91bmRNb2RhbFZpc2libGUoIXRoaXMucGFyYW1ldGVycy5pc0JhY2tncm91bmRNb2RhbFZpc2libGUpO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiaXNNZWRpYVNldHRpbmdzTW9kYWxWaXNpYmxlXCIgY2xhc3M9XCJtb2RhbC1jb250YWluZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiIFtuZ1N0eWxlXT1cIm1vZGFsQ29udGVudFN0eWxlKClcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+TWVkaWEgU2V0dGluZ3M8L2Rpdj5cclxuICAgICAgPGRpdiAoY2xpY2spPVwiaGFuZGxlTW9kYWxDbG9zZSgpXCI+XHJcbiAgICAgICAgPGZhLWljb24gW2ljb25dPVwiZmFUaW1lc1wiIGNsYXNzPVwiaWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxociBjbGFzcz1cImhyXCIgLz5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiZmFDYW1lcmFcIiBbbmdTdHlsZV09XCJ7J21hcmdpbi1yaWdodCc6ICc4cHgnfVwiPjwvZmEtaWNvbj4gU2VsZWN0IENhbWVyYTpcclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFZpZGVvSW5wdXRcIiAoY2hhbmdlKT1cImhhbmRsZVZpZGVvU3dpdGNoKCRldmVudClcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiPlxyXG4gICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaW5wdXQgb2YgcGFyYW1ldGVycy52aWRlb0lucHV0c1wiIFt2YWx1ZV09XCJpbnB1dC5kZXZpY2VJZFwiPlxyXG4gICAgICAgICAgICB7eyBpbnB1dC5sYWJlbCB9fVxyXG4gICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbD5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cImZhTWljcm9waG9uZVwiIFtuZ1N0eWxlXT1cInsnbWFyZ2luLXJpZ2h0JzogJzhweCd9XCI+PC9mYS1pY29uPiBTZWxlY3QgTWljcm9waG9uZTpcclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEF1ZGlvSW5wdXRcIiAoY2hhbmdlKT1cImhhbmRsZUF1ZGlvU3dpdGNoKCRldmVudClcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiPlxyXG4gICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaW5wdXQgb2YgcGFyYW1ldGVycy5hdWRpb0lucHV0c1wiIFt2YWx1ZV09XCJpbnB1dC5kZXZpY2VJZFwiPlxyXG4gICAgICAgICAgICB7eyBpbnB1dC5sYWJlbCB9fVxyXG4gICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8aHIgY2xhc3M9XCJoclwiIC8+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiaGFuZGxlU3dpdGNoQ2FtZXJhKClcIiBjbGFzcz1cImJ0bi1zd2l0Y2hcIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cImZhU3luY0FsdFwiIFtuZ1N0eWxlXT1cInsnbWFyZ2luLXJpZ2h0JzogJzhweCd9XCI+PC9mYS1pY29uPiBTd2l0Y2ggQ2FtZXJhXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8aHIgY2xhc3M9XCJoclwiIC8+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic2hvd1ZpcnR1YWwoKVwiIGNsYXNzPVwiYnRuLXZpcnR1YWxcIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cImZhUGhvdG9GaWxtXCIgW25nU3R5bGVdPVwieydtYXJnaW4tcmlnaHQnOiAnOHB4J31cIj48L2ZhLWljb24+IFZpcnR1YWwgQmFja2dyb3VuZFxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtc2V0dGluZ3MtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvbWVkaWEtc2V0dGluZ3MtY29tcG9uZW50cy9tZWRpYS1zZXR0aW5ncy1tb2RhbC9tZWRpYS1zZXR0aW5ncy1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9tZWRpYS1zZXR0aW5ncy1jb21wb25lbnRzL21lZGlhLXNldHRpbmdzLW1vZGFsL21lZGlhLXNldHRpbmdzLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQ0wsT0FBTyxFQUNQLFNBQVMsRUFDVCxRQUFRLEVBQ1IsWUFBWSxFQUNaLFdBQVcsR0FDWixNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBNkM3Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNERHO0FBU0gsTUFBTSxPQUFPLGtCQUFrQjtJQXNCbkI7SUFDQTtJQUNBO0lBdkJELDJCQUEyQixHQUFHLEtBQUssQ0FBQztJQUNwQyxvQkFBb0IsQ0FBYztJQUNsQyxtQkFBbUIsQ0FBa0M7SUFDckQsa0JBQWtCLENBQWtDO0lBQ3BELGtCQUFrQixDQUFrQztJQUNwRCxV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S0FBSyxDQUFDO1FBQ3hELElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7WUFDaEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztZQUN0RCxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLENBQUM7SUFDSCxDQUFDLENBQUM7SUFFRixnQkFBZ0I7UUFDZCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsOEJBQThCLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDNUYsQ0FBQzt1R0E1SVUsa0JBQWtCOzJGQUFsQixrQkFBa0IsbWJDNUgvQixzK0RBNkNBLDhsQ0Q2RVksWUFBWSxvVkFBRSxpQkFBaUIsNFBBQUUsV0FBVzs7MkZBRTNDLGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDRSwwQkFBMEIsY0FHeEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsQ0FBQzt1SUFHOUMsMkJBQTJCO3NCQUFuQyxLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBmYVRpbWVzLFxuICBmYVN5bmNBbHQsXG4gIGZhQ2FtZXJhLFxuICBmYU1pY3JvcGhvbmUsXG4gIGZhUGhvdG9GaWxtLFxufSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvbnRBd2Vzb21lTW9kdWxlIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBTd2l0Y2hBdWRpbyxcbiAgU3dpdGNoQXVkaW9PcHRpb25zLFxuICBTd2l0Y2hBdWRpb1BhcmFtZXRlcnMsXG59IGZyb20gJy4uLy4uLy4uL21ldGhvZHMvc3RyZWFtLW1ldGhvZHMvc3dpdGNoLWF1ZGlvLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgU3dpdGNoVmlkZW8sXG4gIFN3aXRjaFZpZGVvT3B0aW9ucyxcbiAgU3dpdGNoVmlkZW9QYXJhbWV0ZXJzLFxufSBmcm9tICcuLi8uLi8uLi9tZXRob2RzL3N0cmVhbS1tZXRob2RzL3N3aXRjaC12aWRlby5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIFN3aXRjaFZpZGVvQWx0LFxuICBTd2l0Y2hWaWRlb0FsdE9wdGlvbnMsXG4gIFN3aXRjaFZpZGVvQWx0UGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vLi4vLi4vbWV0aG9kcy9zdHJlYW0tbWV0aG9kcy9zd2l0Y2gtdmlkZW8tYWx0LnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lZGlhU2V0dGluZ3NNb2RhbFBhcmFtZXRlcnNcbiAgZXh0ZW5kcyBTd2l0Y2hBdWRpb1BhcmFtZXRlcnMsXG4gICAgU3dpdGNoVmlkZW9QYXJhbWV0ZXJzLFxuICAgIFN3aXRjaFZpZGVvQWx0UGFyYW1ldGVycyB7XG4gIHVzZXJEZWZhdWx0VmlkZW9JbnB1dERldmljZTogc3RyaW5nO1xuICB2aWRlb0lucHV0czogTWVkaWFEZXZpY2VJbmZvW107XG4gIGF1ZGlvSW5wdXRzOiBNZWRpYURldmljZUluZm9bXTtcbiAgdXNlckRlZmF1bHRBdWRpb0lucHV0RGV2aWNlOiBzdHJpbmc7XG4gIGlzQmFja2dyb3VuZE1vZGFsVmlzaWJsZTogYm9vbGVhbjtcbiAgdXBkYXRlSXNCYWNrZ3JvdW5kTW9kYWxWaXNpYmxlOiAodmlzaWJsZTogYm9vbGVhbikgPT4gdm9pZDtcblxuICAvLyBtZWRpYXNmdSBmdW5jdGlvbnNcbiAgZ2V0VXBkYXRlZEFsbFBhcmFtczogKCkgPT4gTWVkaWFTZXR0aW5nc01vZGFsUGFyYW1ldGVycztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZWRpYVNldHRpbmdzTW9kYWxPcHRpb25zIHtcbiAgaXNNZWRpYVNldHRpbmdzTW9kYWxWaXNpYmxlOiBib29sZWFuO1xuICBvbk1lZGlhU2V0dGluZ3NDbG9zZTogKCkgPT4gdm9pZDtcbiAgc3dpdGNoQ2FtZXJhT25QcmVzcz86IChvcHRpb25zOiBTd2l0Y2hWaWRlb0FsdE9wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG4gIHN3aXRjaFZpZGVvT25QcmVzcz86IChvcHRpb25zOiBTd2l0Y2hWaWRlb09wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG4gIHN3aXRjaEF1ZGlvT25QcmVzcz86IChvcHRpb25zOiBTd2l0Y2hBdWRpb09wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG4gIHBhcmFtZXRlcnM6IE1lZGlhU2V0dGluZ3NNb2RhbFBhcmFtZXRlcnM7XG4gIHBvc2l0aW9uOiBzdHJpbmc7XG4gIGJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBNZWRpYVNldHRpbmdzTW9kYWxUeXBlID0gKG9wdGlvbnM6IE1lZGlhU2V0dGluZ3NNb2RhbE9wdGlvbnMpID0+IEhUTUxFbGVtZW50O1xuXG4vKipcbiAqIE1lZGlhU2V0dGluZ3NNb2RhbCBjb21wb25lbnQgcmVuZGVycyBhIG1vZGFsIGludGVyZmFjZSBmb3IgbWFuYWdpbmcgbWVkaWEgc2V0dGluZ3MuXG4gKiBVc2VycyBjYW4gc3dpdGNoIGJldHdlZW4gZGlmZmVyZW50IGF1ZGlvIGFuZCB2aWRlbyBpbnB1dCBkZXZpY2VzIGFuZCBhZGp1c3Qgb3RoZXIgc2V0dGluZ3MuXG4gKlxuICogQGNvbXBvbmVudFxuICogQHNlbGVjdG9yIGFwcC1tZWRpYS1zZXR0aW5ncy1tb2RhbFxuICogQHN0YW5kYWxvbmUgdHJ1ZVxuICogQGltcG9ydHMgW0NvbW1vbk1vZHVsZSwgRm9udEF3ZXNvbWVNb2R1bGUsIEZvcm1zTW9kdWxlXVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8YXBwLW1lZGlhLXNldHRpbmdzLW1vZGFsXG4gKiAgIFtpc01lZGlhU2V0dGluZ3NNb2RhbFZpc2libGVdPVwidHJ1ZVwiXG4gKiAgIFtvbk1lZGlhU2V0dGluZ3NDbG9zZV09XCJjbG9zZU1vZGFsXCJcbiAqICAgW3N3aXRjaENhbWVyYU9uUHJlc3NdPVwiaGFuZGxlQ2FtZXJhU3dpdGNoXCJcbiAqICAgW3N3aXRjaFZpZGVvT25QcmVzc109XCJoYW5kbGVWaWRlb1N3aXRjaFwiXG4gKiAgIFtzd2l0Y2hBdWRpb09uUHJlc3NdPVwiaGFuZGxlQXVkaW9Td2l0Y2hcIlxuICogICBbcGFyYW1ldGVyc109XCJtZWRpYVNldHRpbmdzUGFyYW1zXCJcbiAqICAgcG9zaXRpb249XCJ0b3BSaWdodFwiXG4gKiAgIGJhY2tncm91bmRDb2xvcj1cIiM4M2MwZTlcIj5cbiAqIDwvYXBwLW1lZGlhLXNldHRpbmdzLW1vZGFsPlxuICogYGBgXG4gKlxuICogQGlucHV0IHtib29sZWFufSBpc01lZGlhU2V0dGluZ3NNb2RhbFZpc2libGUgLSBJbmRpY2F0ZXMgd2hldGhlciB0aGUgbW9kYWwgaXMgdmlzaWJsZS5cbiAqIEBpbnB1dCB7KCkgPT4gdm9pZH0gb25NZWRpYVNldHRpbmdzQ2xvc2UgLSBGdW5jdGlvbiB0byBjbG9zZSB0aGUgbW9kYWwuXG4gKiBAaW5wdXQgeyhwYXJhbXM6IFN3aXRjaFZpZGVvQWx0T3B0aW9ucykgPT4gUHJvbWlzZTx2b2lkPn0gc3dpdGNoQ2FtZXJhT25QcmVzcyAtIEZ1bmN0aW9uIHRvIGhhbmRsZSBjYW1lcmEgc3dpdGNoaW5nLlxuICogQGlucHV0IHsocGFyYW1zOiBTd2l0Y2hWaWRlb09wdGlvbnMpID0+IFByb21pc2U8dm9pZD59IHN3aXRjaFZpZGVvT25QcmVzcyAtIEZ1bmN0aW9uIHRvIGhhbmRsZSB2aWRlbyBzd2l0Y2hpbmcuXG4gKiBAaW5wdXQgeyhwYXJhbXM6IFN3aXRjaEF1ZGlvT3B0aW9ucykgPT4gUHJvbWlzZTx2b2lkPn0gc3dpdGNoQXVkaW9PblByZXNzIC0gRnVuY3Rpb24gdG8gaGFuZGxlIGF1ZGlvIHN3aXRjaGluZy5cbiAqIEBpbnB1dCB7TWVkaWFTZXR0aW5nc01vZGFsUGFyYW1ldGVyc30gcGFyYW1ldGVycyAtIFBhcmFtZXRlcnMgZm9yIHRoZSBtb2RhbC5cbiAqIEBpbnB1dCB7c3RyaW5nfSBwb3NpdGlvbiAtIFBvc2l0aW9uIG9mIHRoZSBtb2RhbCBvbiB0aGUgc2NyZWVuIChkZWZhdWx0OiAndG9wUmlnaHQnKS5cbiAqIEBpbnB1dCB7c3RyaW5nfSBiYWNrZ3JvdW5kQ29sb3IgLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBtb2RhbCAoZGVmYXVsdDogJyM4M2MwZTknKS5cbiAqXG4gKiBAcHJvcGVydHkge0ljb25EZWZpbml0aW9ufSBmYVRpbWVzIC0gRm9udEF3ZXNvbWUgaWNvbiBmb3IgY2xvc2luZyB0aGUgbW9kYWwuXG4gKiBAcHJvcGVydHkge0ljb25EZWZpbml0aW9ufSBmYVN5bmNBbHQgLSBGb250QXdlc29tZSBpY29uIGZvciBzeW5jLlxuICogQHByb3BlcnR5IHtJY29uRGVmaW5pdGlvbn0gZmFDYW1lcmEgLSBGb250QXdlc29tZSBpY29uIGZvciBjYW1lcmEuXG4gKiBAcHJvcGVydHkge0ljb25EZWZpbml0aW9ufSBmYU1pY3JvcGhvbmUgLSBGb250QXdlc29tZSBpY29uIGZvciBtaWNyb3Bob25lLlxuICogQHByb3BlcnR5IHtJY29uRGVmaW5pdGlvbn0gZmFQaG90b0ZpbG0gLSBGb250QXdlc29tZSBpY29uIGZvciBwaG90byBmaWxtLlxuICpcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBzZWxlY3RlZFZpZGVvSW5wdXQgLSBDdXJyZW50bHkgc2VsZWN0ZWQgdmlkZW8gaW5wdXQgZGV2aWNlIElELlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHNlbGVjdGVkQXVkaW9JbnB1dCAtIEN1cnJlbnRseSBzZWxlY3RlZCBhdWRpbyBpbnB1dCBkZXZpY2UgSUQuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcHJldlNlbGVjdGVkVmlkZW9JbnB1dCAtIFByZXZpb3VzbHkgc2VsZWN0ZWQgdmlkZW8gaW5wdXQgZGV2aWNlIElELlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHByZXZTZWxlY3RlZEF1ZGlvSW5wdXQgLSBQcmV2aW91c2x5IHNlbGVjdGVkIGF1ZGlvIGlucHV0IGRldmljZSBJRC5cbiAqXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7U3dpdGNoQXVkaW99IHN3aXRjaEF1ZGlvU2VydmljZSAtIFNlcnZpY2UgZm9yIHN3aXRjaGluZyBhdWRpby5cbiAqIEBwYXJhbSB7U3dpdGNoVmlkZW99IHN3aXRjaFZpZGVvU2VydmljZSAtIFNlcnZpY2UgZm9yIHN3aXRjaGluZyB2aWRlby5cbiAqIEBwYXJhbSB7U3dpdGNoVmlkZW9BbHR9IHN3aXRjaFZpZGVvQWx0U2VydmljZSAtIEFsdGVybmF0aXZlIHNlcnZpY2UgZm9yIHN3aXRjaGluZyB2aWRlby5cbiAqXG4gKiBAbWV0aG9kIG5nT25Jbml0IC0gSW5pdGlhbGl6ZXMgdGhlIGNvbXBvbmVudCBhbmQgc2V0cyB1cCBkZWZhdWx0IHNlbGVjdGlvbnMgYW5kIHNlcnZpY2VzLlxuICogQG1ldGhvZCBuZ09uQ2hhbmdlcyAtIFVwZGF0ZXMgY29tcG9uZW50IHN0YXRlIGJhc2VkIG9uIGlucHV0IGNoYW5nZXMuXG4gKiBAbWV0aG9kIHNldHVwRGVmYXVsdFNlcnZpY2VzIC0gQ29uZmlndXJlcyBkZWZhdWx0IHNlcnZpY2VzIGZvciBzd2l0Y2hpbmcgY2FtZXJhLCB2aWRlbywgYW5kIGF1ZGlvLlxuICogQG1ldGhvZCB1cGRhdGVQYXJhbWV0ZXJzIC0gVXBkYXRlcyB0aGUgbW9kYWwgcGFyYW1ldGVycy5cbiAqIEBtZXRob2QgZW5zdXJlRGVmYXVsdFNlbGVjdGlvbnMgLSBFbnN1cmVzIGRlZmF1bHQgc2VsZWN0aW9ucyBmb3IgdmlkZW8gYW5kIGF1ZGlvIGlucHV0cy5cbiAqIEBtZXRob2QgaW5pdGlhbGl6ZU1vZGFsU2V0dGluZ3MgLSBJbml0aWFsaXplcyB0aGUgbW9kYWwgc2V0dGluZ3MuXG4gKiBAbWV0aG9kIG1vZGFsQ29udGVudFN0eWxlIC0gUmV0dXJucyB0aGUgc3R5bGUgb2JqZWN0IGZvciB0aGUgbW9kYWwgY29udGVudC5cbiAqIEBtZXRob2QgaGFuZGxlU3dpdGNoQ2FtZXJhIC0gSW5pdGlhdGVzIGNhbWVyYSBzd2l0Y2hpbmcuXG4gKiBAbWV0aG9kIGhhbmRsZVZpZGVvU3dpdGNoIC0gSW5pdGlhdGVzIHZpZGVvIGlucHV0IHN3aXRjaGluZy5cbiAqIEBtZXRob2QgaGFuZGxlQXVkaW9Td2l0Y2ggLSBJbml0aWF0ZXMgYXVkaW8gaW5wdXQgc3dpdGNoaW5nLlxuICogQG1ldGhvZCBoYW5kbGVNb2RhbENsb3NlIC0gQ2xvc2VzIHRoZSBtb2RhbC5cbiAqIEBtZXRob2Qgc2hvd1ZpcnR1YWwgLSBUb2dnbGVzIHRoZSB2aXJ0dWFsIGJhY2tncm91bmQgbW9kYWwuXG4gKi9cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW1lZGlhLXNldHRpbmdzLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lZGlhLXNldHRpbmdzLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVkaWEtc2V0dGluZ3MtbW9kYWwuY29tcG9uZW50LmNzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb250QXdlc29tZU1vZHVsZSwgRm9ybXNNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBNZWRpYVNldHRpbmdzTW9kYWwgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGlzTWVkaWFTZXR0aW5nc01vZGFsVmlzaWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBvbk1lZGlhU2V0dGluZ3NDbG9zZSE6ICgpID0+IHZvaWQ7XG4gIEBJbnB1dCgpIHN3aXRjaENhbWVyYU9uUHJlc3MhOiAocGFyYW1zOiBhbnkpID0+IFByb21pc2U8dm9pZD47XG4gIEBJbnB1dCgpIHN3aXRjaFZpZGVvT25QcmVzcyE6IChwYXJhbXM6IGFueSkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgQElucHV0KCkgc3dpdGNoQXVkaW9PblByZXNzITogKHBhcmFtczogYW55KSA9PiBQcm9taXNlPHZvaWQ+O1xuICBASW5wdXQoKSBwYXJhbWV0ZXJzITogTWVkaWFTZXR0aW5nc01vZGFsUGFyYW1ldGVycztcbiAgQElucHV0KCkgcG9zaXRpb24gPSAndG9wUmlnaHQnO1xuICBASW5wdXQoKSBiYWNrZ3JvdW5kQ29sb3IgPSAnIzgzYzBlOSc7XG5cbiAgZmFUaW1lcyA9IGZhVGltZXM7XG4gIGZhU3luY0FsdCA9IGZhU3luY0FsdDtcbiAgZmFDYW1lcmEgPSBmYUNhbWVyYTtcbiAgZmFNaWNyb3Bob25lID0gZmFNaWNyb3Bob25lO1xuICBmYVBob3RvRmlsbSA9IGZhUGhvdG9GaWxtO1xuXG4gIHNlbGVjdGVkVmlkZW9JbnB1dCE6IHN0cmluZztcbiAgc2VsZWN0ZWRBdWRpb0lucHV0ITogc3RyaW5nO1xuICBwcmV2U2VsZWN0ZWRWaWRlb0lucHV0ITogc3RyaW5nO1xuICBwcmV2U2VsZWN0ZWRBdWRpb0lucHV0ITogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3dpdGNoQXVkaW9TZXJ2aWNlOiBTd2l0Y2hBdWRpbyxcbiAgICBwcml2YXRlIHN3aXRjaFZpZGVvU2VydmljZTogU3dpdGNoVmlkZW8sXG4gICAgcHJpdmF0ZSBzd2l0Y2hWaWRlb0FsdFNlcnZpY2U6IFN3aXRjaFZpZGVvQWx0LFxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuaXNNZWRpYVNldHRpbmdzTW9kYWxWaXNpYmxlKSB7XG4gICAgICB0aGlzLnVwZGF0ZVBhcmFtZXRlcnMoKTtcbiAgICAgIHRoaXMuc2V0dXBEZWZhdWx0U2VydmljZXMoKTtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZU1vZGFsU2V0dGluZ3MoKTtcbiAgICAgIHRoaXMuZW5zdXJlRGVmYXVsdFNlbGVjdGlvbnMoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKFxuICAgICAgY2hhbmdlc1snaXNNZWRpYVNldHRpbmdzTW9kYWxWaXNpYmxlJ10gJiZcbiAgICAgIHRoaXMuaXNNZWRpYVNldHRpbmdzTW9kYWxWaXNpYmxlICYmXG4gICAgICB0aGlzLnBhcmFtZXRlcnNcbiAgICApIHtcbiAgICAgIHRoaXMudXBkYXRlUGFyYW1ldGVycygpO1xuICAgICAgdGhpcy5zZXR1cERlZmF1bHRTZXJ2aWNlcygpO1xuICAgICAgdGhpcy5lbnN1cmVEZWZhdWx0U2VsZWN0aW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIHNldHVwRGVmYXVsdFNlcnZpY2VzKCkge1xuICAgIGlmICghdGhpcy5zd2l0Y2hDYW1lcmFPblByZXNzKSB7XG4gICAgICB0aGlzLnN3aXRjaENhbWVyYU9uUHJlc3MgPSAocGFyYW1zOiBhbnkpID0+IHRoaXMuc3dpdGNoVmlkZW9BbHRTZXJ2aWNlLnN3aXRjaFZpZGVvQWx0KHBhcmFtcyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnN3aXRjaFZpZGVvT25QcmVzcykge1xuICAgICAgdGhpcy5zd2l0Y2hWaWRlb09uUHJlc3MgPSAocGFyYW1zOiBhbnkpID0+IHRoaXMuc3dpdGNoVmlkZW9TZXJ2aWNlLnN3aXRjaFZpZGVvKHBhcmFtcyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnN3aXRjaEF1ZGlvT25QcmVzcykge1xuICAgICAgdGhpcy5zd2l0Y2hBdWRpb09uUHJlc3MgPSAocGFyYW1zOiBhbnkpID0+IHRoaXMuc3dpdGNoQXVkaW9TZXJ2aWNlLnN3aXRjaEF1ZGlvKHBhcmFtcyk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlUGFyYW1ldGVycygpIHtcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSB7XG4gICAgICAuLi50aGlzLnBhcmFtZXRlcnMsXG4gICAgICAuLi50aGlzLnBhcmFtZXRlcnMuZ2V0VXBkYXRlZEFsbFBhcmFtcygpLFxuICAgIH07XG4gIH1cblxuICBlbnN1cmVEZWZhdWx0U2VsZWN0aW9ucygpIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRWaWRlb0lucHV0ICYmIHRoaXMucGFyYW1ldGVycy52aWRlb0lucHV0cy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVmlkZW9JbnB1dCA9IHRoaXMucGFyYW1ldGVycy52aWRlb0lucHV0c1swXS5kZXZpY2VJZDtcbiAgICAgIHRoaXMucHJldlNlbGVjdGVkVmlkZW9JbnB1dCA9IHRoaXMuc2VsZWN0ZWRWaWRlb0lucHV0O1xuICAgICAgdGhpcy5oYW5kbGVWaWRlb1N3aXRjaCh7IHRhcmdldDogeyB2YWx1ZTogdGhpcy5zZWxlY3RlZFZpZGVvSW5wdXQgfSB9IGFzIGFueSk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkQXVkaW9JbnB1dCAmJiB0aGlzLnBhcmFtZXRlcnMuYXVkaW9JbnB1dHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zZWxlY3RlZEF1ZGlvSW5wdXQgPSB0aGlzLnBhcmFtZXRlcnMuYXVkaW9JbnB1dHNbMF0uZGV2aWNlSWQ7XG4gICAgICB0aGlzLnByZXZTZWxlY3RlZEF1ZGlvSW5wdXQgPSB0aGlzLnNlbGVjdGVkQXVkaW9JbnB1dDtcbiAgICAgIHRoaXMuaGFuZGxlQXVkaW9Td2l0Y2goeyB0YXJnZXQ6IHsgdmFsdWU6IHRoaXMuc2VsZWN0ZWRBdWRpb0lucHV0IH0gfSBhcyBhbnkpO1xuICAgIH1cbiAgfVxuXG4gIGluaXRpYWxpemVNb2RhbFNldHRpbmdzKCkge1xuICAgIGNvbnN0IHNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgbGV0IG1vZGFsV2lkdGggPSAwLjcgKiBzY3JlZW5XaWR0aDtcbiAgICBpZiAobW9kYWxXaWR0aCA+IDM1MCkge1xuICAgICAgbW9kYWxXaWR0aCA9IDM1MDtcbiAgICB9XG4gIH1cblxuICBtb2RhbENvbnRlbnRTdHlsZSgpIHtcbiAgICBjb25zdCBzY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgIGxldCBtb2RhbFdpZHRoID0gMC44ICogc2NyZWVuV2lkdGg7XG4gICAgaWYgKG1vZGFsV2lkdGggPiAzNTApIHtcbiAgICAgIG1vZGFsV2lkdGggPSAzNTA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5iYWNrZ3JvdW5kQ29sb3IsXG4gICAgICBib3JkZXJSYWRpdXM6ICcxMHB4JyxcbiAgICAgIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgIHdpZHRoOiBgJHttb2RhbFdpZHRofXB4YCxcbiAgICAgIG1heEhlaWdodDogJzY1JScsXG4gICAgICBvdmVyZmxvd1k6ICdhdXRvJyxcbiAgICAgIHRvcDogdGhpcy5wb3NpdGlvbi5pbmNsdWRlcygndG9wJykgPyAnMTBweCcgOiAnYXV0bycsXG4gICAgICBib3R0b206IHRoaXMucG9zaXRpb24uaW5jbHVkZXMoJ2JvdHRvbScpID8gJzEwcHgnIDogJ2F1dG8nLFxuICAgICAgbGVmdDogdGhpcy5wb3NpdGlvbi5pbmNsdWRlcygnTGVmdCcpID8gJzEwcHgnIDogJ2F1dG8nLFxuICAgICAgcmlnaHQ6IHRoaXMucG9zaXRpb24uaW5jbHVkZXMoJ1JpZ2h0JykgPyAnMTBweCcgOiAnYXV0bycsXG4gICAgfTtcbiAgfVxuXG4gIGhhbmRsZVN3aXRjaENhbWVyYSA9IGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCB0aGlzLnN3aXRjaENhbWVyYU9uUHJlc3MoeyBwYXJhbWV0ZXJzOiB0aGlzLnBhcmFtZXRlcnMgfSk7XG4gIH07XG5cbiAgaGFuZGxlVmlkZW9Td2l0Y2ggPSBhc3luYyAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxTZWxlY3RFbGVtZW50KS52YWx1ZTtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMucHJldlNlbGVjdGVkVmlkZW9JbnB1dCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFZpZGVvSW5wdXQgPSB2YWx1ZTtcbiAgICAgIHRoaXMucHJldlNlbGVjdGVkVmlkZW9JbnB1dCA9IHRoaXMuc2VsZWN0ZWRWaWRlb0lucHV0O1xuICAgICAgYXdhaXQgdGhpcy5zd2l0Y2hWaWRlb09uUHJlc3MoeyB2aWRlb1ByZWZlcmVuY2U6IHZhbHVlLCBwYXJhbWV0ZXJzOiB0aGlzLnBhcmFtZXRlcnMgfSk7XG4gICAgfVxuICB9O1xuXG4gIGhhbmRsZUF1ZGlvU3dpdGNoID0gYXN5bmMgKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudCkudmFsdWU7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLnByZXZTZWxlY3RlZEF1ZGlvSW5wdXQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRBdWRpb0lucHV0ID0gdmFsdWU7XG4gICAgICB0aGlzLnByZXZTZWxlY3RlZEF1ZGlvSW5wdXQgPSB0aGlzLnNlbGVjdGVkQXVkaW9JbnB1dDtcbiAgICAgIGF3YWl0IHRoaXMuc3dpdGNoQXVkaW9PblByZXNzKHsgYXVkaW9QcmVmZXJlbmNlOiB2YWx1ZSwgcGFyYW1ldGVyczogdGhpcy5wYXJhbWV0ZXJzIH0pO1xuICAgIH1cbiAgfTtcblxuICBoYW5kbGVNb2RhbENsb3NlKCkge1xuICAgIHRoaXMub25NZWRpYVNldHRpbmdzQ2xvc2UoKTtcbiAgfVxuXG4gIHNob3dWaXJ0dWFsKCkge1xuICAgIHRoaXMucGFyYW1ldGVycy51cGRhdGVJc0JhY2tncm91bmRNb2RhbFZpc2libGUoIXRoaXMucGFyYW1ldGVycy5pc0JhY2tncm91bmRNb2RhbFZpc2libGUpO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiaXNNZWRpYVNldHRpbmdzTW9kYWxWaXNpYmxlXCIgY2xhc3M9XCJtb2RhbC1jb250YWluZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiIFtuZ1N0eWxlXT1cIm1vZGFsQ29udGVudFN0eWxlKClcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+TWVkaWEgU2V0dGluZ3M8L2Rpdj5cclxuICAgICAgPGRpdiAoY2xpY2spPVwiaGFuZGxlTW9kYWxDbG9zZSgpXCI+XHJcbiAgICAgICAgPGZhLWljb24gW2ljb25dPVwiZmFUaW1lc1wiIGNsYXNzPVwiaWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxociBjbGFzcz1cImhyXCIgLz5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiZmFDYW1lcmFcIiBbbmdTdHlsZV09XCJ7J21hcmdpbi1yaWdodCc6ICc4cHgnfVwiPjwvZmEtaWNvbj4gU2VsZWN0IENhbWVyYTpcclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFZpZGVvSW5wdXRcIiAoY2hhbmdlKT1cImhhbmRsZVZpZGVvU3dpdGNoKCRldmVudClcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiPlxyXG4gICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaW5wdXQgb2YgcGFyYW1ldGVycy52aWRlb0lucHV0c1wiIFt2YWx1ZV09XCJpbnB1dC5kZXZpY2VJZFwiPlxyXG4gICAgICAgICAgICB7eyBpbnB1dC5sYWJlbCB9fVxyXG4gICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbD5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cImZhTWljcm9waG9uZVwiIFtuZ1N0eWxlXT1cInsnbWFyZ2luLXJpZ2h0JzogJzhweCd9XCI+PC9mYS1pY29uPiBTZWxlY3QgTWljcm9waG9uZTpcclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEF1ZGlvSW5wdXRcIiAoY2hhbmdlKT1cImhhbmRsZUF1ZGlvU3dpdGNoKCRldmVudClcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiPlxyXG4gICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaW5wdXQgb2YgcGFyYW1ldGVycy5hdWRpb0lucHV0c1wiIFt2YWx1ZV09XCJpbnB1dC5kZXZpY2VJZFwiPlxyXG4gICAgICAgICAgICB7eyBpbnB1dC5sYWJlbCB9fVxyXG4gICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8aHIgY2xhc3M9XCJoclwiIC8+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiaGFuZGxlU3dpdGNoQ2FtZXJhKClcIiBjbGFzcz1cImJ0bi1zd2l0Y2hcIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cImZhU3luY0FsdFwiIFtuZ1N0eWxlXT1cInsnbWFyZ2luLXJpZ2h0JzogJzhweCd9XCI+PC9mYS1pY29uPiBTd2l0Y2ggQ2FtZXJhXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8aHIgY2xhc3M9XCJoclwiIC8+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic2hvd1ZpcnR1YWwoKVwiIGNsYXNzPVwiYnRuLXZpcnR1YWxcIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cImZhUGhvdG9GaWxtXCIgW25nU3R5bGVdPVwieydtYXJnaW4tcmlnaHQnOiAnOHB4J31cIj48L2ZhLWljb24+IFZpcnR1YWwgQmFja2dyb3VuZFxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|