mediasfu-angular 1.0.2 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/README.md +686 -578
  2. package/dist/README.md +677 -578
  3. package/dist/fesm2022/mediasfu-angular.mjs +5551 -2944
  4. package/dist/fesm2022/mediasfu-angular.mjs.map +1 -1
  5. package/dist/lib/@types/types.d.ts +22 -1
  6. package/dist/lib/components/breakout-components/breakout-rooms-modal.component.d.ts +1 -0
  7. package/dist/lib/components/mediasfu-components/mediasfu-broadcast.component.d.ts +153 -61
  8. package/dist/lib/components/mediasfu-components/mediasfu-chat.component.d.ts +154 -66
  9. package/dist/lib/components/mediasfu-components/mediasfu-conference.component.d.ts +190 -76
  10. package/dist/lib/components/mediasfu-components/mediasfu-generic.component.d.ts +184 -70
  11. package/dist/lib/components/mediasfu-components/mediasfu-webinar.component.d.ts +192 -78
  12. package/dist/lib/components/menu-components/menu-modal/menu-modal.component.d.ts +6 -1
  13. package/dist/lib/components/menu-components/share-buttons-component/share-buttons-component.component.d.ts +5 -2
  14. package/dist/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.d.ts +4 -2
  15. package/dist/lib/components/misc-components/pre-join-page/pre-join-page.component.d.ts +71 -66
  16. package/dist/lib/components/misc-components/share-event-modal/share-event-modal.component.d.ts +5 -1
  17. package/dist/lib/consumers/connect-local-ips.service.d.ts +81 -0
  18. package/dist/lib/consumers/connect-send-transport-audio.service.d.ts +43 -11
  19. package/dist/lib/consumers/connect-send-transport-screen.service.d.ts +87 -46
  20. package/dist/lib/consumers/connect-send-transport-video.service.d.ts +89 -43
  21. package/dist/lib/consumers/connect-send-transport.service.d.ts +5 -1
  22. package/dist/lib/consumers/create-send-transport.service.d.ts +130 -40
  23. package/dist/lib/consumers/disconnect-send-transport-audio.service.d.ts +77 -40
  24. package/dist/lib/consumers/disconnect-send-transport-screen.service.d.ts +48 -14
  25. package/dist/lib/consumers/disconnect-send-transport-video.service.d.ts +81 -44
  26. package/dist/lib/consumers/get-piped-producers-alt.service.d.ts +5 -1
  27. package/dist/lib/consumers/receive-all-piped-transports.service.d.ts +5 -1
  28. package/dist/lib/consumers/resume-send-transport-audio.service.d.ts +54 -21
  29. package/dist/lib/consumers/stream-success-audio-switch.service.d.ts +124 -40
  30. package/dist/lib/consumers/trigger.service.d.ts +3 -0
  31. package/dist/lib/methods/exit-methods/confirm-exit.service.d.ts +5 -1
  32. package/dist/lib/methods/recording-methods/start-recording.service.d.ts +3 -0
  33. package/dist/lib/methods/recording-methods/stop-recording.service.d.ts +4 -1
  34. package/dist/lib/methods/recording-methods/update-recording.service.d.ts +3 -0
  35. package/dist/lib/methods/stream-methods/click-audio.service.d.ts +3 -0
  36. package/dist/lib/methods/utils/check-limits-and-make-request.service.d.ts +23 -0
  37. package/dist/lib/methods/utils/create-response-join-room.util.d.ts +33 -0
  38. package/dist/lib/methods/utils/create-room-on-media-sfu.service.d.ts +25 -0
  39. package/dist/lib/methods/utils/initial-values.util.d.ts +6 -0
  40. package/dist/lib/methods/utils/join-room-on-media-sfu.service.d.ts +52 -0
  41. package/dist/lib/methods/whiteboard-methods/capture-canvas-stream.service.d.ts +37 -20
  42. package/dist/lib/producers/producer-emits/join-local-room.service.d.ts +125 -0
  43. package/dist/lib/producers/socket-receive-methods/all-members-rest.service.d.ts +7 -2
  44. package/dist/lib/producers/socket-receive-methods/all-members.service.d.ts +7 -2
  45. package/dist/lib/producers/socket-receive-methods/disconnect-user-self.service.d.ts +5 -1
  46. package/dist/lib/sockets/socket-manager.service.d.ts +90 -0
  47. package/dist/public-api.d.ts +11 -1
  48. package/package.json +17 -20
  49. package/dist/esm2022/lib/@types/types.mjs +0 -2
  50. package/dist/esm2022/lib/components/background-components/background-modal/background-modal.component.mjs +0 -799
  51. package/dist/esm2022/lib/components/breakout-components/breakout-rooms-modal.component.mjs +0 -366
  52. package/dist/esm2022/lib/components/breakout-components/edit-room-modal/edit-room-modal.component.mjs +0 -143
  53. package/dist/esm2022/lib/components/breakout-components/room-list/room-list.component.mjs +0 -40
  54. package/dist/esm2022/lib/components/co-host-components/co-host-modal/co-host-modal.component.mjs +0 -245
  55. package/dist/esm2022/lib/components/display-components/alert-component/alert.component.component.mjs +0 -79
  56. package/dist/esm2022/lib/components/display-components/audio-card/audio-card.component.mjs +0 -356
  57. package/dist/esm2022/lib/components/display-components/audio-grid/audio-grid.component.mjs +0 -80
  58. package/dist/esm2022/lib/components/display-components/card-video-display/card-video-display.component.mjs +0 -129
  59. package/dist/esm2022/lib/components/display-components/control-buttons-alt-component/control-buttons-alt-component.component.mjs +0 -138
  60. package/dist/esm2022/lib/components/display-components/control-buttons-component/control-buttons-component.component.mjs +0 -231
  61. package/dist/esm2022/lib/components/display-components/control-buttons-component-touch/control-buttons-component-touch.component.mjs +0 -282
  62. package/dist/esm2022/lib/components/display-components/control-widgets/menu-participants-widget.component.mjs +0 -82
  63. package/dist/esm2022/lib/components/display-components/control-widgets/menu-record-widget.component.mjs +0 -65
  64. package/dist/esm2022/lib/components/display-components/control-widgets/menu-widget.component.mjs +0 -137
  65. package/dist/esm2022/lib/components/display-components/control-widgets/message-widget.component.mjs +0 -137
  66. package/dist/esm2022/lib/components/display-components/control-widgets/record-timer-widget.component.mjs +0 -51
  67. package/dist/esm2022/lib/components/display-components/control-widgets/screenshare-widget.component.mjs +0 -101
  68. package/dist/esm2022/lib/components/display-components/flexible-grid/flexible-grid.component.mjs +0 -151
  69. package/dist/esm2022/lib/components/display-components/flexible-video/flexible-video.component.mjs +0 -250
  70. package/dist/esm2022/lib/components/display-components/loading-modal/loading-modal.component.mjs +0 -102
  71. package/dist/esm2022/lib/components/display-components/main-aspect-component/main-aspect-component.component.mjs +0 -140
  72. package/dist/esm2022/lib/components/display-components/main-container-component/main-container-component.component.mjs +0 -131
  73. package/dist/esm2022/lib/components/display-components/main-grid-component/main-grid-component.component.mjs +0 -120
  74. package/dist/esm2022/lib/components/display-components/main-screen-component/main-screen-component.component.mjs +0 -201
  75. package/dist/esm2022/lib/components/display-components/meeting-progress-timer/meeting-progress-timer.component.mjs +0 -115
  76. package/dist/esm2022/lib/components/display-components/mini-audio/mini-audio.component.mjs +0 -319
  77. package/dist/esm2022/lib/components/display-components/mini-card/mini-card.component.mjs +0 -161
  78. package/dist/esm2022/lib/components/display-components/mini-card-audio/mini-card-audio.component.mjs +0 -230
  79. package/dist/esm2022/lib/components/display-components/other-grid-component/other-grid-component.component.mjs +0 -126
  80. package/dist/esm2022/lib/components/display-components/pagination/pagination.component.mjs +0 -334
  81. package/dist/esm2022/lib/components/display-components/sub-aspect-component/sub-aspect-component.component.mjs +0 -112
  82. package/dist/esm2022/lib/components/display-components/video-card/video-card.component.mjs +0 -392
  83. package/dist/esm2022/lib/components/display-settings-components/display-settings-modal.component.mjs +0 -106
  84. package/dist/esm2022/lib/components/event-settings-components/event-settings-modal/event-settings-modal.component.mjs +0 -199
  85. package/dist/esm2022/lib/components/exit-components/confirm-exit-modal/confirm-exit-modal.component.mjs +0 -132
  86. package/dist/esm2022/lib/components/media-settings-components/media-settings-modal/media-settings-modal.component.mjs +0 -220
  87. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-broadcast.component.mjs +0 -4238
  88. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-chat.component.mjs +0 -3754
  89. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-conference.component.mjs +0 -5071
  90. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-generic.component.mjs +0 -5380
  91. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-webinar.component.mjs +0 -5068
  92. package/dist/esm2022/lib/components/menu-components/custom-buttons/custom-buttons.component.mjs +0 -83
  93. package/dist/esm2022/lib/components/menu-components/meeting-id-component/meeting-id-component.component.mjs +0 -27
  94. package/dist/esm2022/lib/components/menu-components/meeting-passcode-component/meeting-passcode-component.component.mjs +0 -27
  95. package/dist/esm2022/lib/components/menu-components/menu-modal/menu-modal.component.mjs +0 -125
  96. package/dist/esm2022/lib/components/menu-components/share-buttons-component/share-buttons-component.component.mjs +0 -106
  97. package/dist/esm2022/lib/components/message-components/message-panel/message-panel.component.mjs +0 -228
  98. package/dist/esm2022/lib/components/message-components/messages-modal/messages-modal.component.mjs +0 -277
  99. package/dist/esm2022/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.mjs +0 -130
  100. package/dist/esm2022/lib/components/misc-components/pre-join-page/pre-join-page.component.mjs +0 -343
  101. package/dist/esm2022/lib/components/misc-components/share-event-modal/share-event-modal.component.mjs +0 -127
  102. package/dist/esm2022/lib/components/misc-components/welcome-page/welcome-page.component.mjs +0 -241
  103. package/dist/esm2022/lib/components/participants-components/participant-list/participant-list.component.mjs +0 -82
  104. package/dist/esm2022/lib/components/participants-components/participant-list-item/participant-list-item.component.mjs +0 -139
  105. package/dist/esm2022/lib/components/participants-components/participant-list-others/participant-list-others.component.mjs +0 -40
  106. package/dist/esm2022/lib/components/participants-components/participant-list-others-item/participant-list-others-item.component.mjs +0 -60
  107. package/dist/esm2022/lib/components/participants-components/participants-modal/participants-modal.component.mjs +0 -124
  108. package/dist/esm2022/lib/components/polls-components/poll-modal/poll-modal.component.mjs +0 -201
  109. package/dist/esm2022/lib/components/recording-components/advanced-panel-component/advanced-panel-components.component.mjs +0 -92
  110. package/dist/esm2022/lib/components/recording-components/recording-modal/recording-modal.component.mjs +0 -133
  111. package/dist/esm2022/lib/components/recording-components/standard-panel-component/standard-panel-component.component.mjs +0 -90
  112. package/dist/esm2022/lib/components/requests-components/render-request-component/render-request-component.component.mjs +0 -81
  113. package/dist/esm2022/lib/components/requests-components/requests-modal/requests-modal.component.mjs +0 -147
  114. package/dist/esm2022/lib/components/screenboard-components/screenboard/screenboard.component.mjs +0 -627
  115. package/dist/esm2022/lib/components/screenboard-components/screenboard-modal/screenboard-modal.component.mjs +0 -391
  116. package/dist/esm2022/lib/components/waiting-components/waiting-room-modal.component.mjs +0 -201
  117. package/dist/esm2022/lib/components/whiteboard-components/configure-whiteboard-modal/configure-whiteboard-modal.component.mjs +0 -286
  118. package/dist/esm2022/lib/components/whiteboard-components/whiteboard/whiteboard.component.mjs +0 -1833
  119. package/dist/esm2022/lib/consumers/add-videos-grid.service.mjs +0 -345
  120. package/dist/esm2022/lib/consumers/auto-adjust.service.mjs +0 -109
  121. package/dist/esm2022/lib/consumers/calculate-rows-and-columns.service.mjs +0 -60
  122. package/dist/esm2022/lib/consumers/change-vids.service.mjs +0 -551
  123. package/dist/esm2022/lib/consumers/check-grid.service.mjs +0 -93
  124. package/dist/esm2022/lib/consumers/check-permission.service.mjs +0 -105
  125. package/dist/esm2022/lib/consumers/check-screen-share.service.mjs +0 -106
  126. package/dist/esm2022/lib/consumers/close-and-resize.service.mjs +0 -331
  127. package/dist/esm2022/lib/consumers/compare-active-names.service.mjs +0 -106
  128. package/dist/esm2022/lib/consumers/compare-screen-states.service.mjs +0 -98
  129. package/dist/esm2022/lib/consumers/connect-ips.service.mjs +0 -154
  130. package/dist/esm2022/lib/consumers/connect-recv-transport.service.mjs +0 -146
  131. package/dist/esm2022/lib/consumers/connect-send-transport-audio.service.mjs +0 -84
  132. package/dist/esm2022/lib/consumers/connect-send-transport-screen.service.mjs +0 -102
  133. package/dist/esm2022/lib/consumers/connect-send-transport-video.service.mjs +0 -99
  134. package/dist/esm2022/lib/consumers/connect-send-transport.service.mjs +0 -140
  135. package/dist/esm2022/lib/consumers/consumer-resume.service.mjs +0 -368
  136. package/dist/esm2022/lib/consumers/control-media.service.mjs +0 -113
  137. package/dist/esm2022/lib/consumers/create-send-transport.service.mjs +0 -172
  138. package/dist/esm2022/lib/consumers/disconnect-send-transport-audio.service.mjs +0 -108
  139. package/dist/esm2022/lib/consumers/disconnect-send-transport-screen.service.mjs +0 -84
  140. package/dist/esm2022/lib/consumers/disconnect-send-transport-video.service.mjs +0 -101
  141. package/dist/esm2022/lib/consumers/disp-streams.service.mjs +0 -513
  142. package/dist/esm2022/lib/consumers/generate-page-content.service.mjs +0 -106
  143. package/dist/esm2022/lib/consumers/get-estimate.service.mjs +0 -120
  144. package/dist/esm2022/lib/consumers/get-piped-producers-alt.service.mjs +0 -82
  145. package/dist/esm2022/lib/consumers/get-producers-piped.service.mjs +0 -79
  146. package/dist/esm2022/lib/consumers/get-videos.service.mjs +0 -91
  147. package/dist/esm2022/lib/consumers/mix-streams.service.mjs +0 -95
  148. package/dist/esm2022/lib/consumers/on-screen-changes.service.mjs +0 -103
  149. package/dist/esm2022/lib/consumers/prepopulate-user-media.service.mjs +0 -541
  150. package/dist/esm2022/lib/consumers/process-consumer-transports-audio.service.mjs +0 -101
  151. package/dist/esm2022/lib/consumers/process-consumer-transports.service.mjs +0 -128
  152. package/dist/esm2022/lib/consumers/re-port.service.mjs +0 -114
  153. package/dist/esm2022/lib/consumers/re-update-inter.service.mjs +0 -239
  154. package/dist/esm2022/lib/consumers/readjust.service.mjs +0 -173
  155. package/dist/esm2022/lib/consumers/receive-all-piped-transports.service.mjs +0 -87
  156. package/dist/esm2022/lib/consumers/receive-room-messages.service.mjs +0 -69
  157. package/dist/esm2022/lib/consumers/reorder-streams.service.mjs +0 -239
  158. package/dist/esm2022/lib/consumers/request-screen-share.service.mjs +0 -101
  159. package/dist/esm2022/lib/consumers/resume-pause-audio-streams.service.mjs +0 -150
  160. package/dist/esm2022/lib/consumers/resume-pause-streams.service.mjs +0 -103
  161. package/dist/esm2022/lib/consumers/resume-send-transport-audio.service.mjs +0 -91
  162. package/dist/esm2022/lib/consumers/signal-new-consumer-transport.service.mjs +0 -136
  163. package/dist/esm2022/lib/consumers/socket-receive-methods/join-consume-room.service.mjs +0 -96
  164. package/dist/esm2022/lib/consumers/socket-receive-methods/new-pipe-producer.service.mjs +0 -100
  165. package/dist/esm2022/lib/consumers/socket-receive-methods/producer-closed.service.mjs +0 -78
  166. package/dist/esm2022/lib/consumers/start-share-screen.service.mjs +0 -120
  167. package/dist/esm2022/lib/consumers/stop-share-screen.service.mjs +0 -175
  168. package/dist/esm2022/lib/consumers/stream-success-audio-switch.service.mjs +0 -185
  169. package/dist/esm2022/lib/consumers/stream-success-audio.service.mjs +0 -210
  170. package/dist/esm2022/lib/consumers/stream-success-screen.service.mjs +0 -193
  171. package/dist/esm2022/lib/consumers/stream-success-video.service.mjs +0 -260
  172. package/dist/esm2022/lib/consumers/switch-user-audio.service.mjs +0 -120
  173. package/dist/esm2022/lib/consumers/switch-user-video-alt.service.mjs +0 -260
  174. package/dist/esm2022/lib/consumers/switch-user-video.service.mjs +0 -172
  175. package/dist/esm2022/lib/consumers/trigger.service.mjs +0 -210
  176. package/dist/esm2022/lib/consumers/update-mini-cards-grid.service.mjs +0 -135
  177. package/dist/esm2022/lib/consumers/update-participant-audio-decibels.service.mjs +0 -84
  178. package/dist/esm2022/lib/methods/background-methods/launch-background.service.mjs +0 -48
  179. package/dist/esm2022/lib/methods/breakout-room-methods/breakout-room-updated.service.mjs +0 -183
  180. package/dist/esm2022/lib/methods/breakout-room-methods/launch-breakout-rooms.service.mjs +0 -46
  181. package/dist/esm2022/lib/methods/co-host-methods/launch-co-host.service.mjs +0 -46
  182. package/dist/esm2022/lib/methods/co-host-methods/modify-co-host-settings.service.mjs +0 -104
  183. package/dist/esm2022/lib/methods/display-settings-methods/launch-display-settings.service.mjs +0 -46
  184. package/dist/esm2022/lib/methods/display-settings-methods/modify-display-settings.service.mjs +0 -194
  185. package/dist/esm2022/lib/methods/exit-methods/confirm-exit.service.mjs +0 -52
  186. package/dist/esm2022/lib/methods/exit-methods/launch-confirm-exit.service.mjs +0 -42
  187. package/dist/esm2022/lib/methods/media-settings-methods/launch-media-settings.service.mjs +0 -85
  188. package/dist/esm2022/lib/methods/menu-methods/launch-menu-modal.service.mjs +0 -44
  189. package/dist/esm2022/lib/methods/message-methods/launch-messages.service.mjs +0 -45
  190. package/dist/esm2022/lib/methods/message-methods/send-message.service.mjs +0 -143
  191. package/dist/esm2022/lib/methods/participants-methods/launch-participants.service.mjs +0 -47
  192. package/dist/esm2022/lib/methods/participants-methods/message-participants.service.mjs +0 -98
  193. package/dist/esm2022/lib/methods/participants-methods/mute-participants.service.mjs +0 -96
  194. package/dist/esm2022/lib/methods/participants-methods/remove-participants.service.mjs +0 -107
  195. package/dist/esm2022/lib/methods/polls-methods/handle-create-poll.service.mjs +0 -75
  196. package/dist/esm2022/lib/methods/polls-methods/handle-end-poll.service.mjs +0 -72
  197. package/dist/esm2022/lib/methods/polls-methods/handle-vote-poll.service.mjs +0 -83
  198. package/dist/esm2022/lib/methods/polls-methods/launch-poll.service.mjs +0 -43
  199. package/dist/esm2022/lib/methods/polls-methods/poll-updated.service.mjs +0 -95
  200. package/dist/esm2022/lib/methods/recording-methods/check-pause-state.service.mjs +0 -69
  201. package/dist/esm2022/lib/methods/recording-methods/check-resume-state.service.mjs +0 -56
  202. package/dist/esm2022/lib/methods/recording-methods/confirm-recording.service.mjs +0 -278
  203. package/dist/esm2022/lib/methods/recording-methods/launch-recording.service.mjs +0 -125
  204. package/dist/esm2022/lib/methods/recording-methods/record-pause-timer.service.mjs +0 -67
  205. package/dist/esm2022/lib/methods/recording-methods/record-resume-timer.service.mjs +0 -130
  206. package/dist/esm2022/lib/methods/recording-methods/record-start-timer.service.mjs +0 -134
  207. package/dist/esm2022/lib/methods/recording-methods/record-update-timer.service.mjs +0 -80
  208. package/dist/esm2022/lib/methods/recording-methods/start-recording.service.mjs +0 -197
  209. package/dist/esm2022/lib/methods/recording-methods/stop-recording.service.mjs +0 -112
  210. package/dist/esm2022/lib/methods/recording-methods/update-recording.service.mjs +0 -272
  211. package/dist/esm2022/lib/methods/requests-methods/launch-requests.service.mjs +0 -51
  212. package/dist/esm2022/lib/methods/requests-methods/respond-to-requests.service.mjs +0 -84
  213. package/dist/esm2022/lib/methods/settings-methods/launch-settings.service.mjs +0 -51
  214. package/dist/esm2022/lib/methods/settings-methods/modify-settings.service.mjs +0 -109
  215. package/dist/esm2022/lib/methods/stream-methods/click-audio.service.mjs +0 -275
  216. package/dist/esm2022/lib/methods/stream-methods/click-chat.service.mjs +0 -75
  217. package/dist/esm2022/lib/methods/stream-methods/click-screen-share.service.mjs +0 -178
  218. package/dist/esm2022/lib/methods/stream-methods/click-video.service.mjs +0 -271
  219. package/dist/esm2022/lib/methods/stream-methods/switch-audio.service.mjs +0 -80
  220. package/dist/esm2022/lib/methods/stream-methods/switch-video-alt.service.mjs +0 -116
  221. package/dist/esm2022/lib/methods/stream-methods/switch-video.service.mjs +0 -132
  222. package/dist/esm2022/lib/methods/utils/format-number.service.mjs +0 -57
  223. package/dist/esm2022/lib/methods/utils/generate-random-messages.service.mjs +0 -120
  224. package/dist/esm2022/lib/methods/utils/generate-random-participants.service.mjs +0 -126
  225. package/dist/esm2022/lib/methods/utils/generate-random-polls.service.mjs +0 -78
  226. package/dist/esm2022/lib/methods/utils/generate-random-request-list.service.mjs +0 -90
  227. package/dist/esm2022/lib/methods/utils/generate-random-waiting-room-list.service.mjs +0 -59
  228. package/dist/esm2022/lib/methods/utils/get-modal-position.util.mjs +0 -32
  229. package/dist/esm2022/lib/methods/utils/get-overlay-position.util.mjs +0 -31
  230. package/dist/esm2022/lib/methods/utils/initial-values.util.mjs +0 -379
  231. package/dist/esm2022/lib/methods/utils/meeting-timer/start-meeting-progress-timer.service.mjs +0 -96
  232. package/dist/esm2022/lib/methods/utils/mini-audio-player/mini-audio-player.component.mjs +0 -315
  233. package/dist/esm2022/lib/methods/utils/producer/a-params.service.mjs +0 -58
  234. package/dist/esm2022/lib/methods/utils/producer/h-params.service.mjs +0 -87
  235. package/dist/esm2022/lib/methods/utils/producer/screen-params.service.mjs +0 -61
  236. package/dist/esm2022/lib/methods/utils/producer/v-params.service.mjs +0 -87
  237. package/dist/esm2022/lib/methods/utils/producer/video-capture-constraints.service.mjs +0 -84
  238. package/dist/esm2022/lib/methods/utils/sleep.util.mjs +0 -17
  239. package/dist/esm2022/lib/methods/utils/sound-player.service.mjs +0 -63
  240. package/dist/esm2022/lib/methods/utils/validate-alphanumeric.service.mjs +0 -49
  241. package/dist/esm2022/lib/methods/waiting-methods/launch-waiting.service.mjs +0 -41
  242. package/dist/esm2022/lib/methods/waiting-methods/respond-to-waiting.service.mjs +0 -69
  243. package/dist/esm2022/lib/methods/whiteboard-methods/capture-canvas-stream.service.mjs +0 -98
  244. package/dist/esm2022/lib/methods/whiteboard-methods/launch-configure-whiteboard.service.mjs +0 -44
  245. package/dist/esm2022/lib/producer-client/producer-client-emits/create-device-client.service.mjs +0 -74
  246. package/dist/esm2022/lib/producer-client/producer-client-emits/join-room-client.service.mjs +0 -96
  247. package/dist/esm2022/lib/producer-client/producer-client-emits/update-room-parameters-client.service.mjs +0 -276
  248. package/dist/esm2022/lib/producers/producer-emits/join-con-room.service.mjs +0 -152
  249. package/dist/esm2022/lib/producers/producer-emits/join-room.service.mjs +0 -152
  250. package/dist/esm2022/lib/producers/socket-receive-methods/all-members-rest.service.mjs +0 -228
  251. package/dist/esm2022/lib/producers/socket-receive-methods/all-members.service.mjs +0 -218
  252. package/dist/esm2022/lib/producers/socket-receive-methods/all-waiting-room-members.service.mjs +0 -57
  253. package/dist/esm2022/lib/producers/socket-receive-methods/ban-participant.service.mjs +0 -76
  254. package/dist/esm2022/lib/producers/socket-receive-methods/control-media-host.service.mjs +0 -183
  255. package/dist/esm2022/lib/producers/socket-receive-methods/disconnect-user-self.service.mjs +0 -50
  256. package/dist/esm2022/lib/producers/socket-receive-methods/disconnect.service.mjs +0 -64
  257. package/dist/esm2022/lib/producers/socket-receive-methods/get-domains.service.mjs +0 -78
  258. package/dist/esm2022/lib/producers/socket-receive-methods/host-request-response.service.mjs +0 -150
  259. package/dist/esm2022/lib/producers/socket-receive-methods/meeting-ended.service.mjs +0 -73
  260. package/dist/esm2022/lib/producers/socket-receive-methods/meeting-still-there.service.mjs +0 -47
  261. package/dist/esm2022/lib/producers/socket-receive-methods/meeting-time-remaining.service.mjs +0 -63
  262. package/dist/esm2022/lib/producers/socket-receive-methods/participant-requested.service.mjs +0 -63
  263. package/dist/esm2022/lib/producers/socket-receive-methods/person-joined.service.mjs +0 -54
  264. package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-closed.service.mjs +0 -129
  265. package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-paused.service.mjs +0 -152
  266. package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-resumed.service.mjs +0 -99
  267. package/dist/esm2022/lib/producers/socket-receive-methods/re-initiate-recording.service.mjs +0 -67
  268. package/dist/esm2022/lib/producers/socket-receive-methods/receive-message.service.mjs +0 -134
  269. package/dist/esm2022/lib/producers/socket-receive-methods/recording-notice.service.mjs +0 -233
  270. package/dist/esm2022/lib/producers/socket-receive-methods/room-record-params.service.mjs +0 -121
  271. package/dist/esm2022/lib/producers/socket-receive-methods/screen-producer-id.service.mjs +0 -86
  272. package/dist/esm2022/lib/producers/socket-receive-methods/start-records.service.mjs +0 -60
  273. package/dist/esm2022/lib/producers/socket-receive-methods/stopped-recording.service.mjs +0 -62
  274. package/dist/esm2022/lib/producers/socket-receive-methods/time-left-recording.service.mjs +0 -57
  275. package/dist/esm2022/lib/producers/socket-receive-methods/update-consuming-domains.service.mjs +0 -105
  276. package/dist/esm2022/lib/producers/socket-receive-methods/update-media-settings.service.mjs +0 -66
  277. package/dist/esm2022/lib/producers/socket-receive-methods/updated-co-host.service.mjs +0 -96
  278. package/dist/esm2022/lib/producers/socket-receive-methods/user-waiting.service.mjs +0 -52
  279. package/dist/esm2022/lib/sockets/socket-manager.service.mjs +0 -113
  280. package/dist/esm2022/mediasfu-angular.mjs +0 -5
  281. package/dist/esm2022/public-api.mjs +0 -187
@@ -1,379 +0,0 @@
1
- export const initialValuesState = {
2
- // The following are the initial values
3
- roomName: '',
4
- member: '',
5
- adminPasscode: '',
6
- islevel: '1',
7
- coHost: 'No coHost',
8
- coHostResponsibility: [
9
- { name: 'participants', value: false, dedicated: false },
10
- { name: 'media', value: false, dedicated: false },
11
- { name: 'waiting', value: false, dedicated: false },
12
- { name: 'chat', value: false, dedicated: false },
13
- ],
14
- youAreCoHost: false,
15
- youAreHost: false,
16
- confirmedToRecord: false,
17
- meetingDisplayType: 'media',
18
- meetingVideoOptimized: false,
19
- eventType: 'webinar',
20
- participants: [],
21
- filteredParticipants: [],
22
- participantsCounter: 0,
23
- participantsFilter: '',
24
- validated: false,
25
- localUIMode: false,
26
- socket: {},
27
- roomData: null,
28
- device: null,
29
- apiKey: '',
30
- apiUserName: '',
31
- apiToken: '',
32
- link: '',
33
- consume_sockets: [],
34
- rtpCapabilities: null,
35
- roomRecvIPs: [],
36
- meetingRoomParams: null,
37
- itemPageLimit: 4,
38
- audioOnlyRoom: false,
39
- addForBasic: false,
40
- screenPageLimit: 4,
41
- shareScreenStarted: false,
42
- shared: false,
43
- targetOrientation: 'landscape',
44
- targetResolution: 'sd',
45
- targetResolutionHost: 'sd',
46
- vidCons: { width: 640, height: 360 },
47
- frameRate: 10,
48
- hParams: {},
49
- vParams: {},
50
- screenParams: {},
51
- aParams: {},
52
- // Initial Values for New Recording Fields
53
- recordingAudioPausesLimit: 0,
54
- recordingAudioPausesCount: 0,
55
- recordingAudioSupport: false,
56
- recordingAudioPeopleLimit: 0,
57
- recordingAudioParticipantsTimeLimit: 0,
58
- recordingVideoPausesCount: 0,
59
- recordingVideoPausesLimit: 0,
60
- recordingVideoSupport: false,
61
- recordingVideoPeopleLimit: 0,
62
- recordingVideoParticipantsTimeLimit: 0,
63
- recordingAllParticipantsSupport: false,
64
- recordingVideoParticipantsSupport: false,
65
- recordingAllParticipantsFullRoomSupport: false,
66
- recordingVideoParticipantsFullRoomSupport: false,
67
- recordingPreferredOrientation: 'landscape',
68
- recordingSupportForOtherOrientation: false,
69
- recordingMultiFormatsSupport: false,
70
- userRecordingParams: {
71
- mainSpecs: {
72
- mediaOptions: 'video',
73
- audioOptions: 'all',
74
- videoOptions: 'all',
75
- videoType: 'fullDisplay',
76
- videoOptimized: false,
77
- recordingDisplayType: 'media',
78
- addHLS: false,
79
- },
80
- dispSpecs: {
81
- nameTags: true,
82
- backgroundColor: '#000000',
83
- nameTagsColor: '#ffffff',
84
- orientationVideo: 'portrait',
85
- },
86
- },
87
- canRecord: false,
88
- startReport: false,
89
- endReport: false,
90
- recordTimerInterval: null,
91
- recordStartTime: 0,
92
- recordElapsedTime: 0,
93
- isTimerRunning: false,
94
- canPauseResume: false,
95
- recordChangeSeconds: 15000,
96
- pauseLimit: 0,
97
- pauseRecordCount: 0,
98
- canLaunchRecord: true,
99
- stopLaunchRecord: false,
100
- // Room properties
101
- participantsAll: [],
102
- firstAll: false,
103
- updateMainWindow: false,
104
- first_round: false,
105
- landScaped: false,
106
- lock_screen: false,
107
- screenId: '',
108
- allVideoStreams: [],
109
- newLimitedStreams: [],
110
- newLimitedStreamsIDs: [],
111
- activeSounds: [],
112
- screenShareIDStream: '',
113
- screenShareNameStream: '',
114
- adminIDStream: '',
115
- adminNameStream: '',
116
- youYouStream: [],
117
- youYouStreamIDs: [],
118
- localStream: null,
119
- recordStarted: false,
120
- recordResumed: false,
121
- recordPaused: false,
122
- recordStopped: false,
123
- adminRestrictSetting: false,
124
- videoRequestState: null,
125
- videoRequestTime: 0,
126
- videoAction: false,
127
- localStreamVideo: null,
128
- userDefaultVideoInputDevice: '',
129
- currentFacingMode: 'user',
130
- prevFacingMode: 'user',
131
- defVideoID: '',
132
- allowed: false,
133
- dispActiveNames: [],
134
- activeNames: [],
135
- prevActiveNames: [],
136
- p_activeNames: [],
137
- p_dispActiveNames: [],
138
- membersReceived: false,
139
- deferScreenReceived: false,
140
- hostFirstSwitch: false,
141
- micAction: false,
142
- screenAction: false,
143
- chatAction: false,
144
- audioRequestState: null,
145
- screenRequestState: null,
146
- chatRequestState: null,
147
- audioRequestTime: 0,
148
- screenRequestTime: 0,
149
- chatRequestTime: 0,
150
- updateRequestIntervalSeconds: 240,
151
- oldSoundIds: [],
152
- hostLabel: 'Host',
153
- mainScreenFilled: false,
154
- localStreamScreen: null,
155
- screenAlreadyOn: false,
156
- chatAlreadyOn: false,
157
- redirectURL: '',
158
- oldAllStreams: [],
159
- adminVidID: '',
160
- streamNames: [],
161
- non_alVideoStreams: [],
162
- sortAudioLoudness: false,
163
- audioDecibels: [],
164
- mixed_alVideoStreams: [],
165
- non_alVideoStreams_muted: [],
166
- paginatedStreams: [],
167
- localStreamAudio: null,
168
- defAudioID: '',
169
- userDefaultAudioInputDevice: '',
170
- userDefaultAudioOutputDevice: '',
171
- prevAudioInputDevice: '',
172
- prevVideoInputDevice: '',
173
- audioPaused: false,
174
- mainScreenPerson: '',
175
- adminOnMainScreen: false,
176
- screenStates: [{
177
- mainScreenPerson: "",
178
- mainScreenProducerId: "",
179
- mainScreenFilled: false,
180
- adminOnMainScreen: false,
181
- }],
182
- prevScreenStates: [{
183
- mainScreenPerson: "",
184
- mainScreenProducerId: "",
185
- mainScreenFilled: false,
186
- adminOnMainScreen: false,
187
- }],
188
- updateDateState: null,
189
- lastUpdate: null,
190
- nForReadjustRecord: 0,
191
- fixedPageLimit: 4,
192
- removeAltGrid: false,
193
- nForReadjust: 0,
194
- reorderInterval: 30000,
195
- fastReorderInterval: 10000,
196
- lastReorderTime: 0,
197
- audStreamNames: [],
198
- currentUserPage: 0,
199
- mainHeightWidth: 0,
200
- prevMainHeightWidth: 0,
201
- prevDoPaginate: false,
202
- doPaginate: false,
203
- shareEnded: false,
204
- lStreams: [],
205
- chatRefStreams: [],
206
- controlHeight: 0,
207
- isWideScreen: false,
208
- isMediumScreen: false,
209
- isSmallScreen: false,
210
- addGrid: false,
211
- addAltGrid: false,
212
- gridRows: 0,
213
- gridCols: 0,
214
- altGridRows: 0,
215
- altGridCols: 0,
216
- numberPages: 0,
217
- currentStreams: [],
218
- showMiniView: false,
219
- nStream: null,
220
- defer_receive: false,
221
- allAudioStreams: [],
222
- remoteScreenStream: [],
223
- screenProducer: null,
224
- gotAllVids: false,
225
- paginationHeightWidth: 40,
226
- paginationDirection: 'horizontal',
227
- gridSizes: { gridWidth: 0, gridHeight: 0, altGridWidth: 0, altGridHeight: 0 },
228
- screenForceFullDisplay: false,
229
- mainGridStream: [],
230
- otherGridStreams: [[], []],
231
- audioOnlyStreams: [],
232
- videoInputs: [],
233
- audioInputs: [],
234
- meetingProgressTime: '00:00:00',
235
- meetingElapsedTime: 0,
236
- ref_participants: [],
237
- // Messaging, event, modals, and other UI states
238
- messages: [],
239
- startDirectMessage: false,
240
- directMessageDetails: null,
241
- showMessagesBadge: false,
242
- audioSetting: 'allow',
243
- videoSetting: 'allow',
244
- screenshareSetting: 'allow',
245
- chatSetting: 'allow',
246
- displayOption: 'media',
247
- autoWave: true,
248
- forceFullDisplay: true,
249
- prevForceFullDisplay: false,
250
- prevMeetingDisplayType: 'video',
251
- waitingRoomFilter: '',
252
- waitingRoomList: [],
253
- waitingRoomCounter: 0,
254
- filteredWaitingRoomList: [],
255
- requestFilter: '',
256
- requestList: [],
257
- requestCounter: 0,
258
- filteredRequestList: [],
259
- totalReqWait: 0,
260
- alertVisible: false,
261
- alertMessage: '',
262
- alertType: 'success',
263
- alertDuration: 3000,
264
- progressTimerVisible: true,
265
- progressTimerValue: 0,
266
- isMenuModalVisible: false,
267
- isRecordingModalVisible: false,
268
- isSettingsModalVisible: false,
269
- isRequestsModalVisible: false,
270
- isWaitingModalVisible: false,
271
- isCoHostModalVisible: false,
272
- isMediaSettingsModalVisible: false,
273
- isDisplaySettingsModalVisible: false,
274
- isParticipantsModalVisible: false,
275
- isMessagesModalVisible: false,
276
- isConfirmExitModalVisible: false,
277
- isConfirmHereModalVisible: false,
278
- isShareEventModalVisible: false,
279
- isLoadingModalVisible: false,
280
- recordingMediaOptions: 'video',
281
- recordingAudioOptions: 'all',
282
- recordingVideoOptions: 'all',
283
- recordingVideoType: 'fullDisplay',
284
- recordingVideoOptimized: false,
285
- recordingDisplayType: 'video',
286
- recordingAddHLS: true,
287
- recordingNameTags: true,
288
- recordingBackgroundColor: '#83c0e9',
289
- recordingNameTagsColor: '#ffffff',
290
- recordingAddText: false,
291
- recordingCustomText: 'Add Text',
292
- recordingCustomTextPosition: 'top',
293
- recordingCustomTextColor: '#ffffff',
294
- recordingOrientationVideo: 'landscape',
295
- clearedToResume: true,
296
- clearedToRecord: true,
297
- recordState: 'green',
298
- showRecordButtons: false,
299
- recordingProgressTime: '00:00:00',
300
- audioSwitching: false,
301
- videoSwitching: false,
302
- videoAlreadyOn: false,
303
- audioAlreadyOn: false,
304
- componentSizes: { mainHeight: 0, otherHeight: 0, mainWidth: 0, otherWidth: 0 },
305
- hasCameraPermission: false,
306
- hasAudioPermission: false,
307
- transportCreated: false,
308
- transportCreatedVideo: false,
309
- transportCreatedAudio: false,
310
- transportCreatedScreen: false,
311
- producerTransport: null,
312
- videoProducer: null,
313
- params: {},
314
- videoParams: {},
315
- audioParams: {},
316
- audioProducer: null,
317
- consumerTransports: [],
318
- consumingTransports: [],
319
- // Polls
320
- polls: [],
321
- poll: null,
322
- isPollModalVisible: false,
323
- // Background
324
- customImage: '',
325
- selectedImage: '',
326
- segmentVideo: null,
327
- selfieSegmentation: null,
328
- pauseSegmentation: false,
329
- processedStream: null,
330
- keepBackground: false,
331
- backgroundHasChanged: false,
332
- virtualStream: null,
333
- mainCanvas: null,
334
- prevKeepBackground: false,
335
- appliedBackground: false,
336
- isBackgroundModalVisible: false,
337
- autoClickBackground: false,
338
- // Breakout Rooms
339
- breakoutRooms: [],
340
- currentRoomIndex: 0,
341
- canStartBreakout: false,
342
- breakOutRoomStarted: false,
343
- breakOutRoomEnded: false,
344
- hostNewRoom: -1,
345
- limitedBreakRoom: [],
346
- mainRoomsLength: 0,
347
- memberRoom: -1,
348
- isBreakoutRoomsModalVisible: false,
349
- // Whiteboard
350
- whiteboardUsers: [],
351
- currentWhiteboardIndex: 0,
352
- canStartWhiteboard: false,
353
- whiteboardStarted: false,
354
- whiteboardEnded: false,
355
- whiteboardLimit: 4,
356
- isWhiteboardModalVisible: false,
357
- isConfigureWhiteboardModalVisible: false,
358
- shapes: [],
359
- useImageBackground: true,
360
- redoStack: [],
361
- undoStack: [],
362
- canvasStream: null,
363
- canvasWhiteboard: null,
364
- // Screenboard
365
- canvasScreenboard: null,
366
- processedScreenStream: null,
367
- annotateScreenStream: false,
368
- mainScreenCanvas: null,
369
- isScreenboardModalVisible: false,
370
- // Control Buttons
371
- micActive: false,
372
- videoActive: false,
373
- screenShareActive: false,
374
- endCallActive: false,
375
- participantsActive: false,
376
- menuActive: false,
377
- commentsActive: false,
378
- };
379
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbC12YWx1ZXMudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9tZXRob2RzL3V0aWxzL2luaXRpYWwtdmFsdWVzLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMFlBLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUEyQjtJQUN4RCx1Q0FBdUM7SUFFdkMsUUFBUSxFQUFFLEVBQUU7SUFDWixNQUFNLEVBQUUsRUFBRTtJQUNWLGFBQWEsRUFBRSxFQUFFO0lBQ2pCLE9BQU8sRUFBRSxHQUFHO0lBQ1osTUFBTSxFQUFFLFdBQVc7SUFDbkIsb0JBQW9CLEVBQUU7UUFDcEIsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRTtRQUN4RCxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFO1FBQ2pELEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUU7UUFDbkQsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRTtLQUNqRDtJQUNELFlBQVksRUFBRSxLQUFLO0lBQ25CLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLGlCQUFpQixFQUFFLEtBQUs7SUFDeEIsa0JBQWtCLEVBQUUsT0FBTztJQUMzQixxQkFBcUIsRUFBRSxLQUFLO0lBQzVCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFlBQVksRUFBRSxFQUFFO0lBQ2hCLG9CQUFvQixFQUFFLEVBQUU7SUFDeEIsbUJBQW1CLEVBQUUsQ0FBQztJQUN0QixrQkFBa0IsRUFBRSxFQUFFO0lBRXRCLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLFdBQVcsRUFB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ekIsa0JBQWtCLEVBQUUsS0FBSztJQUN6QixpQkFBaUIsRUFBRSxLQUFLO0lBQ3hCLGVBQWUsRUFBRSxLQUFLO0lBQ3RCLGVBQWUsRUFBRSxDQUFDO0lBQ2xCLHdCQUF3QixFQUFFLEtBQUs7SUFDL0IsaUNBQWlDLEVBQUUsS0FBSztJQUN4QyxNQUFNLEVBQUUsRUFBRTtJQUNWLGtCQUFrQixFQUFFLElBQUk7SUFDeEIsU0FBUyxFQUFFLEVBQUU7SUFDYixTQUFTLEVBQUUsRUFBRTtJQUNiLFlBQVksRUFBRSxJQUFJO0lBQ2xCLGdCQUFnQixFQUFFLElBQUk7SUFFdEIsY0FBYztJQUNkLGlCQUFpQixFQUFFLElBQUk7SUFDdkIscUJBQXFCLEVBQUUsSUFBSTtJQUMzQixvQkFBb0IsRUFBRSxLQUFLO0lBQzNCLGdCQUFnQixFQUFFLElBQUk7SUFDdEIseUJBQXlCLEVBQUUsS0FBSztJQUVoQyxrQkFBa0I7SUFDbEIsU0FBUyxFQUFFLEtBQUs7SUFDaEIsV0FBVyxFQUFFLEtBQUs7SUFDbEIsaUJBQWlCLEVBQUUsS0FBSztJQUN4QixhQUFhLEVBQUUsS0FBSztJQUNwQixrQkFBa0IsRUFBRSxLQUFLO0lBQ3pCLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLGNBQWMsRUFBRSxLQUFLO0NBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9kdWNlciwgUHJvZHVjZXJPcHRpb25zLCBSdHBDYXBhYmlsaXRpZXMsIFRyYW5zcG9ydCB9IGZyb20gJ21lZGlhc291cC1jbGllbnQvbGliL3R5cGVzJztcbmltcG9ydCB7XG4gIEFQYXJhbXNUeXBlLFxuICBDb0hvc3RSZXNwb25zaWJpbGl0eSxcbiAgRXZlbnRUeXBlLFxuICBIUGFyYW1zVHlwZSxcbiAgUGFydGljaXBhbnQsXG4gIFBvbGwsXG4gIFNjcmVlblBhcmFtc1R5cGUsXG4gIFN0cmVhbSxcbiAgVmlkQ29ucyxcbiAgVlBhcmFtc1R5cGUsXG4gIENvbnN1bWVTb2NrZXQsXG4gIE1lZXRpbmdSb29tUGFyYW1zLFxuICBVc2VyUmVjb3JkaW5nUGFyYW1zLFxuICBTY3JlZW5TdGF0ZSxcbiAgQXVkaW9EZWNpYmVscyxcbiAgQ3VzdG9tTWVkaWFDb21wb25lbnQsXG4gIEdyaWRTaXplcyxcbiAgTWVzc2FnZSxcbiAgV2FpdGluZ1Jvb21QYXJ0aWNpcGFudCxcbiAgUmVxdWVzdCxcbiAgQnJlYWtvdXRQYXJ0aWNpcGFudCxcbiAgV2hpdGVib2FyZFVzZXIsXG4gIFNoYXBlLFxuICBSZXNwb25zZUpvaW5Sb29tLFxuICBDb21wb25lbnRTaXplcyxcbiAgVHJhbnNwb3J0IGFzIFRyYW5zcG9ydFR5cGUsXG59IGZyb20gJy4uLy4uL0B0eXBlcy90eXBlcyc7XG5pbXBvcnQgeyBEZXZpY2UgfSBmcm9tICdtZWRpYXNvdXAtY2xpZW50L2xpYi90eXBlcyc7XG5pbXBvcnQgeyBTb2NrZXQgfSBmcm9tICdzb2NrZXQuaW8tY2xpZW50JztcbmltcG9ydCB7IFNlbGZpZVNlZ21lbnRhdGlvbiB9IGZyb20gJ0BtZWRpYXBpcGUvc2VsZmllX3NlZ21lbnRhdGlvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5pdGlhbFZhbHVlc1N0YXRlVHlwZSB7XG4gIHJvb21OYW1lOiBzdHJpbmc7XG4gIG1lbWJlcjogc3RyaW5nO1xuICBhZG1pblBhc3Njb2RlOiBzdHJpbmc7XG4gIGlzbGV2ZWw6IHN0cmluZztcbiAgY29Ib3N0OiBzdHJpbmc7XG4gIGNvSG9zdFJlc3BvbnNpYmlsaXR5OiBDb0hvc3RSZXNwb25zaWJpbGl0eVtdO1xuICB5b3VBcmVDb0hvc3Q6IGJvb2xlYW47XG4gIHlvdUFyZUhvc3Q6IGJvb2xlYW47XG4gIGNvbmZpcm1lZFRvUmVjb3JkOiBib29sZWFuO1xuICBtZWV0aW5nRGlzcGxheVR5cGU6IHN0cmluZztcbiAgbWVldGluZ1ZpZGVvT3B0aW1pemVkOiBib29sZWFuO1xuICBldmVudFR5cGU6IEV2ZW50VHlwZTtcbiAgcGFydGljaXBhbnRzOiBQYXJ0aWNpcGFudFtdO1xuICBmaWx0ZXJlZFBhcnRpY2lwYW50czogUGFydGljaXBhbnRbXTtcbiAgcGFydGljaXBhbnRzQ291bnRlcjogbnVtYmVyO1xuICBwYXJ0aWNpcGFudHNGaWx0ZXI6IHN0cmluZztcblxuICB2YWxpZGF0ZWQ6IGJvb2xlYW47XG4gIGxvY2FsVUlNb2RlOiBib29sZWFuO1xuICBzb2NrZXQ6IFNvY2tldDtcbiAgcm9vbURhdGE6IFJlc3BvbnNlSm9pblJvb20gfCBudWxsO1xuICBkZXZpY2U6IERldmljZSB8IG51bGw7XG4gIGFwaUtleTogc3RyaW5nO1xuICBhcGlVc2VyTmFtZTogc3RyaW5nO1xuICBhcGlUb2tlbjogc3RyaW5nO1xuICBsaW5rOiBzdHJpbmc7XG5cbiAgY29uc3VtZV9zb2NrZXRzOiBDb25zdW1lU29ja2V0W107XG4gIHJ0cENhcGFiaWxpdGllczogUnRwQ2FwYWJpbGl0aWVzIHwgbnVsbDtcbiAgcm9vbVJlY3ZJUHM6IHN0cmluZ1tdO1xuICBtZWV0aW5nUm9vbVBhcmFtczogTWVldGluZ1Jvb21QYXJhbXMgfCBudWxsO1xuICBpdGVtUGFnZUxpbWl0OiBudW1iZXI7XG4gIGF1ZGlvT25seVJvb206IGJvb2xlYW47XG4gIGFkZEZvckJhc2ljOiBib29sZWFuO1xuICBzY3JlZW5QYWdlTGltaXQ6IG51bWJlcjtcbiAgc2hhcmVTY3JlZW5TdGFydGVkOiBib29sZWFuO1xuICBzaGFyZWQ6IGJvb2xlYW47XG4gIHRhcmdldE9yaWVudGF0aW9uOiBzdHJpbmc7XG4gIHRhcmdldFJlc29sdXRpb246IHN0cmluZztcbiAgdGFyZ2V0UmVzb2x1dGlvbkhvc3Q6IHN0cmluZztcbiAgdmlkQ29uczogVmlkQ29ucztcbiAgZnJhbWVSYXRlOiBudW1iZXI7XG4gIGhQYXJhbXM6IEhQYXJhbXNUeXBlO1xuICB2UGFyYW1zOiBWUGFyYW1zVHlwZTtcbiAgc2NyZWVuUGFyYW1zOiBTY3JlZW5QYXJhbXNUeXBlO1xuICBhUGFyYW1zOiBBUGFyYW1zVHlwZTtcblxuICAvLyBSZWNvcmRpbmcgRmllbGRzXG4gIHJlY29yZGluZ0F1ZGlvUGF1c2VzTGltaXQ6IG51bWJlcjtcbiAgcmVjb3JkaW5nQXVkaW9QYXVzZXNDb3VudDogbnVtYmVyO1xuICByZWNvcmRpbmdBdWRpb1N1cHBvcnQ6IGJvb2xlYW47XG4gIHJlY29yZGluZ0F1ZGlvUGVvcGxlTGltaXQ6IG51bWJlcjtcbiAgcmVjb3JkaW5nQXVkaW9QYXJ0aWNpcGFudHNUaW1lTGltaXQ6IG51bWJlcjtcbiAgcmVjb3JkaW5nVmlkZW9QYXVzZXNDb3VudDogbnVtYmVyO1xuICByZWNvcmRpbmdWaWRlb1BhdXNlc0xpbWl0OiBudW1iZXI7XG4gIHJlY29yZGluZ1ZpZGVvU3VwcG9ydDogYm9vbGVhbjtcbiAgcmVjb3JkaW5nVmlkZW9QZW9wbGVMaW1pdDogbnVtYmVyO1xuICByZWNvcmRpbmdWaWRlb1BhcnRpY2lwYW50c1RpbWVMaW1pdDogbnVtYmVyO1xuICByZWNvcmRpbmdBbGxQYXJ0aWNpcGFudHNTdXBwb3J0OiBib29sZWFuO1xuICByZWNvcmRpbmdWaWRlb1BhcnRpY2lwYW50c1N1cHBvcnQ6IGJvb2xlYW47XG4gIHJlY29yZGluZ0FsbFBhcnRpY2lwYW50c0Z1bGxSb29tU3VwcG9ydDogYm9vbGVhbjtcbiAgcmVjb3JkaW5nVmlkZW9QYXJ0aWNpcGFudHNGdWxsUm9vbVN1cHBvcnQ6IGJvb2xlYW47XG4gIHJlY29yZGluZ1ByZWZlcnJlZE9yaWVudGF0aW9uOiBzdHJpbmc7XG4gIHJlY29yZGluZ1N1cHBvcnRGb3JPdGhlck9yaWVudGF0aW9uOiBib29sZWFuO1xuICByZWNvcmRpbmdNdWx0aUZvcm1hdHNTdXBwb3J0OiBib29sZWFuO1xuXG4gIHVzZXJSZWNvcmRpbmdQYXJhbXM6IFVzZXJSZWNvcmRpbmdQYXJhbXM7XG5cbiAgY2FuUmVjb3JkOiBib29sZWFuO1xuICBzdGFydFJlcG9ydDogYm9vbGVhbjtcbiAgZW5kUmVwb3J0OiBib29sZWFuO1xuICByZWNvcmRUaW1lckludGVydmFsOiBOb2RlSlMuVGltZW91dCB8IG51bGw7XG4gIHJlY29yZFN0YXJ0VGltZTogbnVtYmVyO1xuICByZWNvcmRFbGFwc2VkVGltZTogbnVtYmVyO1xuICBpc1RpbWVyUnVubmluZzogYm9vbGVhbjtcbiAgY2FuUGF1c2VSZXN1bWU6IGJvb2xlYW47XG4gIHJlY29yZENoYW5nZVNlY29uZHM6IG51bWJlcjtcbiAgcGF1c2VMaW1pdDogbnVtYmVyO1xuICBwYXVzZVJlY29yZENvdW50OiBudW1iZXI7XG4gIGNhbkxhdW5jaFJlY29yZDogYm9vbGVhbjtcbiAgc3RvcExhdW5jaFJlY29yZDogYm9vbGVhbjtcblxuICAvLyBSb29tIHByb3BlcnRpZXNcbiAgcGFydGljaXBhbnRzQWxsOiBQYXJ0aWNpcGFudFtdO1xuICBmaXJzdEFsbDogYm9vbGVhbjtcbiAgdXBkYXRlTWFpbldpbmRvdzogYm9vbGVhbjtcbiAgZmlyc3Rfcm91bmQ6IGJvb2xlYW47XG4gIGxhbmRTY2FwZWQ6IGJvb2xlYW47XG4gIGxvY2tfc2NyZWVuOiBib29sZWFuO1xuICBzY3JlZW5JZDogc3RyaW5nO1xuICBhbGxWaWRlb1N0cmVhbXM6IChQYXJ0aWNpcGFudCB8IFN0cmVhbSlbXTtcbiAgbmV3TGltaXRlZFN0cmVhbXM6IChQYXJ0aWNpcGFudCB8IFN0cmVhbSlbXTtcbiAgbmV3TGltaXRlZFN0cmVhbXNJRHM6IHN0cmluZ1tdO1xuICBhY3RpdmVTb3VuZHM6IHN0cmluZ1tdO1xuICBzY3JlZW5TaGFyZUlEU3RyZWFtOiBzdHJpbmc7XG4gIHNjcmVlblNoYXJlTmFtZVN0cmVhbTogc3RyaW5nO1xuICBhZG1pbklEU3RyZWFtOiBzdHJpbmc7XG4gIGFkbWluTmFtZVN0cmVhbTogc3RyaW5nO1xuICB5b3VZb3VTdHJlYW06IChQYXJ0aWNpcGFudCB8IFN0cmVhbSlbXTtcbiAgeW91WW91U3RyZWFtSURzOiBzdHJpbmdbXTtcbiAgbG9jYWxTdHJlYW06IE1lZGlhU3RyZWFtIHwgbnVsbDtcbiAgcmVjb3JkU3RhcnRlZDogYm9vbGVhbjtcbiAgcmVjb3JkUmVzdW1lZDogYm9vbGVhbjtcbiAgcmVjb3JkUGF1c2VkOiBib29sZWFuO1xuICByZWNvcmRTdG9wcGVkOiBib29sZWFuO1xuICBhZG1pblJlc3RyaWN0U2V0dGluZzogYm9vbGVhbjtcbiAgdmlkZW9SZXF1ZXN0U3RhdGU6IHN0cmluZyB8IG51bGw7XG4gIHZpZGVvUmVxdWVzdFRpbWU6IG51bWJlcjtcbiAgdmlkZW9BY3Rpb246IGJvb2xlYW47XG4gIGxvY2FsU3RyZWFtVmlkZW86IE1lZGlhU3RyZWFtIHwgbnVsbDtcbiAgdXNlckRlZmF1bHRWaWRlb0lucHV0RGV2aWNlOiBzdHJpbmc7XG4gIGN1cnJlbnRGYWNpbmdNb2RlOiBzdHJpbmc7XG4gIHByZXZGYWNpbmdNb2RlOiBzdHJpbmc7XG4gIGRlZlZpZGVvSUQ6IHN0cmluZztcbiAgYWxsb3dlZDogYm9vbGVhbjtcbiAgZGlzcEFjdGl2ZU5hbWVzOiBzdHJpbmdbXTtcbiAgYWN0aXZlTmFtZXM6IHN0cmluZ1tdO1xuICBwcmV2QWN0aXZlTmFtZXM6IHN0cmluZ1tdO1xuICBwX2FjdGl2ZU5hbWVzOiBzdHJpbmdbXTtcbiAgcF9kaXNwQWN0aXZlTmFtZXM6IHN0cmluZ1tdO1xuICBtZW1iZXJzUmVjZWl2ZWQ6IGJvb2xlYW47XG4gIGRlZmVyU2NyZWVuUmVjZWl2ZWQ6IGJvb2xlYW47XG4gIGhvc3RGaXJzdFN3aXRjaDogYm9vbGVhbjtcbiAgbWljQWN0aW9uOiBib29sZWFuO1xuICBzY3JlZW5BY3Rpb246IGJvb2xlYW47XG4gIGNoYXRBY3Rpb246IGJvb2xlYW47XG4gIGF1ZGlvUmVxdWVzdFN0YXRlOiBzdHJpbmcgfCBudWxsO1xuICBzY3JlZW5SZXF1ZXN0U3RhdGU6IHN0cmluZyB8IG51bGw7XG4gIGNoYXRSZXF1ZXN0U3RhdGU6IHN0cmluZyB8IG51bGw7XG4gIGF1ZGlvUmVxdWVzdFRpbWU6IG51bWJlcjtcbiAgc2NyZWVuUmVxdWVzdFRpbWU6IG51bWJlcjtcbiAgY2hhdFJlcXVlc3RUaW1lOiBudW1iZXI7XG4gIHVwZGF0ZVJlcXVlc3RJbnRlcnZhbFNlY29uZHM6IG51bWJlcjtcbiAgb2xkU291bmRJZHM6IHN0cmluZ1tdO1xuICBob3N0TGFiZWw6IHN0cmluZztcbiAgbWFpblNjcmVlbkZpbGxlZDogYm9vbGVhbjtcbiAgbG9jYWxTdHJlYW1TY3JlZW46IE1lZGlhU3RyZWFtIHwgbnVsbDtcbiAgc2NyZWVuQWxyZWFkeU9uOiBib29sZWFuO1xuICBjaGF0QWxyZWFkeU9uOiBib29sZWFuO1xuICByZWRpcmVjdFVSTDogc3RyaW5nO1xuICBvbGRBbGxTdHJlYW1zOiAoUGFydGljaXBhbnQgfCBTdHJlYW0pW107XG4gIGFkbWluVmlkSUQ6IHN0cmluZztcbiAgc3RyZWFtTmFtZXM6IFN0cmVhbVtdO1xuICBub25fYWxWaWRlb1N0cmVhbXM6IFBhcnRpY2lwYW50W107XG4gIHNvcnRBdWRpb0xvdWRuZXNzOiBib29sZWFuO1xuICBhdWRpb0RlY2liZWxzOiBBdWRpb0RlY2liZWxzW107XG4gIG1peGVkX2FsVmlkZW9TdHJlYW1zOiAoUGFydGljaXBhbnQgfCBTdHJlYW0pW107XG4gIG5vbl9hbFZpZGVvU3RyZWFtc19tdXRlZDogUGFydGljaXBhbnRbXTtcbiAgcGFnaW5hdGVkU3RyZWFtczogKFBhcnRpY2lwYW50IHwgU3RyZWFtKVtdW107XG4gIGxvY2FsU3RyZWFtQXVkaW86IE1lZGlhU3RyZWFtIHwgbnVsbDtcbiAgZGVmQXVkaW9JRDogc3RyaW5nO1xuICB1c2VyRGVmYXVsdEF1ZGlvSW5wdXREZXZpY2U6IHN0cmluZztcbiAgdXNlckRlZmF1bHRBdWRpb091dHB1dERldmljZTogc3RyaW5nO1xuICBwcmV2QXVkaW9JbnB1dERldmljZTogc3RyaW5nO1xuICBwcmV2VmlkZW9JbnB1dERldmljZTogc3RyaW5nO1xuICBhdWRpb1BhdXNlZDogYm9vbGVhbjtcbiAgbWFpblNjcmVlblBlcnNvbjogc3RyaW5nO1xuICBhZG1pbk9uTWFpblNjcmVlbjogYm9vbGVhbjtcbiAgc2NyZWVuU3RhdGVzOiBTY3JlZW5TdGF0ZVtdO1xuICBwcmV2U2NyZWVuU3RhdGVzOiBTY3JlZW5TdGF0ZVtdO1xuICB1cGRhdGVEYXRlU3RhdGU6IG51bWJlciB8IG51bGw7XG4gIGxhc3RVcGRhdGU6IG51bWJlciB8IG51bGw7XG4gIG5Gb3JSZWFkanVzdFJlY29yZDogbnVtYmVyO1xuICBmaXhlZFBhZ2VMaW1pdDogbnVtYmVyO1xuICByZW1vdmVBbHRHcmlkOiBib29sZWFuO1xuICBuRm9yUmVhZGp1c3Q6IG51bWJlcjtcbiAgcmVvcmRlckludGVydmFsOiBudW1iZXI7XG4gIGZhc3RSZW9yZGVySW50ZXJ2YWw6IG51bWJlcjtcbiAgbGFzdFJlb3JkZXJUaW1lOiBudW1iZXI7XG4gIGF1ZFN0cmVhbU5hbWVzOiBTdHJlYW1bXTtcbiAgY3VycmVudFVzZXJQYWdlOiBudW1iZXI7XG4gIG1haW5IZWlnaHRXaWR0aDogbnVtYmVyO1xuICBwcmV2TWFpbkhlaWdodFdpZHRoOiBudW1iZXI7XG4gIHByZXZEb1BhZ2luYXRlOiBib29sZWFuO1xuICBkb1BhZ2luYXRlOiBib29sZWFuO1xuICBzaGFyZUVuZGVkOiBib29sZWFuO1xuICBsU3RyZWFtczogKFBhcnRpY2lwYW50IHwgU3RyZWFtKVtdO1xuICBjaGF0UmVmU3RyZWFtczogKFBhcnRpY2lwYW50IHwgU3RyZWFtKVtdO1xuICBjb250cm9sSGVpZ2h0OiBudW1iZXI7XG4gIGlzV2lkZVNjcmVlbjogYm9vbGVhbjtcbiAgaXNNZWRpdW1TY3JlZW46IGJvb2xlYW47XG4gIGlzU21hbGxTY3JlZW46IGJvb2xlYW47XG4gIGFkZEdyaWQ6IGJvb2xlYW47XG4gIGFkZEFsdEdyaWQ6IGJvb2xlYW47XG4gIGdyaWRSb3dzOiBudW1iZXI7XG4gIGdyaWRDb2xzOiBudW1iZXI7XG4gIGFsdEdyaWRSb3dzOiBudW1iZXI7XG4gIGFsdEdyaWRDb2xzOiBudW1iZXI7XG4gIG51bWJlclBhZ2VzOiBudW1iZXI7XG4gIGN1cnJlbnRTdHJlYW1zOiAoUGFydGljaXBhbnQgfCBTdHJlYW0pW107XG4gIHNob3dNaW5pVmlldzogYm9vbGVhbjtcbiAgblN0cmVhbTogTWVkaWFTdHJlYW0gfCBudWxsO1xuICBkZWZlcl9yZWNlaXZlOiBib29sZWFuO1xuICBhbGxBdWRpb1N0cmVhbXM6IChQYXJ0aWNpcGFudCB8IFN0cmVhbSlbXTtcbiAgcmVtb3RlU2NyZWVuU3RyZWFtOiBTdHJlYW1bXTtcbiAgc2NyZWVuUHJvZHVjZXI6IFByb2R1Y2VyIHwgbnVsbDtcbiAgZ290QWxsVmlkczogYm9vbGVhbjtcbiAgcGFnaW5hdGlvbkhlaWdodFdpZHRoOiBudW1iZXI7XG4gIHBhZ2luYXRpb25EaXJlY3Rpb246IHN0cmluZztcbiAgZ3JpZFNpemVzOiBHcmlkU2l6ZXM7XG4gIHNjcmVlbkZvcmNlRnVsbERpc3BsYXk6IGJvb2xlYW47XG4gIG1haW5HcmlkU3RyZWFtOiBDdXN0b21NZWRpYUNvbXBvbmVudFtdO1xuICBvdGhlckdyaWRTdHJlYW1zOiBDdXN0b21NZWRpYUNvbXBvbmVudFtdW107XG4gIGF1ZGlvT25seVN0cmVhbXM6IEN1c3RvbU1lZGlhQ29tcG9uZW50W107XG4gIHZpZGVvSW5wdXRzOiBNZWRpYURldmljZUluZm9bXTtcbiAgYXVkaW9JbnB1dHM6IE1lZGlhRGV2aWNlSW5mb1tdO1xuICBtZWV0aW5nUHJvZ3Jlc3NUaW1lOiBzdHJpbmc7XG4gIG1lZXRpbmdFbGFwc2VkVGltZTogbnVtYmVyO1xuICByZWZfcGFydGljaXBhbnRzOiBQYXJ0aWNpcGFudFtdO1xuXG4gIC8vIE5ldyBmaWVsZHMgcmVsYXRlZCB0byBtZXNzYWdpbmcsIGV2ZW50cywgbW9kYWxzLCBhbmQgb3RoZXIgVUkgc3RhdGVzXG4gIG1lc3NhZ2VzOiBNZXNzYWdlW107XG4gIHN0YXJ0RGlyZWN0TWVzc2FnZTogYm9vbGVhbjtcbiAgZGlyZWN0TWVzc2FnZURldGFpbHM6IFBhcnRpY2lwYW50IHwgbnVsbDtcbiAgc2hvd01lc3NhZ2VzQmFkZ2U6IGJvb2xlYW47XG4gIGF1ZGlvU2V0dGluZzogc3RyaW5nO1xuICB2aWRlb1NldHRpbmc6IHN0cmluZztcbiAgc2NyZWVuc2hhcmVTZXR0aW5nOiBzdHJpbmc7XG4gIGNoYXRTZXR0aW5nOiBzdHJpbmc7XG4gIGRpc3BsYXlPcHRpb246IHN0cmluZztcbiAgYXV0b1dhdmU6IGJvb2xlYW47XG4gIGZvcmNlRnVsbERpc3BsYXk6IGJvb2xlYW47XG4gIHByZXZGb3JjZUZ1bGxEaXNwbGF5OiBib29sZWFuO1xuICBwcmV2TWVldGluZ0Rpc3BsYXlUeXBlOiBzdHJpbmc7XG4gIHdhaXRpbmdSb29tRmlsdGVyOiBzdHJpbmc7XG4gIHdhaXRpbmdSb29tTGlzdDogV2FpdGluZ1Jvb21QYXJ0aWNpcGFudFtdO1xuICB3YWl0aW5nUm9vbUNvdW50ZXI6IG51bWJlcjtcbiAgZmlsdGVyZWRXYWl0aW5nUm9vbUxpc3Q6IFdhaXRpbmdSb29tUGFydGljaXBhbnRbXTtcbiAgcmVxdWVzdEZpbHRlcjogc3RyaW5nO1xuICByZXF1ZXN0TGlzdDogUmVxdWVzdFtdO1xuICByZXF1ZXN0Q291bnRlcjogbnVtYmVyO1xuICBmaWx0ZXJlZFJlcXVlc3RMaXN0OiBSZXF1ZXN0W107XG4gIHRvdGFsUmVxV2FpdDogbnVtYmVyO1xuICBhbGVydFZpc2libGU6IGJvb2xlYW47XG4gIGFsZXJ0TWVzc2FnZTogc3RyaW5nO1xuICBhbGVydFR5cGU6ICdzdWNjZXNzJyB8ICdkYW5nZXInO1xuICBhbGVydER1cmF0aW9uOiBudW1iZXI7XG4gIHByb2dyZXNzVGltZXJWaXNpYmxlOiBib29sZWFuO1xuICBwcm9ncmVzc1RpbWVyVmFsdWU6IG51bWJlcjtcbiAgaXNNZW51TW9kYWxWaXNpYmxlOiBib29sZWFuO1xuICBpc1JlY29yZGluZ01vZGFsVmlzaWJsZTogYm9vbGVhbjtcbiAgaXNTZXR0aW5nc01vZGFsVmlzaWJsZTogYm9vbGVhbjtcbiAgaXNSZXF1ZXN0c01vZGFsVmlzaWJsZTogYm9vbGVhbjtcbiAgaXNXYWl0aW5nTW9kYWxWaXNpYmxlOiBib29sZWFuO1xuICBpc0NvSG9zdE1vZGFsVmlzaWJsZTogYm9vbGVhbjtcbiAgaXNNZWRpYVNldHRpbmdzTW9kYWxWaXNpYmxlOiBib29sZWFuO1xuICBpc0Rpc3BsYXlTZXR0aW5nc01vZGFsVmlzaWJsZTogYm9vbGVhbjtcbiAgaXNQYXJ0aWNpcGFudHNNb2RhbFZpc2libGU6IGJvb2xlYW47XG4gIGlzTWVzc2FnZXNNb2RhbFZpc2libGU6IGJvb2xlYW47XG4gIGlzQ29uZmlybUV4aXRNb2RhbFZpc2libGU6IGJvb2xlYW47XG4gIGlzQ29uZmlybUhlcmVNb2RhbFZpc2libGU6IGJvb2xlYW47XG4gIGlzU2hhcmVFdmVudE1vZGFsVmlzaWJsZTogYm9vbGVhbjtcbiAgaXNMb2FkaW5nTW9kYWxWaXNpYmxlOiBib29sZWFuO1xuXG4gIHJlY29yZGluZ01lZGlhT3B0aW9uczogc3RyaW5nO1xuICByZWNvcmRpbmdBdWRpb09wdGlvbnM6IHN0cmluZztcbiAgcmVjb3JkaW5nVmlkZW9PcHRpb25zOiBzdHJpbmc7XG4gIHJlY29yZGluZ1ZpZGVvVHlwZTogc3RyaW5nO1xuICByZWNvcmRpbmdWaWRlb09wdGltaXplZDogYm9vbGVhbjtcbiAgcmVjb3JkaW5nRGlzcGxheVR5cGU6ICd2aWRlbycgfCAnbWVkaWEnIHwgJ2FsbCc7XG4gIHJlY29yZGluZ0FkZEhMUzogYm9vbGVhbjtcbiAgcmVjb3JkaW5nTmFtZVRhZ3M6IGJvb2xlYW47XG4gIHJlY29yZGluZ0JhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICByZWNvcmRpbmdOYW1lVGFnc0NvbG9yOiBzdHJpbmc7XG4gIHJlY29yZGluZ0FkZFRleHQ6IGJvb2xlYW47XG4gIHJlY29yZGluZ0N1c3RvbVRleHQ6IHN0cmluZztcbiAgcmVjb3JkaW5nQ3VzdG9tVGV4dFBvc2l0aW9uOiBzdHJpbmc7XG4gIHJlY29yZGluZ0N1c3RvbVRleHRDb2xvcjogc3RyaW5nO1xuICByZWNvcmRpbmdPcmllbnRhdGlvblZpZGVvOiBzdHJpbmc7XG4gIGNsZWFyZWRUb1Jlc3VtZTogYm9vbGVhbjtcbiAgY2xlYXJlZFRvUmVjb3JkOiBib29sZWFuO1xuICByZWNvcmRTdGF0ZTogc3RyaW5nO1xuICBzaG93UmVjb3JkQnV0dG9uczogYm9vbGVhbjtcbiAgcmVjb3JkaW5nUHJvZ3Jlc3NUaW1lOiBzdHJpbmc7XG4gIGF1ZGlvU3dpdGNoaW5nOiBib29sZWFuO1xuICB2aWRlb1N3aXRjaGluZzogYm9vbGVhbjtcbiAgdmlkZW9BbHJlYWR5T246IGJvb2xlYW47XG4gIGF1ZGlvQWxyZWFkeU9uOiBib29sZWFuO1xuICBjb21wb25lbnRTaXplczogQ29tcG9uZW50U2l6ZXM7XG4gIGhhc0NhbWVyYVBlcm1pc3Npb246IGJvb2xlYW47XG4gIGhhc0F1ZGlvUGVybWlzc2lvbjogYm9vbGVhbjtcbiAgdHJhbnNwb3J0Q3JlYXRlZDogYm9vbGVhbjtcbiAgdHJhbnNwb3J0Q3JlYXRlZFZpZGVvOiBib29sZWFuO1xuICB0cmFuc3BvcnRDcmVhdGVkQXVkaW86IGJvb2xlYW47XG4gIHRyYW5zcG9ydENyZWF0ZWRTY3JlZW46IGJvb2xlYW47XG4gIHByb2R1Y2VyVHJhbnNwb3J0OiBUcmFuc3BvcnQgfCBudWxsO1xuICB2aWRlb1Byb2R1Y2VyOiBQcm9kdWNlciB8IG51bGw7XG4gIHBhcmFtczogUHJvZHVjZXJPcHRpb25zO1xuICB2aWRlb1BhcmFtczogUHJvZHVjZXJPcHRpb25zO1xuICBhdWRpb1BhcmFtczogUHJvZHVjZXJPcHRpb25zO1xuICBhdWRpb1Byb2R1Y2VyOiBQcm9kdWNlciB8IG51bGw7XG4gIGNvbnN1bWVyVHJhbnNwb3J0czogVHJhbnNwb3J0VHlwZVtdO1xuICBjb25zdW1pbmdUcmFuc3BvcnRzOiBzdHJpbmdbXTtcblxuICAvLyBQb2xsc1xuICBwb2xsczogUG9sbFtdO1xuICBwb2xsOiBQb2xsIHwgbnVsbDtcbiAgaXNQb2xsTW9kYWxWaXNpYmxlOiBib29sZWFuO1xuXG4gIC8vIEJhY2tncm91bmRcbiAgY3VzdG9tSW1hZ2U6IHN0cmluZztcbiAgc2VsZWN0ZWRJbWFnZTogc3RyaW5nO1xuICBzZWdtZW50VmlkZW86IE1lZGlhU3RyZWFtIHwgbnVsbDtcbiAgc2VsZmllU2VnbWVudGF0aW9uOiBTZWxmaWVTZWdtZW50YXRpb24gfCBudWxsO1xuICBwYXVzZVNlZ21lbnRhdGlvbjogYm9vbGVhbjtcbiAgcHJvY2Vzc2VkU3RyZWFtOiBNZWRpYVN0cmVhbSB8IG51bGw7XG4gIGtlZXBCYWNrZ3JvdW5kOiBib29sZWFuO1xuICBiYWNrZ3JvdW5kSGFzQ2hhbmdlZDogYm9vbGVhbjtcbiAgdmlydHVhbFN0cmVhbTogTWVkaWFTdHJlYW0gfCBudWxsO1xuICBtYWluQ2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGw7XG4gIHByZXZLZWVwQmFja2dyb3VuZDogYm9vbGVhbjtcbiAgYXBwbGllZEJhY2tncm91bmQ6IGJvb2xlYW47XG4gIGlzQmFja2dyb3VuZE1vZGFsVmlzaWJsZTogYm9vbGVhbjtcbiAgYXV0b0NsaWNrQmFja2dyb3VuZDogYm9vbGVhbjtcblxuICAvLyBCcmVha291dCBSb29tc1xuICBicmVha291dFJvb21zOiBCcmVha291dFBhcnRpY2lwYW50W11bXTtcbiAgY3VycmVudFJvb21JbmRleDogbnVtYmVyO1xuICBjYW5TdGFydEJyZWFrb3V0OiBib29sZWFuO1xuICBicmVha091dFJvb21TdGFydGVkOiBib29sZWFuO1xuICBicmVha091dFJvb21FbmRlZDogYm9vbGVhbjtcbiAgaG9zdE5ld1Jvb206IG51bWJlcjtcbiAgbGltaXRlZEJyZWFrUm9vbTogQnJlYWtvdXRQYXJ0aWNpcGFudFtdO1xuICBtYWluUm9vbXNMZW5ndGg6IG51bWJlcjtcbiAgbWVtYmVyUm9vbTogbnVtYmVyO1xuICBpc0JyZWFrb3V0Um9vbXNNb2RhbFZpc2libGU6IGJvb2xlYW47XG5cbiAgLy8gV2hpdGVib2FyZFxuICB3aGl0ZWJvYXJkVXNlcnM6IFdoaXRlYm9hcmRVc2VyW107XG4gIGN1cnJlbnRXaGl0ZWJvYXJkSW5kZXg6IG51bWJlcjtcbiAgY2FuU3RhcnRXaGl0ZWJvYXJkOiBib29sZWFuO1xuICB3aGl0ZWJvYXJkU3RhcnRlZDogYm9vbGVhbjtcbiAgd2hpdGVib2FyZEVuZGVkOiBib29sZWFuO1xuICB3aGl0ZWJvYXJkTGltaXQ6IG51bWJlcjtcbiAgaXNXaGl0ZWJvYXJkTW9kYWxWaXNpYmxlOiBib29sZWFuO1xuICBpc0NvbmZpZ3VyZVdoaXRlYm9hcmRNb2RhbFZpc2libGU6IGJvb2xlYW47XG4gIHNoYXBlczogU2hhcGVbXTtcbiAgdXNlSW1hZ2VCYWNrZ3JvdW5kOiBib29sZWFuO1xuICByZWRvU3RhY2s6IFNoYXBlW107XG4gIHVuZG9TdGFjazogc3RyaW5nW107XG4gIGNhbnZhc1N0cmVhbTogTWVkaWFTdHJlYW0gfCBudWxsO1xuICBjYW52YXNXaGl0ZWJvYXJkOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGw7XG5cbiAgLy8gU2NyZWVuYm9hcmRcbiAgY2FudmFzU2NyZWVuYm9hcmQ6IEhUTUxDYW52YXNFbGVtZW50IHwgbnVsbDtcbiAgcHJvY2Vzc2VkU2NyZWVuU3RyZWFtOiBNZWRpYVN0cmVhbSB8IG51bGw7XG4gIGFubm90YXRlU2NyZWVuU3RyZWFtOiBib29sZWFuO1xuICBtYWluU2NyZWVuQ2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGw7XG4gIGlzU2NyZWVuYm9hcmRNb2RhbFZpc2libGU6IGJvb2xlYW47XG5cbiAgLy8gQ29udHJvbCBCdXR0b25zXG4gIG1pY0FjdGl2ZTogYm9vbGVhbjtcbiAgdmlkZW9BY3RpdmU6IGJvb2xlYW47XG4gIHNjcmVlblNoYXJlQWN0aXZlOiBib29sZWFuO1xuICBlbmRDYWxsQWN0aXZlOiBib29sZWFuO1xuICBwYXJ0aWNpcGFudHNBY3RpdmU6IGJvb2xlYW47XG4gIG1lbnVBY3RpdmU6IGJvb2xlYW47XG4gIGNvbW1lbnRzQWN0aXZlOiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgaW5pdGlhbFZhbHVlc1N0YXRlOiBJbml0aWFsVmFsdWVzU3RhdGVUeXBlID0ge1xuICAvLyBUaGUgZm9sbG93aW5nIGFyZSB0aGUgaW5pdGlhbCB2YWx1ZXNcblxuICByb29tTmFtZTogJycsXG4gIG1lbWJlcjogJycsXG4gIGFkbWluUGFzc2NvZGU6ICcnLFxuICBpc2xldmVsOiAnMScsXG4gIGNvSG9zdDogJ05vIGNvSG9zdCcsXG4gIGNvSG9zdFJlc3BvbnNpYmlsaXR5OiBbXG4gICAgeyBuYW1lOiAncGFydGljaXBhbnRzJywgdmFsdWU6IGZhbHNlLCBkZWRpY2F0ZWQ6IGZhbHNlIH0sXG4gICAgeyBuYW1lOiAnbWVkaWEnLCB2YWx1ZTogZmFsc2UsIGRlZGljYXRlZDogZmFsc2UgfSxcbiAgICB7IG5hbWU6ICd3YWl0aW5nJywgdmFsdWU6IGZhbHNlLCBkZWRpY2F0ZWQ6IGZhbHNlIH0sXG4gICAgeyBuYW1lOiAnY2hhdCcsIHZhbHVlOiBmYWxzZSwgZGVkaWNhdGVkOiBmYWxzZSB9LFxuICBdLFxuICB5b3VBcmVDb0hvc3Q6IGZhbHNlLFxuICB5b3VBcmVIb3N0OiBmYWxzZSxcbiAgY29uZmlybWVkVG9SZWNvcmQ6IGZhbHNlLFxuICBtZWV0aW5nRGlzcGxheVR5cGU6ICdtZWRpYScsXG4gIG1lZXRpbmdWaWRlb09wdGltaXplZDogZmFsc2UsXG4gIGV2ZW50VHlwZTogJ3dlYmluYXInLFxuICBwYXJ0aWNpcGFudHM6IFtdLFxuICBmaWx0ZXJlZFBhcnRpY2lwYW50czogW10sXG4gIHBhcnRpY2lwYW50c0NvdW50ZXI6IDAsXG4gIHBhcnRpY2lwYW50c0ZpbHRlcjogJycsXG5cbiAgdmFsaWRhdGVkOiBmYWxzZSxcbiAgbG9jYWxVSU1vZGU6IGZhbHNlLFxuICBzb2NrZXQ6IHt9IGFzIFNvY2tldCxcbiAgcm9vbURhdGE6IG51bGwsXG4gIGRldmljZTogbnVsbCxcbiAgYXBpS2V5OiAnJyxcbiAgYXBpVXNlck5hbWU6ICcnLFxuICBhcGlUb2tlbjogJycsXG4gIGxpbms6ICcnLFxuXG4gIGNvbnN1bWVfc29ja2V0czogW10sXG4gIHJ0cENhcGFiaWxpdGllczogbnVsbCxcbiAgcm9vbVJlY3ZJUHM6IFtdLFxuICBtZWV0aW5nUm9vbVBhcmFtczogbnVsbCxcbiAgaXRlbVBhZ2VMaW1pdDogNCxcbiAgYXVkaW9Pbmx5Um9vbTogZmFsc2UsXG4gIGFkZEZvckJhc2ljOiBmYWxzZSxcbiAgc2NyZWVuUGFnZUxpbWl0OiA0LFxuICBzaGFyZVNjcmVlblN0YXJ0ZWQ6IGZhbHNlLFxuICBzaGFyZWQ6IGZhbHNlLFxuICB0YXJnZXRPcmllbnRhdGlvbjogJ2xhbmRzY2FwZScsXG4gIHRhcmdldFJlc29sdXRpb246ICdzZCcsXG4gIHRhcmdldFJlc29sdXRpb25Ib3N0OiAnc2QnLFxuICB2aWRDb25zOiB7IHdpZHRoOiA2NDAsIGhlaWdodDogMzYwIH0sXG4gIGZyYW1lUmF0ZTogMTAsXG4gIGhQYXJhbXM6IHt9IGFzIEhQYXJhbXNUeXBlLFxuICB2UGFyYW1zOiB7fSBhcyBWUGFyYW1zVHlwZSxcbiAgc2NyZWVuUGFyYW1zOiB7fSBhcyBTY3JlZW5QYXJhbXNUeXBlLFxuICBhUGFyYW1zOiB7fSBhcyBBUGFyYW1zVHlwZSxcblxuICAvLyBJbml0aWFsIFZhbHVlcyBmb3IgTmV3IFJlY29yZGluZyBGaWVsZHNcbiAgcmVjb3JkaW5nQXVkaW9QYXVzZXNMaW1pdDogMCxcbiAgcmVjb3JkaW5nQXVkaW9QYXVzZXNDb3VudDogMCxcbiAgcmVjb3JkaW5nQXVkaW9TdXBwb3J0OiBmYWxzZSxcbiAgcmVjb3JkaW5nQXVkaW9QZW9wbGVMaW1pdDogMCxcbiAgcmVjb3JkaW5nQXVkaW9QYXJ0aWNpcGFudHNUaW1lTGltaXQ6IDAsXG4gIHJlY29yZGluZ1ZpZGVvUGF1c2VzQ291bnQ6IDAsXG4gIHJlY29yZGluZ1ZpZGVvUGF1c2VzTGltaXQ6IDAsXG4gIHJlY29yZGluZ1ZpZGVvU3VwcG9ydDogZmFsc2UsXG4gIHJlY29yZGluZ1ZpZGVvUGVvcGxlTGltaXQ6IDAsXG4gIHJlY29yZGluZ1ZpZGVvUGFydGljaXBhbnRzVGltZUxpbWl0OiAwLFxuICByZWNvcmRpbmdBbGxQYXJ0aWNpcGFudHNTdXBwb3J0OiBmYWxzZSxcbiAgcmVjb3JkaW5nVmlkZW9QYXJ0aWNpcGFudHNTdXBwb3J0OiBmYWxzZSxcbiAgcmVjb3JkaW5nQWxsUGFydGljaXBhbnRzRnVsbFJvb21TdXBwb3J0OiBmYWxzZSxcbiAgcmVjb3JkaW5nVmlkZW9QYXJ0aWNpcGFudHNGdWxsUm9vbVN1cHBvcnQ6IGZhbHNlLFxuICByZWNvcmRpbmdQcmVmZXJyZWRPcmllbnRhdGlvbjogJ2xhbmRzY2FwZScsXG4gIHJlY29yZGluZ1N1cHBvcnRGb3JPdGhlck9yaWVudGF0aW9uOiBmYWxzZSxcbiAgcmVjb3JkaW5nTXVsdGlGb3JtYXRzU3VwcG9ydDogZmFsc2UsXG5cbiAgdXNlclJlY29yZGluZ1BhcmFtczoge1xuICAgIG1haW5TcGVjczoge1xuICAgICAgbWVkaWFPcHRpb25zOiAndmlkZW8nLFxuICAgICAgYXVkaW9PcHRpb25zOiAnYWxsJyxcbiAgICAgIHZpZGVvT3B0aW9uczogJ2FsbCcsXG4gICAgICB2aWRlb1R5cGU6ICdmdWxsRGlzcGxheScsXG4gICAgICB2aWRlb09wdGltaXplZDogZmFsc2UsXG4gICAgICByZWNvcmRpbmdEaXNwbGF5VHlwZTogJ21lZGlhJyxcbiAgICAgIGFkZEhMUzogZmFsc2UsXG4gICAgfSxcbiAgICBkaXNwU3BlY3M6IHtcbiAgICAgIG5hbWVUYWdzOiB0cnVlLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiAnIzAwMDAwMCcsXG4gICAgICBuYW1lVGFnc0NvbG9yOiAnI2ZmZmZmZicsXG4gICAgICBvcmllbnRhdGlvblZpZGVvOiAncG9ydHJhaXQnLFxuICAgIH0sXG4gIH0sXG5cbiAgY2FuUmVjb3JkOiBmYWxzZSxcbiAgc3RhcnRSZXBvcnQ6IGZhbHNlLFxuICBlbmRSZXBvcnQ6IGZhbHNlLFxuICByZWNvcmRUaW1lckludGVydmFsOiBudWxsLFxuICByZWNvcmRTdGFydFRpbWU6IDAsXG4gIHJlY29yZEVsYXBzZWRUaW1lOiAwLFxuICBpc1RpbWVyUnVubmluZzogZmFsc2UsXG4gIGNhblBhdXNlUmVzdW1lOiBmYWxzZSxcbiAgcmVjb3JkQ2hhbmdlU2Vjb25kczogMTUwMDAsXG4gIHBhdXNlTGltaXQ6IDAsXG4gIHBhdXNlUmVjb3JkQ291bnQ6IDAsXG4gIGNhbkxhdW5jaFJlY29yZDogdHJ1ZSxcbiAgc3RvcExhdW5jaFJlY29yZDogZmFsc2UsXG5cbiAgLy8gUm9vbSBwcm9wZXJ0aWVzXG4gIHBhcnRpY2lwYW50c0FsbDogW10sXG4gIGZpcnN0QWxsOiBmYWxzZSxcbiAgdXBkYXRlTWFpbldpbmRvdzogZmFsc2UsXG4gIGZpcnN0X3JvdW5kOiBmYWxzZSxcbiAgbGFuZFNjYXBlZDogZmFsc2UsXG4gIGxvY2tfc2NyZWVuOiBmYWxzZSxcbiAgc2NyZWVuSWQ6ICcnLFxuICBhbGxWaWRlb1N0cmVhbXM6IFtdLFxuICBuZXdMaW1pdGVkU3RyZWFtczogW10sXG4gIG5ld0xpbWl0ZWRTdHJlYW1zSURzOiBbXSxcbiAgYWN0aXZlU291bmRzOiBbXSxcbiAgc2NyZWVuU2hhcmVJRFN0cmVhbTogJycsXG4gIHNjcmVlblNoYXJlTmFtZVN0cmVhbTogJycsXG4gIGFkbWluSURTdHJlYW06ICcnLFxuICBhZG1pbk5hbWVTdHJlYW06ICcnLFxuICB5b3VZb3VTdHJlYW06IFtdLFxuICB5b3VZb3VTdHJlYW1JRHM6IFtdLFxuICBsb2NhbFN0cmVhbTogbnVsbCxcbiAgcmVjb3JkU3RhcnRlZDogZmFsc2UsXG4gIHJlY29yZFJlc3VtZWQ6IGZhbHNlLFxuICByZWNvcmRQYXVzZWQ6IGZhbHNlLFxuICByZWNvcmRTdG9wcGVkOiBmYWxzZSxcbiAgYWRtaW5SZXN0cmljdFNldHRpbmc6IGZhbHNlLFxuICB2aWRlb1JlcXVlc3RTdGF0ZTogbnVsbCxcbiAgdmlkZW9SZXF1ZXN0VGltZTogMCxcbiAgdmlkZW9BY3Rpb246IGZhbHNlLFxuICBsb2NhbFN0cmVhbVZpZGVvOiBudWxsLFxuICB1c2VyRGVmYXVsdFZpZGVvSW5wdXREZXZpY2U6ICcnLFxuICBjdXJyZW50RmFjaW5nTW9kZTogJ3VzZXInLFxuICBwcmV2RmFjaW5nTW9kZTogJ3VzZXInLFxuICBkZWZWaWRlb0lEOiAnJyxcbiAgYWxsb3dlZDogZmFsc2UsXG4gIGRpc3BBY3RpdmVOYW1lczogW10sXG4gIGFjdGl2ZU5hbWVzOiBbXSxcbiAgcHJldkFjdGl2ZU5hbWVzOiBbXSxcbiAgcF9hY3RpdmVOYW1lczogW10sXG4gIHBfZGlzcEFjdGl2ZU5hbWVzOiBbXSxcbiAgbWVtYmVyc1JlY2VpdmVkOiBmYWxzZSxcbiAgZGVmZXJTY3JlZW5SZWNlaXZlZDogZmFsc2UsXG4gIGhvc3RGaXJzdFN3aXRjaDogZmFsc2UsXG4gIG1pY0FjdGlvbjogZmFsc2UsXG4gIHNjcmVlbkFjdGlvbjogZmFsc2UsXG4gIGNoYXRBY3Rpb246IGZhbHNlLFxuICBhdWRpb1JlcXVlc3RTdGF0ZTogbnVsbCxcbiAgc2NyZWVuUmVxdWVzdFN0YXRlOiBudWxsLFxuICBjaGF0UmVxdWVzdFN0YXRlOiBudWxsLFxuICBhdWRpb1JlcXVlc3RUaW1lOiAwLFxuICBzY3JlZW5SZXF1ZXN0VGltZTogMCxcbiAgY2hhdFJlcXVlc3RUaW1lOiAwLFxuICB1cGRhdGVSZXF1ZXN0SW50ZXJ2YWxTZWNvbmRzOiAyNDAsXG4gIG9sZFNvdW5kSWRzOiBbXSxcbiAgaG9zdExhYmVsOiAnSG9zdCcsXG4gIG1haW5TY3JlZW5GaWxsZWQ6IGZhbHNlLFxuICBsb2NhbFN0cmVhbVNjcmVlbjogbnVsbCxcbiAgc2NyZWVuQWxyZWFkeU9uOiBmYWxzZSxcbiAgY2hhdEFscmVhZHlPbjogZmFsc2UsXG4gIHJlZGlyZWN0VVJMOiAnJyxcbiAgb2xkQWxsU3RyZWFtczogW10sXG4gIGFkbWluVmlkSUQ6ICcnLFxuICBzdHJlYW1OYW1lczogW10sXG4gIG5vbl9hbFZpZGVvU3RyZWFtczogW10sXG4gIHNvcnRBdWRpb0xvdWRuZXNzOiBmYWxzZSxcbiAgYXVkaW9EZWNpYmVsczogW10sXG4gIG1peGVkX2FsVmlkZW9TdHJlYW1zOiBbXSxcbiAgbm9uX2FsVmlkZW9TdHJlYW1zX211dGVkOiBbXSxcbiAgcGFnaW5hdGVkU3RyZWFtczogW10sXG4gIGxvY2FsU3RyZWFtQXVkaW86IG51bGwsXG4gIGRlZkF1ZGlvSUQ6ICcnLFxuICB1c2VyRGVmYXVsdEF1ZGlvSW5wdXREZXZpY2U6ICcnLFxuICB1c2VyRGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlOiAnJyxcbiAgcHJldkF1ZGlvSW5wdXREZXZpY2U6ICcnLFxuICBwcmV2VmlkZW9JbnB1dERldmljZTogJycsXG4gIGF1ZGlvUGF1c2VkOiBmYWxzZSxcbiAgbWFpblNjcmVlblBlcnNvbjogJycsXG4gIGFkbWluT25NYWluU2NyZWVuOiBmYWxzZSxcbiAgc2NyZWVuU3RhdGVzOiBbe1xuICAgIG1haW5TY3JlZW5QZXJzb246IFwiXCIsXG4gICAgbWFpblNjcmVlblByb2R1Y2VySWQ6IFwiXCIsXG4gICAgbWFpblNjcmVlbkZpbGxlZDogZmFsc2UsXG4gICAgYWRtaW5Pbk1haW5TY3JlZW46IGZhbHNlLFxuICB9XSxcbiAgcHJldlNjcmVlblN0YXRlczogW3tcbiAgICBtYWluU2NyZWVuUGVyc29uOiBcIlwiLFxuICAgIG1haW5TY3JlZW5Qcm9kdWNlcklkOiBcIlwiLFxuICAgIG1haW5TY3JlZW5GaWxsZWQ6IGZhbHNlLFxuICAgIGFkbWluT25NYWluU2NyZWVuOiBmYWxzZSxcbiAgfV0sXG4gIHVwZGF0ZURhdGVTdGF0ZTogbnVsbCxcbiAgbGFzdFVwZGF0ZTogbnVsbCxcbiAgbkZvclJlYWRqdXN0UmVjb3JkOiAwLFxuICBmaXhlZFBhZ2VMaW1pdDogNCxcbiAgcmVtb3ZlQWx0R3JpZDogZmFsc2UsXG4gIG5Gb3JSZWFkanVzdDogMCxcbiAgcmVvcmRlckludGVydmFsOiAzMDAwMCxcbiAgZmFzdFJlb3JkZXJJbnRlcnZhbDogMTAwMDAsXG4gIGxhc3RSZW9yZGVyVGltZTogMCxcbiAgYXVkU3RyZWFtTmFtZXM6IFtdLFxuICBjdXJyZW50VXNlclBhZ2U6IDAsXG4gIG1haW5IZWlnaHRXaWR0aDogMCxcbiAgcHJldk1haW5IZWlnaHRXaWR0aDogMCxcbiAgcHJldkRvUGFnaW5hdGU6IGZhbHNlLFxuICBkb1BhZ2luYXRlOiBmYWxzZSxcbiAgc2hhcmVFbmRlZDogZmFsc2UsXG4gIGxTdHJlYW1zOiBbXSxcbiAgY2hhdFJlZlN0cmVhbXM6IFtdLFxuICBjb250cm9sSGVpZ2h0OiAwLFxuICBpc1dpZGVTY3JlZW46IGZhbHNlLFxuICBpc01lZGl1bVNjcmVlbjogZmFsc2UsXG4gIGlzU21hbGxTY3JlZW46IGZhbHNlLFxuICBhZGRHcmlkOiBmYWxzZSxcbiAgYWRkQWx0R3JpZDogZmFsc2UsXG4gIGdyaWRSb3dzOiAwLFxuICBncmlkQ29sczogMCxcbiAgYWx0R3JpZFJvd3M6IDAsXG4gIGFsdEdyaWRDb2xzOiAwLFxuICBudW1iZXJQYWdlczogMCxcbiAgY3VycmVudFN0cmVhbXM6IFtdLFxuICBzaG93TWluaVZpZXc6IGZhbHNlLFxuICBuU3RyZWFtOiBudWxsLFxuICBkZWZlcl9yZWNlaXZlOiBmYWxzZSxcbiAgYWxsQXVkaW9TdHJlYW1zOiBbXSxcbiAgcmVtb3RlU2NyZWVuU3RyZWFtOiBbXSxcbiAgc2NyZWVuUHJvZHVjZXI6IG51bGwsXG4gIGdvdEFsbFZpZHM6IGZhbHNlLFxuICBwYWdpbmF0aW9uSGVpZ2h0V2lkdGg6IDQwLFxuICBwYWdpbmF0aW9uRGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcsXG4gIGdyaWRTaXplczogeyBncmlkV2lkdGg6IDAsIGdyaWRIZWlnaHQ6IDAsIGFsdEdyaWRXaWR0aDogMCwgYWx0R3JpZEhlaWdodDogMCB9LFxuICBzY3JlZW5Gb3JjZUZ1bGxEaXNwbGF5OiBmYWxzZSxcbiAgbWFpbkdyaWRTdHJlYW06IFtdLFxuICBvdGhlckdyaWRTdHJlYW1zOiBbW10sIFtdXSxcbiAgYXVkaW9Pbmx5U3RyZWFtczogW10sXG4gIHZpZGVvSW5wdXRzOiBbXSxcbiAgYXVkaW9JbnB1dHM6IFtdLFxuICBtZWV0aW5nUHJvZ3Jlc3NUaW1lOiAnMDA6MDA6MDAnLFxuICBtZWV0aW5nRWxhcHNlZFRpbWU6IDAsXG4gIHJlZl9wYXJ0aWNpcGFudHM6IFtdLFxuXG4gIC8vIE1lc3NhZ2luZywgZXZlbnQsIG1vZGFscywgYW5kIG90aGVyIFVJIHN0YXRlc1xuICBtZXNzYWdlczogW10sXG4gIHN0YXJ0RGlyZWN0TWVzc2FnZTogZmFsc2UsXG4gIGRpcmVjdE1lc3NhZ2VEZXRhaWxzOiBudWxsLFxuICBzaG93TWVzc2FnZXNCYWRnZTogZmFsc2UsXG4gIGF1ZGlvU2V0dGluZzogJ2FsbG93JyxcbiAgdmlkZW9TZXR0aW5nOiAnYWxsb3cnLFxuICBzY3JlZW5zaGFyZVNldHRpbmc6ICdhbGxvdycsXG4gIGNoYXRTZXR0aW5nOiAnYWxsb3cnLFxuICBkaXNwbGF5T3B0aW9uOiAnbWVkaWEnLFxuICBhdXRvV2F2ZTogdHJ1ZSxcbiAgZm9yY2VGdWxsRGlzcGxheTogdHJ1ZSxcbiAgcHJldkZvcmNlRnVsbERpc3BsYXk6IGZhbHNlLFxuICBwcmV2TWVldGluZ0Rpc3BsYXlUeXBlOiAndmlkZW8nLFxuICB3YWl0aW5nUm9vbUZpbHRlcjogJycsXG4gIHdhaXRpbmdSb29tTGlzdDogW10sXG4gIHdhaXRpbmdSb29tQ291bnRlcjogMCxcbiAgZmlsdGVyZWRXYWl0aW5nUm9vbUxpc3Q6IFtdLFxuICByZXF1ZXN0RmlsdGVyOiAnJyxcbiAgcmVxdWVzdExpc3Q6IFtdLFxuICByZXF1ZXN0Q291bnRlcjogMCxcbiAgZmlsdGVyZWRSZXF1ZXN0TGlzdDogW10sXG4gIHRvdGFsUmVxV2FpdDogMCxcbiAgYWxlcnRWaXNpYmxlOiBmYWxzZSxcbiAgYWxlcnRNZXNzYWdlOiAnJyxcbiAgYWxlcnRUeXBlOiAnc3VjY2VzcycsXG4gIGFsZXJ0RHVyYXRpb246IDMwMDAsXG4gIHByb2dyZXNzVGltZXJWaXNpYmxlOiB0cnVlLFxuICBwcm9ncmVzc1RpbWVyVmFsdWU6IDAsXG4gIGlzTWVudU1vZGFsVmlzaWJsZTogZmFsc2UsXG4gIGlzUmVjb3JkaW5nTW9kYWxWaXNpYmxlOiBmYWxzZSxcbiAgaXNTZXR0aW5nc01vZGFsVmlzaWJsZTogZmFsc2UsXG4gIGlzUmVxdWVzdHNNb2RhbFZpc2libGU6IGZhbHNlLFxuICBpc1dhaXRpbmdNb2RhbFZpc2libGU6IGZhbHNlLFxuICBpc0NvSG9zdE1vZGFsVmlzaWJsZTogZmFsc2UsXG4gIGlzTWVkaWFTZXR0aW5nc01vZGFsVmlzaWJsZTogZmFsc2UsXG4gIGlzRGlzcGxheVNldHRpbmdzTW9kYWxWaXNpYmxlOiBmYWxzZSxcbiAgaXNQYXJ0aWNpcGFudHNNb2RhbFZpc2libGU6IGZhbHNlLFxuICBpc01lc3NhZ2VzTW9kYWxWaXNpYmxlOiBmYWxzZSxcbiAgaXNDb25maXJtRXhpdE1vZGFsVmlzaWJsZTogZmFsc2UsXG4gIGlzQ29uZmlybUhlcmVNb2RhbFZpc2libGU6IGZhbHNlLFxuICBpc1NoYXJlRXZlbnRNb2RhbFZpc2libGU6IGZhbHNlLFxuICBpc0xvYWRpbmdNb2RhbFZpc2libGU6IGZhbHNlLFxuXG4gIHJlY29yZGluZ01lZGlhT3B0aW9uczogJ3ZpZGVvJyxcbiAgcmVjb3JkaW5nQXVkaW9PcHRpb25zOiAnYWxsJyxcbiAgcmVjb3JkaW5nVmlkZW9PcHRpb25zOiAnYWxsJyxcbiAgcmVjb3JkaW5nVmlkZW9UeXBlOiAnZnVsbERpc3BsYXknLFxuICByZWNvcmRpbmdWaWRlb09wdGltaXplZDogZmFsc2UsXG4gIHJlY29yZGluZ0Rpc3BsYXlUeXBlOiAndmlkZW8nLFxuICByZWNvcmRpbmdBZGRITFM6IHRydWUsXG4gIHJlY29yZGluZ05hbWVUYWdzOiB0cnVlLFxuICByZWNvcmRpbmdCYWNrZ3JvdW5kQ29sb3I6ICcjODNjMGU5JyxcbiAgcmVjb3JkaW5nTmFtZVRhZ3NDb2xvcjogJyNmZmZmZmYnLFxuICByZWNvcmRpbmdBZGRUZXh0OiBmYWxzZSxcbiAgcmVjb3JkaW5nQ3VzdG9tVGV4dDogJ0FkZCBUZXh0JyxcbiAgcmVjb3JkaW5nQ3VzdG9tVGV4dFBvc2l0aW9uOiAndG9wJyxcbiAgcmVjb3JkaW5nQ3VzdG9tVGV4dENvbG9yOiAnI2ZmZmZmZicsXG4gIHJlY29yZGluZ09yaWVudGF0aW9uVmlkZW86ICdsYW5kc2NhcGUnLFxuICBjbGVhcmVkVG9SZXN1bWU6IHRydWUsXG4gIGNsZWFyZWRUb1JlY29yZDogdHJ1ZSxcbiAgcmVjb3JkU3RhdGU6ICdncmVlbicsXG4gIHNob3dSZWNvcmRCdXR0b25zOiBmYWxzZSxcbiAgcmVjb3JkaW5nUHJvZ3Jlc3NUaW1lOiAnMDA6MDA6MDAnLFxuICBhdWRpb1N3aXRjaGluZzogZmFsc2UsXG4gIHZpZGVvU3dpdGNoaW5nOiBmYWxzZSxcbiAgdmlkZW9BbHJlYWR5T246IGZhbHNlLFxuICBhdWRpb0FscmVhZHlPbjogZmFsc2UsXG4gIGNvbXBvbmVudFNpemVzOiB7IG1haW5IZWlnaHQ6IDAsIG90aGVySGVpZ2h0OiAwLCBtYWluV2lkdGg6IDAsIG90aGVyV2lkdGg6IDAgfSxcbiAgaGFzQ2FtZXJhUGVybWlzc2lvbjogZmFsc2UsXG4gIGhhc0F1ZGlvUGVybWlzc2lvbjogZmFsc2UsXG4gIHRyYW5zcG9ydENyZWF0ZWQ6IGZhbHNlLFxuICB0cmFuc3BvcnRDcmVhdGVkVmlkZW86IGZhbHNlLFxuICB0cmFuc3BvcnRDcmVhdGVkQXVkaW86IGZhbHNlLFxuICB0cmFuc3BvcnRDcmVhdGVkU2NyZWVuOiBmYWxzZSxcbiAgcHJvZHVjZXJUcmFuc3BvcnQ6IG51bGwsXG4gIHZpZGVvUHJvZHVjZXI6IG51bGwsXG4gIHBhcmFtczoge30gYXMgUHJvZHVjZXJPcHRpb25zLFxuICB2aWRlb1BhcmFtczoge30gYXMgUHJvZHVjZXJPcHRpb25zLFxuICBhdWRpb1BhcmFtczoge30gYXMgUHJvZHVjZXJPcHRpb25zLFxuICBhdWRpb1Byb2R1Y2VyOiBudWxsLFxuICBjb25zdW1lclRyYW5zcG9ydHM6IFtdLFxuICBjb25zdW1pbmdUcmFuc3BvcnRzOiBbXSxcblxuICAvLyBQb2xsc1xuICBwb2xsczogW10sXG4gIHBvbGw6IG51bGwsXG4gIGlzUG9sbE1vZGFsVmlzaWJsZTogZmFsc2UsXG5cbiAgLy8gQmFja2dyb3VuZFxuICBjdXN0b21JbWFnZTogJycsXG4gIHNlbGVjdGVkSW1hZ2U6ICcnLFxuICBzZWdtZW50VmlkZW86IG51bGwsXG4gIHNlbGZpZVNlZ21lbnRhdGlvbjogbnVsbCxcbiAgcGF1c2VTZWdtZW50YXRpb246IGZhbHNlLFxuICBwcm9jZXNzZWRTdHJlYW06IG51bGwsXG4gIGtlZXBCYWNrZ3JvdW5kOiBmYWxzZSxcbiAgYmFja2dyb3VuZEhhc0NoYW5nZWQ6IGZhbHNlLFxuICB2aXJ0dWFsU3RyZWFtOiBudWxsLFxuICBtYWluQ2FudmFzOiBudWxsLFxuICBwcmV2S2VlcEJhY2tncm91bmQ6IGZhbHNlLFxuICBhcHBsaWVkQmFja2dyb3VuZDogZmFsc2UsXG4gIGlzQmFja2dyb3VuZE1vZGFsVmlzaWJsZTogZmFsc2UsXG4gIGF1dG9DbGlja0JhY2tncm91bmQ6IGZhbHNlLFxuXG4gIC8vIEJyZWFrb3V0IFJvb21zXG4gIGJyZWFrb3V0Um9vbXM6IFtdLFxuICBjdXJyZW50Um9vbUluZGV4OiAwLFxuICBjYW5TdGFydEJyZWFrb3V0OiBmYWxzZSxcbiAgYnJlYWtPdXRSb29tU3RhcnRlZDogZmFsc2UsXG4gIGJyZWFrT3V0Um9vbUVuZGVkOiBmYWxzZSxcbiAgaG9zdE5ld1Jvb206IC0xLFxuICBsaW1pdGVkQnJlYWtSb29tOiBbXSxcbiAgbWFpblJvb21zTGVuZ3RoOiAwLFxuICBtZW1iZXJSb29tOiAtMSxcbiAgaXNCcmVha291dFJvb21zTW9kYWxWaXNpYmxlOiBmYWxzZSxcblxuICAvLyBXaGl0ZWJvYXJkXG4gIHdoaXRlYm9hcmRVc2VyczogW10sXG4gIGN1cnJlbnRXaGl0ZWJvYXJkSW5kZXg6IDAsXG4gIGNhblN0YXJ0V2hpdGVib2FyZDogZmFsc2UsXG4gIHdoaXRlYm9hcmRTdGFydGVkOiBmYWxzZSxcbiAgd2hpdGVib2FyZEVuZGVkOiBmYWxzZSxcbiAgd2hpdGVib2FyZExpbWl0OiA0LFxuICBpc1doaXRlYm9hcmRNb2RhbFZpc2libGU6IGZhbHNlLFxuICBpc0NvbmZpZ3VyZVdoaXRlYm9hcmRNb2RhbFZpc2libGU6IGZhbHNlLFxuICBzaGFwZXM6IFtdLFxuICB1c2VJbWFnZUJhY2tncm91bmQ6IHRydWUsXG4gIHJlZG9TdGFjazogW10sXG4gIHVuZG9TdGFjazogW10sXG4gIGNhbnZhc1N0cmVhbTogbnVsbCxcbiAgY2FudmFzV2hpdGVib2FyZDogbnVsbCxcblxuICAvLyBTY3JlZW5ib2FyZFxuICBjYW52YXNTY3JlZW5ib2FyZDogbnVsbCxcbiAgcHJvY2Vzc2VkU2NyZWVuU3RyZWFtOiBudWxsLFxuICBhbm5vdGF0ZVNjcmVlblN0cmVhbTogZmFsc2UsXG4gIG1haW5TY3JlZW5DYW52YXM6IG51bGwsXG4gIGlzU2NyZWVuYm9hcmRNb2RhbFZpc2libGU6IGZhbHNlLFxuXG4gIC8vIENvbnRyb2wgQnV0dG9uc1xuICBtaWNBY3RpdmU6IGZhbHNlLFxuICB2aWRlb0FjdGl2ZTogZmFsc2UsXG4gIHNjcmVlblNoYXJlQWN0aXZlOiBmYWxzZSxcbiAgZW5kQ2FsbEFjdGl2ZTogZmFsc2UsXG4gIHBhcnRpY2lwYW50c0FjdGl2ZTogZmFsc2UsXG4gIG1lbnVBY3RpdmU6IGZhbHNlLFxuICBjb21tZW50c0FjdGl2ZTogZmFsc2UsXG59O1xuIl19
@@ -1,96 +0,0 @@
1
- // start-meeting-progress-timer.service.ts
2
- import { Injectable } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Starts a timer to track the progress of a meeting.
6
- *
7
- * @param {StartMeetingProgressTimerOptions} options - The options for starting the meeting progress timer.
8
- * @param {number} options.startTime - The custom start time for the meeting progress timer in seconds since epoch.
9
- * @param {StartMeetingProgressTimerParameters} options.parameters - The parameters required for updating the meeting progress.
10
- * @param {Function} options.parameters.updateMeetingProgressTime - Function to update the formatted meeting progress time.
11
- * @param {Function} options.parameters.getUpdatedAllParams - Function to get updated parameters.
12
- *
13
- * @returns {void}
14
- *
15
- * @remarks
16
- * This function calculates the elapsed time since the meeting started and updates the meeting progress every second.
17
- * The timer will stop if the validated flag is set to false or if the room name is not valid.
18
- *
19
- * The time is formatted in HH:MM:SS format, and the update function is called with the formatted time.
20
- *
21
- * @example
22
- * ```typescript
23
- * const options: StartMeetingProgressTimerOptions = {
24
- * startTime: Math.floor(Date.now() / 1000), // Current time in seconds
25
- * parameters: {
26
- * updateMeetingProgressTime: (formattedTime) => console.log(`Meeting Progress: ${formattedTime}`),
27
- * validated: true,
28
- * roomName: 'Room123',
29
- * getUpdatedAllParams: () => ({
30
- * validated: true,
31
- * roomName: 'Room123',
32
- * updateMeetingProgressTime: options.parameters.updateMeetingProgressTime,
33
- * }),
34
- * },
35
- * };
36
- *
37
- * const timerService = new StartMeetingProgressTimer();
38
- * timerService.startMeetingProgressTimer(options);
39
- * ```
40
- */
41
- export class StartMeetingProgressTimer {
42
- timeProgress;
43
- /**
44
- * Starts a timer to track the progress of a meeting.
45
- *
46
- * @param {Object} options - The options for starting the meeting progress timer.
47
- * @param {number} options.startTime - The custom start time for the meeting progress timer.
48
- * @param {Object} options.parameters - The parameters required for updating the meeting progress.
49
- * @param {Function} options.parameters.updateMeetingProgressTime - Function to update the meeting progress time.
50
- * @param {Function} options.parameters.getUpdatedAllParams - Function to get updated parameters.
51
- *
52
- * @returns {void}
53
- */
54
- startMeetingProgressTimer = ({ startTime, parameters, }) => {
55
- let { updateMeetingProgressTime, getUpdatedAllParams } = parameters;
56
- const calculateElapsedTime = (startTime) => {
57
- const currentTime = Math.floor(new Date().getTime() / 1000);
58
- return currentTime - startTime;
59
- };
60
- const padNumber = (number) => {
61
- return number.toString().padStart(2, '0');
62
- };
63
- const formatTime = (time) => {
64
- const hours = Math.floor(time / 3600);
65
- const minutes = Math.floor((time % 3600) / 60);
66
- const seconds = (time % 60).toFixed(0).padStart(2, '0');
67
- return `${padNumber(hours)}:${padNumber(minutes)}:${padNumber(Number(seconds))}`;
68
- };
69
- let elapsedTime = calculateElapsedTime(startTime);
70
- this.timeProgress = setInterval(async () => {
71
- elapsedTime++;
72
- const formattedTime = formatTime(elapsedTime);
73
- updateMeetingProgressTime(formattedTime);
74
- parameters = getUpdatedAllParams();
75
- if (!parameters.validated || !parameters.roomName) {
76
- clearInterval(this.timeProgress);
77
- this.timeProgress = null;
78
- }
79
- }, 1000);
80
- };
81
- stopMeetingProgressTimer = () => {
82
- if (this.timeProgress) {
83
- clearInterval(this.timeProgress);
84
- this.timeProgress = null;
85
- }
86
- };
87
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StartMeetingProgressTimer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
88
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StartMeetingProgressTimer, providedIn: 'root' });
89
- }
90
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StartMeetingProgressTimer, decorators: [{
91
- type: Injectable,
92
- args: [{
93
- providedIn: 'root',
94
- }]
95
- }] });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtbWVldGluZy1wcm9ncmVzcy10aW1lci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL21ldGhvZHMvdXRpbHMvbWVldGluZy10aW1lci9zdGFydC1tZWV0aW5nLXByb2dyZXNzLXRpbWVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMENBQTBDO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBbUIzQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0NHO0FBTUgsTUFBTSxPQUFPLHlCQUF5QjtJQUM1QixZQUFZLENBQU07SUFFMUI7Ozs7Ozs7Ozs7T0FVRztJQUVILHlCQUF5QixHQUFHLENBQUMsRUFDM0IsU0FBUyxFQUNULFVBQVUsR0FDdUIsRUFBUSxFQUFFO1FBQzNDLElBQUksRUFBRSx5QkFBeUIsRUFBRSxtQkFBbUIsRUFBRSxHQUFHLFVBQVUsQ0FBQztRQUVwRSxNQUFNLG9CQUFvQixHQUFHLENBQUMsU0FBaUIsRUFBVSxFQUFFO1lBQ3pELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUM1RCxPQUFPLFdBQVcsR0FBRyxTQUFTLENBQUM7UUFDakMsQ0FBQyxDQUFDO1FBRUYsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFjLEVBQVUsRUFBRTtZQUMzQyxPQUFPLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQztRQUVGLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBWSxFQUFVLEVBQUU7WUFDMUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDdEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUMvQyxNQUFNLE9BQU8sR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN4RCxPQUFPLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNuRixDQUFDLENBQUM7UUFFRixJQUFJLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVsRCxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUN6QyxXQUFXLEVBQUUsQ0FBQztZQUNkLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM5Qyx5QkFBeUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUV6QyxVQUFVLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQztZQUVuQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbEQsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNYLENBQUMsQ0FBQztJQUVGLHdCQUF3QixHQUFHLEdBQVMsRUFBRTtRQUNwQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDLENBQUM7dUdBMURTLHlCQUF5QjsyR0FBekIseUJBQXlCLGNBRnhCLE1BQU07OzJGQUVQLHlCQUF5QjtrQkFIckMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzdGFydC1tZWV0aW5nLXByb2dyZXNzLXRpbWVyLnNlcnZpY2UudHNcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmV4cG9ydCBpbnRlcmZhY2UgU3RhcnRNZWV0aW5nUHJvZ3Jlc3NUaW1lclBhcmFtZXRlcnMge1xuICB1cGRhdGVNZWV0aW5nUHJvZ3Jlc3NUaW1lOiAoZm9ybWF0dGVkVGltZTogc3RyaW5nKSA9PiB2b2lkO1xuICB2YWxpZGF0ZWQ6IGJvb2xlYW47XG4gIHJvb21OYW1lOiBzdHJpbmc7XG5cbiAgLy8gbWVkaWFzZnUgZnVuY3Rpb25zXG4gIGdldFVwZGF0ZWRBbGxQYXJhbXM6ICgpID0+IFN0YXJ0TWVldGluZ1Byb2dyZXNzVGltZXJQYXJhbWV0ZXJzO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhcnRNZWV0aW5nUHJvZ3Jlc3NUaW1lck9wdGlvbnMge1xuICBzdGFydFRpbWU6IG51bWJlcjtcbiAgcGFyYW1ldGVyczogU3RhcnRNZWV0aW5nUHJvZ3Jlc3NUaW1lclBhcmFtZXRlcnM7XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIFN0YXJ0TWVldGluZ1Byb2dyZXNzVGltZXJUeXBlID0gKG9wdGlvbnM6IFN0YXJ0TWVldGluZ1Byb2dyZXNzVGltZXJPcHRpb25zKSA9PiB2b2lkO1xuXG4vKipcbiAqIFN0YXJ0cyBhIHRpbWVyIHRvIHRyYWNrIHRoZSBwcm9ncmVzcyBvZiBhIG1lZXRpbmcuXG4gKlxuICogQHBhcmFtIHtTdGFydE1lZXRpbmdQcm9ncmVzc1RpbWVyT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBzdGFydGluZyB0aGUgbWVldGluZyBwcm9ncmVzcyB0aW1lci5cbiAqIEBwYXJhbSB7bnVtYmVyfSBvcHRpb25zLnN0YXJ0VGltZSAtIFRoZSBjdXN0b20gc3RhcnQgdGltZSBmb3IgdGhlIG1lZXRpbmcgcHJvZ3Jlc3MgdGltZXIgaW4gc2Vjb25kcyBzaW5jZSBlcG9jaC5cbiAqIEBwYXJhbSB7U3RhcnRNZWV0aW5nUHJvZ3Jlc3NUaW1lclBhcmFtZXRlcnN9IG9wdGlvbnMucGFyYW1ldGVycyAtIFRoZSBwYXJhbWV0ZXJzIHJlcXVpcmVkIGZvciB1cGRhdGluZyB0aGUgbWVldGluZyBwcm9ncmVzcy5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy51cGRhdGVNZWV0aW5nUHJvZ3Jlc3NUaW1lIC0gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBmb3JtYXR0ZWQgbWVldGluZyBwcm9ncmVzcyB0aW1lLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmdldFVwZGF0ZWRBbGxQYXJhbXMgLSBGdW5jdGlvbiB0byBnZXQgdXBkYXRlZCBwYXJhbWV0ZXJzLlxuICpcbiAqIEByZXR1cm5zIHt2b2lkfVxuICpcbiAqIEByZW1hcmtzXG4gKiBUaGlzIGZ1bmN0aW9uIGNhbGN1bGF0ZXMgdGhlIGVsYXBzZWQgdGltZSBzaW5jZSB0aGUgbWVldGluZyBzdGFydGVkIGFuZCB1cGRhdGVzIHRoZSBtZWV0aW5nIHByb2dyZXNzIGV2ZXJ5IHNlY29uZC5cbiAqIFRoZSB0aW1lciB3aWxsIHN0b3AgaWYgdGhlIHZhbGlkYXRlZCBmbGFnIGlzIHNldCB0byBmYWxzZSBvciBpZiB0aGUgcm9vbSBuYW1lIGlzIG5vdCB2YWxpZC5cbiAqXG4gKiBUaGUgdGltZSBpcyBmb3JtYXR0ZWQgaW4gSEg6TU06U1MgZm9ybWF0LCBhbmQgdGhlIHVwZGF0ZSBmdW5jdGlvbiBpcyBjYWxsZWQgd2l0aCB0aGUgZm9ybWF0dGVkIHRpbWUuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG9wdGlvbnM6IFN0YXJ0TWVldGluZ1Byb2dyZXNzVGltZXJPcHRpb25zID0ge1xuICogICBzdGFydFRpbWU6IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApLCAvLyBDdXJyZW50IHRpbWUgaW4gc2Vjb25kc1xuICogICBwYXJhbWV0ZXJzOiB7XG4gKiAgICAgdXBkYXRlTWVldGluZ1Byb2dyZXNzVGltZTogKGZvcm1hdHRlZFRpbWUpID0+IGNvbnNvbGUubG9nKGBNZWV0aW5nIFByb2dyZXNzOiAke2Zvcm1hdHRlZFRpbWV9YCksXG4gKiAgICAgdmFsaWRhdGVkOiB0cnVlLFxuICogICAgIHJvb21OYW1lOiAnUm9vbTEyMycsXG4gKiAgICAgZ2V0VXBkYXRlZEFsbFBhcmFtczogKCkgPT4gKHtcbiAqICAgICAgIHZhbGlkYXRlZDogdHJ1ZSxcbiAqICAgICAgIHJvb21OYW1lOiAnUm9vbTEyMycsXG4gKiAgICAgICB1cGRhdGVNZWV0aW5nUHJvZ3Jlc3NUaW1lOiBvcHRpb25zLnBhcmFtZXRlcnMudXBkYXRlTWVldGluZ1Byb2dyZXNzVGltZSxcbiAqICAgICB9KSxcbiAqICAgfSxcbiAqIH07XG4gKlxuICogY29uc3QgdGltZXJTZXJ2aWNlID0gbmV3IFN0YXJ0TWVldGluZ1Byb2dyZXNzVGltZXIoKTtcbiAqIHRpbWVyU2VydmljZS5zdGFydE1lZXRpbmdQcm9ncmVzc1RpbWVyKG9wdGlvbnMpO1xuICogYGBgXG4gKi9cblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU3RhcnRNZWV0aW5nUHJvZ3Jlc3NUaW1lciB7XG4gIHByaXZhdGUgdGltZVByb2dyZXNzOiBhbnk7XG5cbiAgLyoqXG4gICAqIFN0YXJ0cyBhIHRpbWVyIHRvIHRyYWNrIHRoZSBwcm9ncmVzcyBvZiBhIG1lZXRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHN0YXJ0aW5nIHRoZSBtZWV0aW5nIHByb2dyZXNzIHRpbWVyLlxuICAgKiBAcGFyYW0ge251bWJlcn0gb3B0aW9ucy5zdGFydFRpbWUgLSBUaGUgY3VzdG9tIHN0YXJ0IHRpbWUgZm9yIHRoZSBtZWV0aW5nIHByb2dyZXNzIHRpbWVyLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucy5wYXJhbWV0ZXJzIC0gVGhlIHBhcmFtZXRlcnMgcmVxdWlyZWQgZm9yIHVwZGF0aW5nIHRoZSBtZWV0aW5nIHByb2dyZXNzLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudXBkYXRlTWVldGluZ1Byb2dyZXNzVGltZSAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgbWVldGluZyBwcm9ncmVzcyB0aW1lLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMuZ2V0VXBkYXRlZEFsbFBhcmFtcyAtIEZ1bmN0aW9uIHRvIGdldCB1cGRhdGVkIHBhcmFtZXRlcnMuXG4gICAqXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cblxuICBzdGFydE1lZXRpbmdQcm9ncmVzc1RpbWVyID0gKHtcbiAgICBzdGFydFRpbWUsXG4gICAgcGFyYW1ldGVycyxcbiAgfTogU3RhcnRNZWV0aW5nUHJvZ3Jlc3NUaW1lck9wdGlvbnMpOiB2b2lkID0+IHtcbiAgICBsZXQgeyB1cGRhdGVNZWV0aW5nUHJvZ3Jlc3NUaW1lLCBnZXRVcGRhdGVkQWxsUGFyYW1zIH0gPSBwYXJhbWV0ZXJzO1xuXG4gICAgY29uc3QgY2FsY3VsYXRlRWxhcHNlZFRpbWUgPSAoc3RhcnRUaW1lOiBudW1iZXIpOiBudW1iZXIgPT4ge1xuICAgICAgY29uc3QgY3VycmVudFRpbWUgPSBNYXRoLmZsb29yKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCk7XG4gICAgICByZXR1cm4gY3VycmVudFRpbWUgLSBzdGFydFRpbWU7XG4gICAgfTtcblxuICAgIGNvbnN0IHBhZE51bWJlciA9IChudW1iZXI6IG51bWJlcik6IHN0cmluZyA9PiB7XG4gICAgICByZXR1cm4gbnVtYmVyLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcbiAgICB9O1xuXG4gICAgY29uc3QgZm9ybWF0VGltZSA9ICh0aW1lOiBudW1iZXIpOiBzdHJpbmcgPT4ge1xuICAgICAgY29uc3QgaG91cnMgPSBNYXRoLmZsb29yKHRpbWUgLyAzNjAwKTtcbiAgICAgIGNvbnN0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKCh0aW1lICUgMzYwMCkgLyA2MCk7XG4gICAgICBjb25zdCBzZWNvbmRzID0gKHRpbWUgJSA2MCkudG9GaXhlZCgwKS5wYWRTdGFydCgyLCAnMCcpO1xuICAgICAgcmV0dXJuIGAke3BhZE51bWJlcihob3Vycyl9OiR7cGFkTnVtYmVyKG1pbnV0ZXMpfToke3BhZE51bWJlcihOdW1iZXIoc2Vjb25kcykpfWA7XG4gICAgfTtcblxuICAgIGxldCBlbGFwc2VkVGltZSA9IGNhbGN1bGF0ZUVsYXBzZWRUaW1lKHN0YXJ0VGltZSk7XG5cbiAgICB0aGlzLnRpbWVQcm9ncmVzcyA9IHNldEludGVydmFsKGFzeW5jICgpID0+IHtcbiAgICAgIGVsYXBzZWRUaW1lKys7XG4gICAgICBjb25zdCBmb3JtYXR0ZWRUaW1lID0gZm9ybWF0VGltZShlbGFwc2VkVGltZSk7XG4gICAgICB1cGRhdGVNZWV0aW5nUHJvZ3Jlc3NUaW1lKGZvcm1hdHRlZFRpbWUpO1xuXG4gICAgICBwYXJhbWV0ZXJzID0gZ2V0VXBkYXRlZEFsbFBhcmFtcygpO1xuXG4gICAgICBpZiAoIXBhcmFtZXRlcnMudmFsaWRhdGVkIHx8ICFwYXJhbWV0ZXJzLnJvb21OYW1lKSB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lUHJvZ3Jlc3MpO1xuICAgICAgICB0aGlzLnRpbWVQcm9ncmVzcyA9IG51bGw7XG4gICAgICB9XG4gICAgfSwgMTAwMCk7XG4gIH07XG5cbiAgc3RvcE1lZXRpbmdQcm9ncmVzc1RpbWVyID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLnRpbWVQcm9ncmVzcykge1xuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVQcm9ncmVzcyk7XG4gICAgICB0aGlzLnRpbWVQcm9ncmVzcyA9IG51bGw7XG4gICAgfVxuICB9O1xufVxuIl19