@cometchat/chat-uikit-angular 4.3.36 → 5.0.0-beta.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.
- package/README.md +86 -14
- package/fesm2022/cometchat-chat-uikit-angular.mjs +107859 -0
- package/fesm2022/cometchat-chat-uikit-angular.mjs.map +1 -0
- package/package.json +14 -21
- package/screenshots/sample_app_overview.png +0 -0
- package/src/lib/assets/Collaborative-Whiteboard-Preview-Light.png +0 -0
- package/src/lib/assets/Collaborative-document-Preview-light.png +0 -0
- package/src/lib/assets/Collaborative_Document_Dark.png +0 -0
- package/src/lib/assets/Collaborative_Document_Light.png +0 -0
- package/src/lib/assets/Collaborative_Whiteboard_Dark.png +0 -0
- package/src/lib/assets/Collaborative_Whiteboard_Light.png +0 -0
- package/src/lib/assets/Copy.svg +5 -0
- package/src/lib/assets/Info.svg +8 -0
- package/src/lib/assets/Profile.png +0 -0
- package/src/lib/assets/Send.svg +3 -0
- package/src/lib/assets/Spinner-Gradient-1.svg +12 -0
- package/src/lib/assets/account_circle.svg +8 -0
- package/src/lib/assets/activity.svg +10 -0
- package/src/lib/assets/add.svg +8 -0
- package/src/lib/assets/add_a_photo.svg +8 -0
- package/src/lib/assets/add_box.svg +8 -0
- package/src/lib/assets/add_call.svg +8 -0
- package/src/lib/assets/add_circle.svg +3 -0
- package/src/lib/assets/add_circle_fill.svg +3 -0
- package/src/lib/assets/add_comment.svg +8 -0
- package/src/lib/assets/add_reaction.svg +8 -0
- package/src/lib/assets/add_reaction_icon.svg +5 -0
- package/src/lib/assets/ai_conversation_summary.svg +3 -0
- package/src/lib/assets/ai_fill.svg +4 -0
- package/src/lib/assets/ai_suggest_reply.svg +3 -0
- package/src/lib/assets/alternate_email.svg +8 -0
- package/src/lib/assets/animals_nature.svg +10 -0
- package/src/lib/assets/archive.svg +8 -0
- package/src/lib/assets/arrow_back.svg +8 -0
- package/src/lib/assets/arrow_forward.svg +8 -0
- package/src/lib/assets/attach_file.svg +8 -0
- package/src/lib/assets/audio_call_button.svg +5 -0
- package/src/lib/assets/audio_filter_icon.svg +3 -0
- package/src/lib/assets/bar_chart.svg +3 -0
- package/src/lib/assets/bedtime.svg +8 -0
- package/src/lib/assets/block.svg +8 -0
- package/src/lib/assets/bold-format.svg +3 -0
- package/src/lib/assets/bookmark.svg +8 -0
- package/src/lib/assets/bookmark_add.svg +8 -0
- package/src/lib/assets/bullet-list-format.svg +3 -0
- package/src/lib/assets/calendar_add_on.svg +8 -0
- package/src/lib/assets/calendar_today.svg +8 -0
- package/src/lib/assets/call-log-audio.svg +3 -0
- package/src/lib/assets/call-log_video.svg +3 -0
- package/src/lib/assets/call-logs_empty_state.svg +8 -0
- package/src/lib/assets/call-logs_empty_state_dark.svg +8 -0
- package/src/lib/assets/call.svg +8 -0
- package/src/lib/assets/call_end.svg +8 -0
- package/src/lib/assets/call_end_no_fill.svg +3 -0
- package/src/lib/assets/call_log.svg +8 -0
- package/src/lib/assets/call_made.svg +8 -0
- package/src/lib/assets/call_missed.svg +8 -0
- package/src/lib/assets/call_missed_outgoing.svg +8 -0
- package/src/lib/assets/call_received.svg +8 -0
- package/src/lib/assets/cancel.svg +8 -0
- package/src/lib/assets/cancel_fill.svg +8 -0
- package/src/lib/assets/change_circle.svg +3 -0
- package/src/lib/assets/change_scope.png +0 -0
- package/src/lib/assets/chat-history.svg +3 -0
- package/src/lib/assets/chat.svg +8 -0
- package/src/lib/assets/chat_bot.svg +3 -0
- package/src/lib/assets/chats_filter_icon.svg +1 -0
- package/src/lib/assets/check.svg +8 -0
- package/src/lib/assets/check_circle.svg +3 -0
- package/src/lib/assets/checkbox_tick.svg +5 -0
- package/src/lib/assets/chevron_left.svg +8 -0
- package/src/lib/assets/chevron_right.svg +8 -0
- package/src/lib/assets/circle.svg +3 -0
- package/src/lib/assets/close.svg +8 -0
- package/src/lib/assets/code-block-format.svg +3 -0
- package/src/lib/assets/code-format.svg +3 -0
- package/src/lib/assets/collaborative_document_fill.svg +4 -0
- package/src/lib/assets/collaborative_whiteboard.svg +4 -0
- package/src/lib/assets/collaborative_whiteboard_fill.svg +4 -0
- package/src/lib/assets/collabrative_document.svg +4 -0
- package/src/lib/assets/content_copy.svg +8 -0
- package/src/lib/assets/conversation_summary.svg +4 -0
- package/src/lib/assets/conversations_audio-message.svg +8 -0
- package/src/lib/assets/conversations_card-message.svg +8 -0
- package/src/lib/assets/conversations_collaborative-document-message.svg +4 -0
- package/src/lib/assets/conversations_collaborative-whiteboard-message.svg +5 -0
- package/src/lib/assets/conversations_delete.svg +8 -0
- package/src/lib/assets/conversations_delivered.svg +3 -0
- package/src/lib/assets/conversations_dropdown.svg +3 -0
- package/src/lib/assets/conversations_empty_state.svg +20 -0
- package/src/lib/assets/conversations_empty_state_dark.svg +20 -0
- package/src/lib/assets/conversations_error.svg +16 -0
- package/src/lib/assets/conversations_file-message.svg +8 -0
- package/src/lib/assets/conversations_form-message.svg +3 -0
- package/src/lib/assets/conversations_image-message.svg +8 -0
- package/src/lib/assets/conversations_incoming-video-call.svg +8 -0
- package/src/lib/assets/conversations_incoming-voice-call.svg +3 -0
- package/src/lib/assets/conversations_link.svg +8 -0
- package/src/lib/assets/conversations_missed-video-call.svg +8 -0
- package/src/lib/assets/conversations_missed-voice-call.svg +3 -0
- package/src/lib/assets/conversations_outgoing-video-call.svg +8 -0
- package/src/lib/assets/conversations_outgoing-voice-call.svg +4 -0
- package/src/lib/assets/conversations_poll-message.svg +3 -0
- package/src/lib/assets/conversations_read.svg +3 -0
- package/src/lib/assets/conversations_schedular-message.svg +8 -0
- package/src/lib/assets/conversations_sent.svg +3 -0
- package/src/lib/assets/conversations_sticker-message.svg +4 -0
- package/src/lib/assets/conversations_thread.svg +8 -0
- package/src/lib/assets/conversations_video-message.svg +8 -0
- package/{assets/wait.svg → src/lib/assets/conversations_wait.svg} +0 -0
- package/src/lib/assets/copy-text.svg +3 -0
- package/src/lib/assets/crop.svg +8 -0
- package/src/lib/assets/delete.svg +8 -0
- package/src/lib/assets/delete_icon.svg +4 -0
- package/src/lib/assets/deliveredIcon.svg +5 -0
- package/src/lib/assets/description.svg +8 -0
- package/src/lib/assets/document_icon.svg +10 -0
- package/src/lib/assets/done_all.svg +8 -0
- package/src/lib/assets/download.svg +8 -0
- package/src/lib/assets/dropdown-arrow.svg +3 -0
- package/src/lib/assets/edit.svg +8 -0
- package/src/lib/assets/edit_calendar.svg +8 -0
- package/src/lib/assets/edit_icon.svg +5 -0
- package/src/lib/assets/edit_square.svg +3 -0
- package/src/lib/assets/error.svg +9 -0
- package/src/lib/assets/error_icon.svg +3 -0
- package/src/lib/assets/error_info.svg +3 -0
- package/src/lib/assets/event.svg +8 -0
- package/src/lib/assets/favorite.svg +8 -0
- package/src/lib/assets/file_filter_icon.svg +4 -0
- package/src/lib/assets/file_type_jpg.png +0 -0
- package/src/lib/assets/file_type_link.png +0 -0
- package/src/lib/assets/file_type_mov.png +0 -0
- package/src/lib/assets/file_type_mp3.png +0 -0
- package/src/lib/assets/file_type_pdf.png +0 -0
- package/src/lib/assets/file_type_ppt.png +0 -0
- package/src/lib/assets/file_type_txt.png +0 -0
- package/src/lib/assets/file_type_unsupported.png +0 -0
- package/src/lib/assets/file_type_word.png +0 -0
- package/src/lib/assets/file_type_xlsx.png +0 -0
- package/src/lib/assets/file_type_zip.png +0 -0
- package/src/lib/assets/filter_list.svg +8 -0
- package/src/lib/assets/filter_list_off.svg +8 -0
- package/src/lib/assets/flags.svg +5 -0
- package/src/lib/assets/flip_camera_ios.svg +8 -0
- package/src/lib/assets/food_drink.svg +10 -0
- package/src/lib/assets/forward.svg +8 -0
- package/src/lib/assets/gif.svg +3 -0
- package/src/lib/assets/graphic_eq.svg +3 -0
- package/src/lib/assets/group_filter_icon.svg +3 -0
- package/src/lib/assets/groups_empty_state.svg +8 -0
- package/src/lib/assets/groups_empty_state_dark.svg +8 -0
- package/src/lib/assets/help.svg +8 -0
- package/src/lib/assets/history.svg +8 -0
- package/src/lib/assets/image_placeholder.png +0 -0
- package/src/lib/assets/incoming_video.svg +8 -0
- package/src/lib/assets/incoming_video_no_fill.svg +4 -0
- package/src/lib/assets/info_icon.svg +3 -0
- package/src/lib/assets/info_icon_fill.svg +5 -0
- package/src/lib/assets/italic-format.svg +3 -0
- package/src/lib/assets/keep.svg +8 -0
- package/src/lib/assets/keep_off.svg +8 -0
- package/src/lib/assets/keyboard.svg +8 -0
- package/src/lib/assets/keyboard_arrow_down.svg +8 -0
- package/src/lib/assets/keyboard_arrow_up.svg +8 -0
- package/src/lib/assets/language.svg +8 -0
- package/src/lib/assets/link.svg +8 -0
- package/src/lib/assets/link_filter_icon.svg +3 -0
- package/src/lib/assets/link_icon_2x.svg +3 -0
- package/src/lib/assets/list_error_state_icon.svg +20 -0
- package/src/lib/assets/list_error_state_icon_dark.svg +27 -0
- package/src/lib/assets/loading.svg +5 -0
- package/src/lib/assets/loading_animation.svg +5 -0
- package/src/lib/assets/loading_icon.svg +3 -0
- package/src/lib/assets/location_on.svg +8 -0
- package/src/lib/assets/lock.svg +8 -0
- package/src/lib/assets/lock_open.svg +8 -0
- package/src/lib/assets/logout.svg +3 -0
- package/src/lib/assets/mail.svg +8 -0
- package/src/lib/assets/message_blocked.svg +8 -0
- package/src/lib/assets/message_delete.svg +8 -0
- package/src/lib/assets/messages_filter_icon.svg +1 -0
- package/src/lib/assets/mic.svg +3 -0
- package/src/lib/assets/mic_fill.svg +8 -0
- package/src/lib/assets/mic_off.svg +8 -0
- package/src/lib/assets/missedCallIcon.svg +10 -0
- package/src/lib/assets/missed_video_call.svg +8 -0
- package/src/lib/assets/missed_video_call_no_fill.svg +3 -0
- package/src/lib/assets/mood.svg +3 -0
- package/src/lib/assets/mood_fill.svg +8 -0
- package/src/lib/assets/more_icon.svg +5 -0
- package/src/lib/assets/more_vert.svg +8 -0
- package/src/lib/assets/near_me.svg +3 -0
- package/src/lib/assets/new-chat.svg +3 -0
- package/src/lib/assets/no-messages.svg +8 -0
- package/src/lib/assets/no_photography.svg +8 -0
- package/src/lib/assets/notifications.svg +8 -0
- package/src/lib/assets/notifications_off.svg +8 -0
- package/src/lib/assets/number-list-format.svg +3 -0
- package/src/lib/assets/objects.svg +10 -0
- package/src/lib/assets/outgoing_video.svg +8 -0
- package/src/lib/assets/outgoing_video_no_fill.svg +4 -0
- package/src/lib/assets/pause.svg +8 -0
- package/src/lib/assets/person.svg +8 -0
- package/src/lib/assets/person_add.svg +8 -0
- package/src/lib/assets/phone_in_talk.svg +8 -0
- package/src/lib/assets/phone_incoming.svg +3 -0
- package/src/lib/assets/phone_incoming_no_fill.svg +3 -0
- package/src/lib/assets/phone_missed.svg +8 -0
- package/src/lib/assets/phone_missed_no_fill.svg +3 -0
- package/src/lib/assets/phone_outgoing.svg +4 -0
- package/src/lib/assets/phone_outgoing_no_fill.svg +4 -0
- package/src/lib/assets/photo.svg +8 -0
- package/src/lib/assets/photo_camera.svg +8 -0
- package/src/lib/assets/photo_filter_icon.svg +3 -0
- package/src/lib/assets/placeholder.png +0 -0
- package/src/lib/assets/play_arrow.svg +8 -0
- package/src/lib/assets/play_circle.svg +8 -0
- package/src/lib/assets/poll.svg +5 -0
- package/src/lib/assets/quote-format.svg +3 -0
- package/src/lib/assets/readIcon.svg +5 -0
- package/src/lib/assets/rearrange.svg +3 -0
- package/src/lib/assets/recording_icon.svg +10 -0
- package/src/lib/assets/recording_resume.svg +10 -0
- package/src/lib/assets/refresh.svg +8 -0
- package/src/lib/assets/reply.svg +8 -0
- package/src/lib/assets/reply_all.svg +8 -0
- package/src/lib/assets/reply_in_thread.svg +10 -0
- package/src/lib/assets/retry.svg +3 -0
- package/src/lib/assets/right-arrow.svg +3 -0
- package/src/lib/assets/sample-audio.wav +0 -0
- package/src/lib/assets/sample-video-thumbnail.svg +7 -0
- package/src/lib/assets/sample-video.mp4 +0 -0
- package/src/lib/assets/schedule.svg +8 -0
- package/src/lib/assets/screen_share.svg +8 -0
- package/src/lib/assets/search.svg +8 -0
- package/src/lib/assets/search_message_icon.svg +8 -0
- package/src/lib/assets/send-message.svg +3 -0
- package/src/lib/assets/send_fill.svg +8 -0
- package/src/lib/assets/settings.svg +8 -0
- package/src/lib/assets/share.svg +8 -0
- package/src/lib/assets/shield.svg +3 -0
- package/src/lib/assets/smileys_people.svg +10 -0
- package/src/lib/assets/star.svg +8 -0
- package/src/lib/assets/status_delivered.svg +5 -0
- package/src/lib/assets/status_error.svg +16 -0
- package/src/lib/assets/status_read.svg +3 -0
- package/src/lib/assets/status_sending.svg +5 -0
- package/src/lib/assets/status_sent.svg +5 -0
- package/src/lib/assets/sticker.svg +3 -0
- package/src/lib/assets/sticker_fill.svg +4 -0
- package/src/lib/assets/stop-message.svg +3 -0
- package/src/lib/assets/stop.svg +8 -0
- package/src/lib/assets/stop_circle.svg +8 -0
- package/src/lib/assets/stop_screen_share.svg +8 -0
- package/src/lib/assets/strike-out-format.svg +3 -0
- package/src/lib/assets/subdirectory_arrow_left.svg +8 -0
- package/src/lib/assets/subdirectory_arrow_right.svg +8 -0
- package/src/lib/assets/sunny.svg +8 -0
- package/src/lib/assets/symbols.svg +13 -0
- package/src/lib/assets/thumb_down.svg +8 -0
- package/src/lib/assets/thumb_up.svg +8 -0
- package/src/lib/assets/toast_check_circle.svg +3 -0
- package/src/lib/assets/toast_error.svg +3 -0
- package/src/lib/assets/toast_info.svg +3 -0
- package/src/lib/assets/toast_warning.svg +3 -0
- package/src/lib/assets/toolbar-toggle.svg +3 -0
- package/src/lib/assets/tooltip-side.svg +5 -0
- package/src/lib/assets/tooltip.svg +5 -0
- package/src/lib/assets/translate.svg +3 -0
- package/src/lib/assets/travel_places.svg +10 -0
- package/src/lib/assets/ulr-format.svg +3 -0
- package/src/lib/assets/underline-format.svg +3 -0
- package/src/lib/assets/unread_filter_icon.svg +7 -0
- package/src/lib/assets/upload.svg +3 -0
- package/src/lib/assets/user_empty.svg +8 -0
- package/src/lib/assets/user_empty_dark.svg +8 -0
- package/src/lib/assets/video_call.svg +8 -0
- package/src/lib/assets/video_call_button.svg +5 -0
- package/src/lib/assets/video_filter_icon.svg +3 -0
- package/src/lib/assets/videocam.svg +8 -0
- package/src/lib/assets/videocam_off.svg +8 -0
- package/src/lib/assets/visibility_off.svg +3 -0
- package/src/lib/assets/volume_down.svg +8 -0
- package/src/lib/assets/volume_mute.svg +8 -0
- package/src/lib/assets/volume_off.svg +8 -0
- package/src/lib/assets/volume_up.svg +8 -0
- package/src/lib/assets/warning.svg +8 -0
- package/src/lib/assets/warning_neutral.svg +3 -0
- package/src/lib/assets/wifi.svg +8 -0
- package/src/lib/assets/zoom_in_map.svg +8 -0
- package/src/lib/assets/zoom_out_map.svg +8 -0
- package/styles/accessibility.css +148 -0
- package/styles/css-variables.css +547 -0
- package/styles/fonts/Roboto/LICENSE.txt +202 -0
- package/styles/fonts/Roboto/Roboto-Black.ttf +0 -0
- package/styles/fonts/Roboto/Roboto-BlackItalic.ttf +0 -0
- package/styles/fonts/Roboto/Roboto-Bold.ttf +0 -0
- package/styles/fonts/Roboto/Roboto-BoldItalic.ttf +0 -0
- package/styles/fonts/Roboto/Roboto-Italic.ttf +0 -0
- package/styles/fonts/Roboto/Roboto-Light.ttf +0 -0
- package/styles/fonts/Roboto/Roboto-LightItalic.ttf +0 -0
- package/styles/fonts/Roboto/Roboto-Medium.ttf +0 -0
- package/styles/fonts/Roboto/Roboto-MediumItalic.ttf +0 -0
- package/styles/fonts/Roboto/Roboto-Regular.ttf +0 -0
- package/styles/fonts/Roboto/Roboto-Thin.ttf +0 -0
- package/styles/fonts/Roboto/Roboto-ThinItalic.ttf +0 -0
- package/styles/mention-styles.css +190 -0
- package/styles/rich-text-styles.css +310 -0
- package/types/cometchat-chat-uikit-angular.d.ts +34636 -0
- package/AI/AIAssistBot/AIAssistBot.d.ts +0 -7
- package/AI/AIAssistBot/AIAssistBotDecorator.d.ts +0 -11
- package/AI/AIConversationStarter/AIConversationStarter.d.ts +0 -7
- package/AI/AIConversationStarter/AIConversationStarterDecorator.d.ts +0 -9
- package/AI/AIConversationSummary/AIConversationSummary.d.ts +0 -7
- package/AI/AIConversationSummary/AIConversationSummaryDecorator.d.ts +0 -10
- package/AI/AISmartReplies/AISmartReplies.d.ts +0 -7
- package/AI/AISmartReplies/AISmartRepliesDecorator.d.ts +0 -9
- package/Calls/CallingExtension.d.ts +0 -6
- package/Calls/CallingExtensionDecorator.d.ts +0 -16
- package/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.d.ts +0 -79
- package/Calls/CometChatCallButtons/cometchat-call-buttons.module.d.ts +0 -11
- package/Calls/CometChatCallLogDetails/cometchat-call-log-details/cometchat-call-log-details.component.d.ts +0 -136
- package/Calls/CometChatCallLogDetails/cometchat-call-log-details.module.d.ts +0 -14
- package/Calls/CometChatCallLogHistory/cometchat-call-log-history/cometchat-call-log-history.component.d.ts +0 -112
- package/Calls/CometChatCallLogHistory/cometchat-call-log-history.module.d.ts +0 -10
- package/Calls/CometChatCallLogParticipants/cometchat-call-log-participants/cometchat-call-log-participants.component.d.ts +0 -77
- package/Calls/CometChatCallLogParticipants/cometchat-call-log-participants.module.d.ts +0 -10
- package/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings/cometchat-call-log-recordings.component.d.ts +0 -91
- package/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings.module.d.ts +0 -10
- package/Calls/CometChatCallLogs/cometchat-call-logs/cometchat-call-logs.component.d.ts +0 -134
- package/Calls/CometChatCallLogs/cometchat-call-logs.module.d.ts +0 -12
- package/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details/cometchat-call-logs-with-details.component.d.ts +0 -54
- package/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details.module.d.ts +0 -12
- package/Calls/CometChatIncomingCall/cometchat-incoming-call/cometchat-incoming-call.component.d.ts +0 -81
- package/Calls/CometChatIncomingCall/cometchat-incoming-call.module.d.ts +0 -11
- package/Calls/CometChatOngoingCall/cometchat-ongoing-call/cometchat-ongoing-call.component.d.ts +0 -38
- package/Calls/CometChatOngoingCall/cometchat-ongoing-call.module.d.ts +0 -9
- package/Calls/CometChatOutgoingCall/cometchat-outgoing-call/cometchat-outgoing-call.component.d.ts +0 -57
- package/Calls/CometChatOutgoingCall/cometchat-outgoing-call.module.d.ts +0 -10
- package/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.d.ts +0 -117
- package/CometChatAddMembers/cometchat-add-members.module.d.ts +0 -12
- package/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.d.ts +0 -152
- package/CometChatBannedMembers/cometchat-banned-members.module.d.ts +0 -13
- package/CometChatContacts/cometchat-contacts/cometchat-contacts.component.d.ts +0 -66
- package/CometChatContacts/cometchat-contacts.module.d.ts +0 -12
- package/CometChatConversations/cometchat-conversations/cometchat-conversations.component.d.ts +0 -387
- package/CometChatConversations/cometchat-conversations.module.d.ts +0 -10
- package/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.d.ts +0 -98
- package/CometChatConversationsWithMessages/cometchat-conversations-with-messages.module.d.ts +0 -11
- package/CometChatDetails/cometchat-details/cometchat-details.component.d.ts +0 -164
- package/CometChatDetails/cometchat-details.module.d.ts +0 -12
- package/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.d.ts +0 -162
- package/CometChatGroupMembers/cometchat-group-members.module.d.ts +0 -13
- package/CometChatGroups/cometchat-groups/cometchat-groups.component.d.ts +0 -150
- package/CometChatGroups/cometchat-groups.module.d.ts +0 -10
- package/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.d.ts +0 -103
- package/CometChatGroupsWithMessages/cometchat-groups-with-messages.module.d.ts +0 -11
- package/CometChatList/cometchat-list.component.d.ts +0 -91
- package/CometChatList/cometchat-list.module.d.ts +0 -10
- package/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.d.ts +0 -63
- package/CometChatMessageBubble/cometchat-message-bubble.module.d.ts +0 -8
- package/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.d.ts +0 -326
- package/CometChatMessageComposer/cometchat-message-composer.module.d.ts +0 -11
- package/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.d.ts +0 -99
- package/CometChatMessageHeader/cometchat-message-header.module.d.ts +0 -9
- package/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.d.ts +0 -99
- package/CometChatMessageInformation/cometchat-message-information.module.d.ts +0 -10
- package/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.d.ts +0 -819
- package/CometChatMessageList/cometchat-message-list.module.d.ts +0 -13
- package/CometChatMessages/cometchat-messages/cometchat-messages.component.d.ts +0 -149
- package/CometChatMessages/cometchat-messages.module.d.ts +0 -16
- package/CometChatTheme.service.d.ts +0 -7
- package/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.d.ts +0 -85
- package/CometChatThreadedMessages/cometchat-threaded-messages.module.d.ts +0 -12
- package/CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component.d.ts +0 -88
- package/CometChatTransferOwnership/cometchat-transfer-ownership.module.d.ts +0 -10
- package/CometChatUserMemberWrapper/cometchat-user-member-wrapper.component.d.ts +0 -41
- package/CometChatUserMemberWrapper/cometchat-user-member-wrapper.module.d.ts +0 -11
- package/CometChatUsers/cometchat-users/cometchat-users.component.d.ts +0 -194
- package/CometChatUsers/cometchat-users.module.d.ts +0 -11
- package/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.d.ts +0 -72
- package/CometChatUsersWithMessages/cometchat-users-with-messages.module.d.ts +0 -10
- package/Extensions/CollaborativeDocument/CollaborativeDocumentExtension.d.ts +0 -5
- package/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.d.ts +0 -14
- package/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension.d.ts +0 -5
- package/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.d.ts +0 -14
- package/Extensions/ImageModeration/ImageModerationExtension.d.ts +0 -5
- package/Extensions/ImageModeration/ImageModerationExtensionDecorator.d.ts +0 -6
- package/Extensions/LinkPreviewExtension/LinkPreviewExtension.d.ts +0 -5
- package/Extensions/LinkPreviewExtension/LinkPreviewExtensionDecorator.d.ts +0 -6
- package/Extensions/MessageTranslation/MessageTranslationExtension.d.ts +0 -5
- package/Extensions/MessageTranslation/MessageTranslationExtensionDecorator.d.ts +0 -9
- package/Extensions/PollsExtension/PollsExtension.d.ts +0 -5
- package/Extensions/PollsExtension/PollsExtensionDecorator.d.ts +0 -14
- package/Extensions/SmartReplies/SmartRepliesExtension.d.ts +0 -5
- package/Extensions/SmartReplies/SmartRepliesExtensionDecorator.d.ts +0 -16
- package/Extensions/Stickers/StickersExtension.d.ts +0 -5
- package/Extensions/Stickers/StickersExtensionDecorator.d.ts +0 -28
- package/Extensions/TextModerator/TextModeratorExtension.d.ts +0 -6
- package/Extensions/TextModerator/TextModeratorExtensionDecorator.d.ts +0 -8
- package/Extensions/ThumbnailGeneration/ThumbnailGenerationExtension.d.ts +0 -5
- package/Extensions/ThumbnailGeneration/ThumbnailGenerationExtensionDecorator.d.ts +0 -6
- package/Screenshots/overview_cometchat_screens.png +0 -0
- package/Shared/CometChatUIkit/CometChatUIKit.d.ts +0 -49
- package/Shared/Framework/AIExtensionDataSource.d.ts +0 -5
- package/Shared/Framework/ChatConfigurator.d.ts +0 -8
- package/Shared/Framework/DataSource.d.ts +0 -40
- package/Shared/Framework/DataSourceDecorator.d.ts +0 -43
- package/Shared/Framework/ExtensionDataSource.d.ts +0 -3
- package/Shared/Utils/CallDetailUtils.d.ts +0 -8
- package/Shared/Utils/CallLogUtils.d.ts +0 -8
- package/Shared/Utils/ComeChatException.d.ts +0 -1
- package/Shared/Utils/MessageUtils.d.ts +0 -151
- package/Shared/Utils/UtilityFunctions.d.ts +0 -6
- package/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list/aiassist-bot-message-list.component.d.ts +0 -71
- package/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list.module.d.ts +0 -11
- package/Shared/Views/CometChatTabs/cometchat-tabs/cometchat-tabs.component.d.ts +0 -82
- package/Shared/Views/CometChatTabs/cometchat-tabs.module.d.ts +0 -8
- package/assets/.gitkeep +0 -0
- package/assets/Audio-Call.svg +0 -11
- package/assets/Audio-Call2x.svg +0 -11
- package/assets/Copy.svg +0 -17
- package/assets/Grid-layout.svg +0 -1
- package/assets/Heart.svg +0 -11
- package/assets/Imagemoderation.svg +0 -14
- package/assets/Info.svg +0 -13
- package/assets/InfoIcon.svg +0 -13
- package/assets/InfoSimpleIcon.svg +0 -4
- package/assets/Locked.svg +0 -10
- package/assets/More@2x.svg +0 -9
- package/assets/Plus.svg +0 -13
- package/assets/Private.svg +0 -10
- package/assets/Reactionsicon.svg +0 -9
- package/assets/Reply@2x.svg +0 -9
- package/assets/Send.svg +0 -12
- package/assets/Spinner.svg +0 -15
- package/assets/Stickers.svg +0 -16
- package/assets/Stipop.svg +0 -9
- package/assets/Video-call.svg +0 -12
- package/assets/Video-call2x.svg +0 -12
- package/assets/activity.svg +0 -22
- package/assets/addreaction.svg +0 -9
- package/assets/ai-bot.svg +0 -24
- package/assets/ai-empty.svg +0 -22
- package/assets/ai-error.svg +0 -21
- package/assets/animals.svg +0 -15
- package/assets/attachment-file.svg +0 -14
- package/assets/audio-file.svg +0 -12
- package/assets/back.png +0 -0
- package/assets/backbutton.svg +0 -12
- package/assets/call.svg +0 -1
- package/assets/chats.svg +0 -1
- package/assets/checkmark.svg +0 -11
- package/assets/close.svg +0 -12
- package/assets/close2x.svg +0 -12
- package/assets/collaborativedocument.svg +0 -13
- package/assets/collaborativewhiteboard.svg +0 -12
- package/assets/create-button.svg +0 -12
- package/assets/declaration.d.ts +0 -3
- package/assets/delete.svg +0 -7
- package/assets/deleteicon.svg +0 -15
- package/assets/down-arrow.svg +0 -1
- package/assets/download.svg +0 -13
- package/assets/editicon.svg +0 -14
- package/assets/emoji.svg +0 -2693
- package/assets/empty-slot.svg +0 -14
- package/assets/file-upload.svg +0 -2693
- package/assets/flags.svg +0 -12
- package/assets/food.svg +0 -26
- package/assets/greaterThanIcon.svg +0 -3
- package/assets/group.svg +0 -40
- package/assets/heart-reaction.png +0 -0
- package/assets/heart.png +0 -0
- package/assets/image.svg +0 -2693
- package/assets/incomingAudioCallIconUrl.svg +0 -5
- package/assets/incomingVideoCallIconUrl.svg +0 -6
- package/assets/incomingcall.wav +0 -0
- package/assets/increase-size.svg +0 -6
- package/assets/location.svg +0 -2693
- package/assets/message-delivered.png +0 -0
- package/assets/message-delivered.svg +0 -5
- package/assets/message-read.png +0 -0
- package/assets/message-read.svg +0 -5
- package/assets/message-sent.png +0 -0
- package/assets/message-sent.svg +0 -3
- package/assets/mic.svg +0 -11
- package/assets/missedAudioCallIconUrl.svg +0 -5
- package/assets/missedVideoCallIconUrl.svg +0 -6
- package/assets/moreicon.svg +0 -9
- package/assets/new-chat.svg +0 -13
- package/assets/new-message-icon.svg +0 -1
- package/assets/objects.svg +0 -13
- package/assets/open-thread.svg +0 -11
- package/assets/outgoingAudioCallIconUrl.svg +0 -5
- package/assets/outgoingVideoCallIconUrl.svg +0 -6
- package/assets/password-protected-group.svg +0 -3
- package/assets/pause-icon.svg +0 -14
- package/assets/photolibrary.svg +0 -11
- package/assets/placeholder.png +0 -0
- package/assets/play-icon.svg +0 -18
- package/assets/plus-rotated.svg +0 -13
- package/assets/polls.svg +0 -14
- package/assets/privacy.svg +0 -4
- package/assets/private-group.svg +0 -9
- package/assets/public.svg +0 -3
- package/assets/record-icon.svg +0 -8
- package/assets/reduce-size.svg +0 -6
- package/assets/right-arrow.svg +0 -6
- package/assets/search.png +0 -0
- package/assets/search.svg +0 -4
- package/assets/side-arrow.svg +0 -1
- package/assets/smileys.svg +0 -16
- package/assets/start-chat.svg +0 -1
- package/assets/start-conversation.svg +0 -46
- package/assets/stop.svg +0 -1
- package/assets/symbols.svg +0 -16
- package/assets/thread-arrow.svg +0 -1
- package/assets/thread-icon.svg +0 -38
- package/assets/threadIndicatorIcon.svg +0 -11
- package/assets/threadicon.svg +0 -14
- package/assets/translation.svg +0 -16
- package/assets/travel.svg +0 -18
- package/assets/unsafe-content.svg +0 -23
- package/assets/user.svg +0 -31
- package/assets/video-upload.svg +0 -2693
- package/assets/video.svg +0 -12
- package/assets/wait.png +0 -0
- package/assets/warning-small.png +0 -0
- package/assets/warning-small.svg +0 -5
- package/cometchat-chat-uikit-angular.d.ts +0 -5
- package/esm2020/AI/AIAssistBot/AIAssistBot.mjs +0 -21
- package/esm2020/AI/AIAssistBot/AIAssistBotDecorator.mjs +0 -68
- package/esm2020/AI/AIConversationStarter/AIConversationStarter.mjs +0 -21
- package/esm2020/AI/AIConversationStarter/AIConversationStarterDecorator.mjs +0 -31
- package/esm2020/AI/AIConversationSummary/AIConversationSummary.mjs +0 -21
- package/esm2020/AI/AIConversationSummary/AIConversationSummaryDecorator.mjs +0 -32
- package/esm2020/AI/AISmartReplies/AISmartReplies.mjs +0 -21
- package/esm2020/AI/AISmartReplies/AISmartRepliesDecorator.mjs +0 -31
- package/esm2020/Calls/CallingExtension.mjs +0 -14
- package/esm2020/Calls/CallingExtensionDecorator.mjs +0 -127
- package/esm2020/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.mjs +0 -409
- package/esm2020/Calls/CometChatCallButtons/cometchat-call-buttons.module.mjs +0 -32
- package/esm2020/Calls/CometChatCallLogDetails/cometchat-call-log-details/cometchat-call-log-details.component.mjs +0 -373
- package/esm2020/Calls/CometChatCallLogDetails/cometchat-call-log-details.module.mjs +0 -47
- package/esm2020/Calls/CometChatCallLogHistory/cometchat-call-log-history/cometchat-call-log-history.component.mjs +0 -352
- package/esm2020/Calls/CometChatCallLogHistory/cometchat-call-log-history.module.mjs +0 -21
- package/esm2020/Calls/CometChatCallLogParticipants/cometchat-call-log-participants/cometchat-call-log-participants.component.mjs +0 -189
- package/esm2020/Calls/CometChatCallLogParticipants/cometchat-call-log-participants.module.mjs +0 -21
- package/esm2020/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings/cometchat-call-log-recordings.component.mjs +0 -246
- package/esm2020/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings.module.mjs +0 -21
- package/esm2020/Calls/CometChatCallLogs/cometchat-call-logs/cometchat-call-logs.component.mjs +0 -592
- package/esm2020/Calls/CometChatCallLogs/cometchat-call-logs.module.mjs +0 -36
- package/esm2020/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details/cometchat-call-logs-with-details.component.mjs +0 -198
- package/esm2020/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details.module.mjs +0 -39
- package/esm2020/Calls/CometChatIncomingCall/cometchat-incoming-call/cometchat-incoming-call.component.mjs +0 -464
- package/esm2020/Calls/CometChatIncomingCall/cometchat-incoming-call.module.mjs +0 -32
- package/esm2020/Calls/CometChatOngoingCall/cometchat-ongoing-call/cometchat-ongoing-call.component.mjs +0 -176
- package/esm2020/Calls/CometChatOngoingCall/cometchat-ongoing-call.module.mjs +0 -27
- package/esm2020/Calls/CometChatOutgoingCall/cometchat-outgoing-call/cometchat-outgoing-call.component.mjs +0 -188
- package/esm2020/Calls/CometChatOutgoingCall/cometchat-outgoing-call.module.mjs +0 -28
- package/esm2020/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.mjs +0 -374
- package/esm2020/CometChatAddMembers/cometchat-add-members.module.mjs +0 -23
- package/esm2020/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.mjs +0 -530
- package/esm2020/CometChatBannedMembers/cometchat-banned-members.module.mjs +0 -24
- package/esm2020/CometChatContacts/cometchat-contacts/cometchat-contacts.component.mjs +0 -274
- package/esm2020/CometChatContacts/cometchat-contacts.module.mjs +0 -23
- package/esm2020/CometChatConversations/cometchat-conversations/cometchat-conversations.component.mjs +0 -1837
- package/esm2020/CometChatConversations/cometchat-conversations.module.mjs +0 -28
- package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.mjs +0 -413
- package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages.module.mjs +0 -35
- package/esm2020/CometChatDetails/cometchat-details/cometchat-details.component.mjs +0 -789
- package/esm2020/CometChatDetails/cometchat-details.module.mjs +0 -27
- package/esm2020/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.mjs +0 -807
- package/esm2020/CometChatGroupMembers/cometchat-group-members.module.mjs +0 -24
- package/esm2020/CometChatGroups/cometchat-groups/cometchat-groups.component.mjs +0 -681
- package/esm2020/CometChatGroups/cometchat-groups.module.mjs +0 -28
- package/esm2020/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.mjs +0 -499
- package/esm2020/CometChatGroupsWithMessages/cometchat-groups-with-messages.module.mjs +0 -35
- package/esm2020/CometChatList/cometchat-list.component.mjs +0 -225
- package/esm2020/CometChatList/cometchat-list.module.mjs +0 -28
- package/esm2020/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.mjs +0 -166
- package/esm2020/CometChatMessageBubble/cometchat-message-bubble.module.mjs +0 -23
- package/esm2020/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.mjs +0 -1976
- package/esm2020/CometChatMessageComposer/cometchat-message-composer.module.mjs +0 -22
- package/esm2020/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.mjs +0 -467
- package/esm2020/CometChatMessageHeader/cometchat-message-header.module.mjs +0 -26
- package/esm2020/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.mjs +0 -308
- package/esm2020/CometChatMessageInformation/cometchat-message-information.module.mjs +0 -28
- package/esm2020/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.mjs +0 -4360
- package/esm2020/CometChatMessageList/cometchat-message-list.module.mjs +0 -42
- package/esm2020/CometChatMessages/cometchat-messages/cometchat-messages.component.mjs +0 -449
- package/esm2020/CometChatMessages/cometchat-messages.module.mjs +0 -52
- package/esm2020/CometChatTheme.service.mjs +0 -17
- package/esm2020/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.mjs +0 -372
- package/esm2020/CometChatThreadedMessages/cometchat-threaded-messages.module.mjs +0 -36
- package/esm2020/CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component.mjs +0 -336
- package/esm2020/CometChatTransferOwnership/cometchat-transfer-ownership.module.mjs +0 -21
- package/esm2020/CometChatUserMemberWrapper/cometchat-user-member-wrapper.component.mjs +0 -75
- package/esm2020/CometChatUserMemberWrapper/cometchat-user-member-wrapper.module.mjs +0 -21
- package/esm2020/CometChatUsers/cometchat-users/cometchat-users.component.mjs +0 -788
- package/esm2020/CometChatUsers/cometchat-users.module.mjs +0 -32
- package/esm2020/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.mjs +0 -205
- package/esm2020/CometChatUsersWithMessages/cometchat-users-with-messages.module.mjs +0 -31
- package/esm2020/Extensions/CollaborativeDocument/CollaborativeDocumentExtension.mjs +0 -12
- package/esm2020/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.mjs +0 -93
- package/esm2020/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension.mjs +0 -12
- package/esm2020/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.mjs +0 -94
- package/esm2020/Extensions/ImageModeration/ImageModerationExtension.mjs +0 -12
- package/esm2020/Extensions/ImageModeration/ImageModerationExtensionDecorator.mjs +0 -10
- package/esm2020/Extensions/LinkPreviewExtension/LinkPreviewExtension.mjs +0 -12
- package/esm2020/Extensions/LinkPreviewExtension/LinkPreviewExtensionDecorator.mjs +0 -10
- package/esm2020/Extensions/MessageTranslation/MessageTranslationExtension.mjs +0 -12
- package/esm2020/Extensions/MessageTranslation/MessageTranslationExtensionDecorator.mjs +0 -31
- package/esm2020/Extensions/PollsExtension/PollsExtension.mjs +0 -12
- package/esm2020/Extensions/PollsExtension/PollsExtensionDecorator.mjs +0 -77
- package/esm2020/Extensions/SmartReplies/SmartRepliesExtension.mjs +0 -12
- package/esm2020/Extensions/SmartReplies/SmartRepliesExtensionDecorator.mjs +0 -115
- package/esm2020/Extensions/Stickers/StickersExtension.mjs +0 -12
- package/esm2020/Extensions/Stickers/StickersExtensionDecorator.mjs +0 -125
- package/esm2020/Extensions/TextModerator/TextModeratorExtension.mjs +0 -22
- package/esm2020/Extensions/TextModerator/TextModeratorExtensionDecorator.mjs +0 -87
- package/esm2020/Extensions/ThumbnailGeneration/ThumbnailGenerationExtension.mjs +0 -12
- package/esm2020/Extensions/ThumbnailGeneration/ThumbnailGenerationExtensionDecorator.mjs +0 -10
- package/esm2020/Shared/CometChatUIkit/CometChatUIKit.mjs +0 -495
- package/esm2020/Shared/Framework/AIExtensionDataSource.mjs +0 -3
- package/esm2020/Shared/Framework/ChatConfigurator.mjs +0 -23
- package/esm2020/Shared/Framework/DataSource.mjs +0 -3
- package/esm2020/Shared/Framework/DataSourceDecorator.mjs +0 -113
- package/esm2020/Shared/Framework/ExtensionDataSource.mjs +0 -4
- package/esm2020/Shared/Utils/CallDetailUtils.mjs +0 -72
- package/esm2020/Shared/Utils/CallLogUtils.mjs +0 -122
- package/esm2020/Shared/Utils/ComeChatException.mjs +0 -10
- package/esm2020/Shared/Utils/MessageUtils.mjs +0 -682
- package/esm2020/Shared/Utils/UtilityFunctions.mjs +0 -36
- package/esm2020/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list/aiassist-bot-message-list.component.mjs +0 -290
- package/esm2020/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list.module.mjs +0 -22
- package/esm2020/Shared/Views/CometChatTabs/cometchat-tabs/cometchat-tabs.component.mjs +0 -124
- package/esm2020/Shared/Views/CometChatTabs/cometchat-tabs.module.mjs +0 -23
- package/esm2020/cometchat-chat-uikit-angular.mjs +0 -5
- package/esm2020/public-api.mjs +0 -115
- package/examples/sample-app/README.md +0 -50
- package/fesm2015/cometchat-chat-uikit-angular.mjs +0 -22649
- package/fesm2015/cometchat-chat-uikit-angular.mjs.map +0 -1
- package/fesm2020/cometchat-chat-uikit-angular.mjs +0 -22538
- package/fesm2020/cometchat-chat-uikit-angular.mjs.map +0 -1
- package/public-api.d.ts +0 -106
- /package/{assets/message-privately.svg → src/lib/assets/send_message_privately.svg} +0 -0
|
@@ -1,499 +0,0 @@
|
|
|
1
|
-
import { Component, ViewChild, Input, ChangeDetectionStrategy } from "@angular/core";
|
|
2
|
-
import { CometChat } from "@cometchat/chat-sdk-javascript";
|
|
3
|
-
import { WithMessagesStyle, MessagesConfiguration, GroupsConfiguration, CreateGroupConfiguration, JoinGroupConfiguration, MessageHeaderStyle } from '@cometchat/uikit-shared';
|
|
4
|
-
import '@cometchat/uikit-elements';
|
|
5
|
-
import { CreateGroupStyle, JoinGroupStyle, ListItemStyle } from "@cometchat/uikit-elements";
|
|
6
|
-
import { localize, CometChatTheme, CometChatUIKitConstants, fontHelper, CometChatGroupEvents, CometChatUIEvents } from "@cometchat/uikit-resources";
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../../CometChatTheme.service";
|
|
9
|
-
import * as i2 from "../../CometChatGroups/cometchat-groups/cometchat-groups.component";
|
|
10
|
-
import * as i3 from "../../CometChatMessages/cometchat-messages/cometchat-messages.component";
|
|
11
|
-
import * as i4 from "../../CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component";
|
|
12
|
-
import * as i5 from "@angular/common";
|
|
13
|
-
/**
|
|
14
|
-
*
|
|
15
|
-
* CometChatGroupsWithMessagesComponent is a wrapper component for CometChatMessagesComponent and CometChatConversations component to show chats and messages in one screen
|
|
16
|
-
*
|
|
17
|
-
* @version 1.0.0
|
|
18
|
-
* @author CometChatTeam
|
|
19
|
-
* @copyright © 2022 CometChat Inc.
|
|
20
|
-
*
|
|
21
|
-
*/
|
|
22
|
-
export class CometChatGroupsWithMessagesComponent {
|
|
23
|
-
constructor(elementRef, ref, themeService) {
|
|
24
|
-
this.elementRef = elementRef;
|
|
25
|
-
this.ref = ref;
|
|
26
|
-
this.themeService = themeService;
|
|
27
|
-
this.isMobileView = false;
|
|
28
|
-
this.hideCreateGroup = false;
|
|
29
|
-
this.messageText = localize("NO_GROUPS_SELECTED");
|
|
30
|
-
this.groupsWithMessagesStyle = {
|
|
31
|
-
width: "100%",
|
|
32
|
-
height: "100%",
|
|
33
|
-
borderRadius: "none",
|
|
34
|
-
};
|
|
35
|
-
this.messagesConfiguration = new MessagesConfiguration({});
|
|
36
|
-
this.createGroupConfiguration = new CreateGroupConfiguration({});
|
|
37
|
-
this.joinGroupConfiguration = new JoinGroupConfiguration({});
|
|
38
|
-
this.groupsConfiguration = new GroupsConfiguration({});
|
|
39
|
-
this.onError = (error) => {
|
|
40
|
-
console.log(error);
|
|
41
|
-
};
|
|
42
|
-
this.theme = new CometChatTheme({});
|
|
43
|
-
this.backdropStyle = {};
|
|
44
|
-
this.createGroupStyle = {};
|
|
45
|
-
this.joinGroupStyle = {};
|
|
46
|
-
this.messageHeaderStyle = {};
|
|
47
|
-
this.listItemStyle = {};
|
|
48
|
-
/**
|
|
49
|
-
* Properties for internal use
|
|
50
|
-
*/
|
|
51
|
-
this.createIconURL = "assets/create-button.svg";
|
|
52
|
-
this.createGroupButtonStyle = {};
|
|
53
|
-
this.labelStyle = {
|
|
54
|
-
background: "transparent",
|
|
55
|
-
textFont: "700 22px Inter",
|
|
56
|
-
textColor: "rgba(20, 20, 20, 0.33)"
|
|
57
|
-
};
|
|
58
|
-
this.openCreateGroupPage = false;
|
|
59
|
-
this.openPasswordModal = false;
|
|
60
|
-
this.sideBarStyle = {};
|
|
61
|
-
this.onBack = () => {
|
|
62
|
-
this.group = null;
|
|
63
|
-
this.user = null;
|
|
64
|
-
this.ref.detectChanges();
|
|
65
|
-
};
|
|
66
|
-
this.closeCreateGroup = () => {
|
|
67
|
-
this.openCreateGroupPage = false;
|
|
68
|
-
this.ref.detectChanges();
|
|
69
|
-
};
|
|
70
|
-
this.closeJoinGroup = () => {
|
|
71
|
-
this.openPasswordModal = false;
|
|
72
|
-
};
|
|
73
|
-
this.onItemClick = (group) => {
|
|
74
|
-
this.openPasswordModal = false;
|
|
75
|
-
if (group.getHasJoined()) {
|
|
76
|
-
this.group = group;
|
|
77
|
-
this.user = null;
|
|
78
|
-
this.ref.detectChanges();
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
if (group.getType() == CometChatUIKitConstants.GroupTypes.password) {
|
|
82
|
-
this.group = null;
|
|
83
|
-
this.protectedGroup = group;
|
|
84
|
-
this.openPasswordModal = true;
|
|
85
|
-
this.ref.detectChanges();
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
CometChat.joinGroup(group).then((groupJoined) => {
|
|
89
|
-
CometChatGroupEvents.ccGroupMemberJoined.next({
|
|
90
|
-
joinedGroup: groupJoined,
|
|
91
|
-
joinedUser: this.loggedInUser
|
|
92
|
-
});
|
|
93
|
-
group.setHasJoined(true);
|
|
94
|
-
this.group = group;
|
|
95
|
-
this.user = null;
|
|
96
|
-
this.ref.detectChanges();
|
|
97
|
-
})
|
|
98
|
-
.catch((error) => {
|
|
99
|
-
if (this.onError) {
|
|
100
|
-
this.onError(error);
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
};
|
|
104
|
-
this.setCreateGroupStyles = () => {
|
|
105
|
-
let defaultStyle = new CreateGroupStyle({
|
|
106
|
-
boxShadow: `0px 0px 8px ${this.themeService.theme.palette.getAccent50()}`,
|
|
107
|
-
groupTypeTextFont: fontHelper(this.themeService.theme.typography.subtitle2),
|
|
108
|
-
groupTypeBorder: `1px solid ${this.themeService.theme.palette.getAccent600()}`,
|
|
109
|
-
groupTypeBorderRadius: "0",
|
|
110
|
-
groupTypeTextColor: this.themeService.theme.palette.getAccent(),
|
|
111
|
-
groupTypeTextBackground: "transparent",
|
|
112
|
-
groupTypeBackground: this.themeService.theme.palette.getAccent100(),
|
|
113
|
-
groupTypeBoxShadow: "",
|
|
114
|
-
activeGroupTypeTextFont: fontHelper(this.themeService.theme.typography.subtitle2),
|
|
115
|
-
activeGroupTypeTextColor: this.themeService.theme.palette.getAccent(),
|
|
116
|
-
activeGroupTypeBackground: this.themeService.theme.palette.getAccent900(),
|
|
117
|
-
activeGroupTypeBoxShadow: `${this.themeService.theme.palette.getAccent200()} 0 3px 8px 0`,
|
|
118
|
-
activeGroupTypeBorderRadius: "8px",
|
|
119
|
-
activeGroupTypeBorder: "none",
|
|
120
|
-
groupTypeTextBoxShadow: "none",
|
|
121
|
-
groupTypeTextBorderRadius: "0",
|
|
122
|
-
closeIconTint: this.themeService.theme.palette.getPrimary(),
|
|
123
|
-
titleTextFont: fontHelper(this.themeService.theme.typography.title1),
|
|
124
|
-
titleTextColor: this.themeService.theme.palette.getAccent(),
|
|
125
|
-
errorTextFont: fontHelper(this.themeService.theme.typography.subtitle1),
|
|
126
|
-
errorTextBackground: this.themeService.theme.palette.getError(),
|
|
127
|
-
errorTextBorderRadius: "8px",
|
|
128
|
-
errorTextBorder: "none",
|
|
129
|
-
errorTextColor: this.themeService.theme.palette.getError(),
|
|
130
|
-
nameInputPlaceholderTextFont: fontHelper(this.themeService.theme.typography.subtitle1),
|
|
131
|
-
nameInputPlaceholderTextColor: this.themeService.theme.palette.getAccent600(),
|
|
132
|
-
nameInputBackground: this.themeService.theme.palette.getAccent100(),
|
|
133
|
-
nameInputTextFont: fontHelper(this.themeService.theme.typography.subtitle1),
|
|
134
|
-
nameInputTextColor: this.themeService.theme.palette.getAccent(),
|
|
135
|
-
nameInputBorder: "none",
|
|
136
|
-
nameInputBorderRadius: "8px",
|
|
137
|
-
nameInputBoxShadow: `${this.themeService.theme.palette.getAccent100()} 0 0 0 1px`,
|
|
138
|
-
passwordInputPlaceholderTextFont: fontHelper(this.themeService.theme.typography.subtitle1),
|
|
139
|
-
passwordInputPlaceholderTextColor: this.themeService.theme.palette.getAccent600(),
|
|
140
|
-
passwordInputBackground: this.themeService.theme.palette.getAccent100(),
|
|
141
|
-
passwordInputBorder: "none",
|
|
142
|
-
passwordInputBorderRadius: "8px",
|
|
143
|
-
passwordInputBoxShadow: `${this.themeService.theme.palette.getAccent100()} 0 0 0 1px`,
|
|
144
|
-
passwordInputTextFont: fontHelper(this.themeService.theme.typography.subtitle1),
|
|
145
|
-
passwordInputTextColor: this.themeService.theme.palette.getAccent(),
|
|
146
|
-
createGroupButtonTextFont: fontHelper(this.themeService.theme.typography.text2),
|
|
147
|
-
createGroupButtonTextColor: this.themeService.theme.palette.getAccent900("light"),
|
|
148
|
-
createGroupButtonBackground: this.themeService.theme.palette.getPrimary(),
|
|
149
|
-
createGroupButtonBorderRadius: "8px",
|
|
150
|
-
createGroupButtonBorder: "none",
|
|
151
|
-
height: "620px",
|
|
152
|
-
width: "360px",
|
|
153
|
-
borderRadius: "8px",
|
|
154
|
-
background: this.themeService.theme.palette.getBackground()
|
|
155
|
-
});
|
|
156
|
-
this.createGroupStyle = { ...defaultStyle, ...this.createGroupConfiguration.createGroupStyle };
|
|
157
|
-
};
|
|
158
|
-
this.setJoinGroupStyles = () => {
|
|
159
|
-
let defaultStyle = new JoinGroupStyle({
|
|
160
|
-
boxShadow: `0px 0px 8px ${this.themeService.theme.palette.getAccent50()}`,
|
|
161
|
-
titleTextFont: fontHelper(this.themeService.theme.typography.title1),
|
|
162
|
-
titleTextColor: this.themeService.theme.palette.getAccent(),
|
|
163
|
-
passwordInputPlaceholderTextFont: fontHelper(this.themeService.theme.typography.subtitle1),
|
|
164
|
-
passwordInputPlaceholderTextColor: this.themeService.theme.palette.getAccent600(),
|
|
165
|
-
passwordInputBackground: this.themeService.theme.palette.getAccent100(),
|
|
166
|
-
passwordInputBorder: "none",
|
|
167
|
-
passwordInputBorderRadius: "8px",
|
|
168
|
-
passwordInputBoxShadow: `${this.themeService.theme.palette.getAccent100()} 0 0 0 1px`,
|
|
169
|
-
passwordInputTextFont: fontHelper(this.themeService.theme.typography.subtitle1),
|
|
170
|
-
passwordInputTextColor: this.themeService.theme.palette.getAccent(),
|
|
171
|
-
height: "100%",
|
|
172
|
-
width: "100%",
|
|
173
|
-
joinButtonTextFont: fontHelper(this.themeService.theme.typography.subtitle1),
|
|
174
|
-
joinButtonTextColor: this.themeService.theme.palette.getAccent("dark"),
|
|
175
|
-
joinButtonBackground: this.themeService.theme.palette.getPrimary(),
|
|
176
|
-
joinButtonBorderRadius: "8px",
|
|
177
|
-
joinButtonBorder: "none",
|
|
178
|
-
background: this.themeService.theme.palette.getBackground()
|
|
179
|
-
});
|
|
180
|
-
this.joinGroupStyle = { ...defaultStyle, ...this.joinGroupConfiguration.joinGroupStyle };
|
|
181
|
-
};
|
|
182
|
-
this.onGroupJoined = (event) => {
|
|
183
|
-
let group = event?.detail?.response;
|
|
184
|
-
this.openPasswordModal = false;
|
|
185
|
-
this.protectedGroup = null;
|
|
186
|
-
if (group) {
|
|
187
|
-
this.group = group;
|
|
188
|
-
this.user = null;
|
|
189
|
-
}
|
|
190
|
-
};
|
|
191
|
-
this.emptyMessageStyle = () => {
|
|
192
|
-
return {
|
|
193
|
-
background: this.groupsWithMessagesStyle.background || this.themeService.theme.palette.getBackground(),
|
|
194
|
-
height: this.groupsWithMessagesStyle.height,
|
|
195
|
-
width: `calc(${this.groupsWithMessagesStyle.width} - 280px)`,
|
|
196
|
-
border: "none",
|
|
197
|
-
borderRadius: this.groupsWithMessagesStyle.borderRadius,
|
|
198
|
-
};
|
|
199
|
-
};
|
|
200
|
-
this.groupsWrapperStyles = () => {
|
|
201
|
-
return {
|
|
202
|
-
height: this.groupsWithMessagesStyle.height,
|
|
203
|
-
width: this.groupsWithMessagesStyle.width,
|
|
204
|
-
border: this.groupsWithMessagesStyle.border,
|
|
205
|
-
borderRadius: this.groupsWithMessagesStyle.borderRadius,
|
|
206
|
-
background: this.groupsWithMessagesStyle.background || this.themeService.theme.palette.getBackground(),
|
|
207
|
-
position: 'relative'
|
|
208
|
-
};
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
|
-
ngOnChanges(changes) {
|
|
212
|
-
if (changes["isMobileView"]) {
|
|
213
|
-
if (this.isMobileView) {
|
|
214
|
-
this.messagesConfiguration.messageListConfiguration.messageInformationConfiguration.messageInformationStyle.height = "100%";
|
|
215
|
-
this.messagesConfiguration.messageListConfiguration.messageInformationConfiguration.messageInformationStyle.width = "100%";
|
|
216
|
-
this.messagesConfiguration.messageHeaderConfiguration.hideBackButton = false;
|
|
217
|
-
if (!this.messagesConfiguration.detailsConfiguration.detailsStyle.padding) {
|
|
218
|
-
this.messagesConfiguration.detailsConfiguration.detailsStyle.padding = "0 8px";
|
|
219
|
-
}
|
|
220
|
-
if (!this.messagesConfiguration.detailsConfiguration.addMembersConfiguration.addMembersStyle.padding) {
|
|
221
|
-
this.messagesConfiguration.detailsConfiguration.addMembersConfiguration.addMembersStyle.padding = "0 8px";
|
|
222
|
-
}
|
|
223
|
-
if (!this.messagesConfiguration.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.padding) {
|
|
224
|
-
this.messagesConfiguration.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.padding = "0 8px";
|
|
225
|
-
}
|
|
226
|
-
if (!this.messagesConfiguration.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.padding) {
|
|
227
|
-
this.messagesConfiguration.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.padding = "0 8px";
|
|
228
|
-
}
|
|
229
|
-
this.messagesConfiguration.messageHeaderConfiguration = { ...this.messagesConfiguration.messageHeaderConfiguration };
|
|
230
|
-
this.messagesConfiguration = { ...this.messagesConfiguration };
|
|
231
|
-
this.joinGroupConfiguration.messageHeaderConfiguration.hideBackButton = false;
|
|
232
|
-
this.joinGroupConfiguration.messageHeaderConfiguration = { ...this.joinGroupConfiguration.messageHeaderConfiguration };
|
|
233
|
-
this.joinGroupConfiguration = { ...this.joinGroupConfiguration };
|
|
234
|
-
}
|
|
235
|
-
else if (!this.isMobileView) {
|
|
236
|
-
this.messagesConfiguration.messageListConfiguration.messageInformationConfiguration.messageInformationStyle.height = "500px";
|
|
237
|
-
this.messagesConfiguration.messageListConfiguration.messageInformationConfiguration.messageInformationStyle.width = "500px";
|
|
238
|
-
this.messagesConfiguration.messageHeaderConfiguration.hideBackButton = true;
|
|
239
|
-
if (!this.messagesConfiguration.detailsConfiguration.detailsStyle.padding) {
|
|
240
|
-
this.messagesConfiguration.detailsConfiguration.detailsStyle.padding = "0 100px";
|
|
241
|
-
}
|
|
242
|
-
if (!this.messagesConfiguration.detailsConfiguration.addMembersConfiguration.addMembersStyle.padding) {
|
|
243
|
-
this.messagesConfiguration.detailsConfiguration.addMembersConfiguration.addMembersStyle.padding = "0 100px";
|
|
244
|
-
}
|
|
245
|
-
if (!this.messagesConfiguration.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.padding) {
|
|
246
|
-
this.messagesConfiguration.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.padding = "0 100px";
|
|
247
|
-
}
|
|
248
|
-
if (!this.messagesConfiguration.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.padding) {
|
|
249
|
-
this.messagesConfiguration.detailsConfiguration.bannedMembersConfiguration.bannedMembersStyle.padding = "0 100px";
|
|
250
|
-
}
|
|
251
|
-
this.messagesConfiguration.messageHeaderConfiguration = { ...this.messagesConfiguration.messageHeaderConfiguration };
|
|
252
|
-
this.messagesConfiguration = { ...this.messagesConfiguration };
|
|
253
|
-
this.joinGroupConfiguration.messageHeaderConfiguration.hideBackButton = true;
|
|
254
|
-
this.joinGroupConfiguration.messageHeaderConfiguration = { ...this.joinGroupConfiguration.messageHeaderConfiguration };
|
|
255
|
-
this.joinGroupConfiguration = { ...this.joinGroupConfiguration };
|
|
256
|
-
}
|
|
257
|
-
setTimeout(() => {
|
|
258
|
-
this.updateBackdropHeight();
|
|
259
|
-
}, 100);
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
ngAfterViewInit() {
|
|
263
|
-
this.updateBackdropHeight();
|
|
264
|
-
}
|
|
265
|
-
openCreateGroup() {
|
|
266
|
-
this.openCreateGroupPage = true;
|
|
267
|
-
}
|
|
268
|
-
updateBackdropHeight() {
|
|
269
|
-
let divHeight = this.elementRef.nativeElement.offsetHeight;
|
|
270
|
-
let divWidth = this.elementRef.nativeElement.offsetWidth;
|
|
271
|
-
if (divHeight === 0 || divWidth === 0) {
|
|
272
|
-
const rect = this.elementRef.nativeElement.getBoundingClientRect();
|
|
273
|
-
divHeight = rect.height;
|
|
274
|
-
divWidth = rect.width;
|
|
275
|
-
}
|
|
276
|
-
let backdropStyle = {
|
|
277
|
-
height: divHeight + "px",
|
|
278
|
-
width: divWidth + "px",
|
|
279
|
-
background: "rgba(0, 0, 0, 0.5)",
|
|
280
|
-
position: "fixed"
|
|
281
|
-
};
|
|
282
|
-
if (this.isMobileView) {
|
|
283
|
-
this.createGroupStyle.height = (divHeight - 30) + "px";
|
|
284
|
-
this.messagesConfiguration.detailsConfiguration.transferOwnershipConfiguration.transferOwnershipStyle.height = (divHeight - 30) + "px";
|
|
285
|
-
this.messagesConfiguration.detailsConfiguration.transferOwnershipConfiguration.transferOwnershipStyle.width = divWidth + "px";
|
|
286
|
-
this.messagesConfiguration.messageListConfiguration.messageInformationConfiguration.messageInformationStyle.height = divHeight + "px";
|
|
287
|
-
this.messagesConfiguration.messageListConfiguration.messageInformationConfiguration.messageInformationStyle.width = divWidth + "px";
|
|
288
|
-
}
|
|
289
|
-
else {
|
|
290
|
-
this.createGroupStyle.height = this.createGroupConfiguration.createGroupStyle.height || "620px";
|
|
291
|
-
this.messagesConfiguration.detailsConfiguration.transferOwnershipConfiguration.transferOwnershipStyle.height = "650px";
|
|
292
|
-
this.messagesConfiguration.detailsConfiguration.transferOwnershipConfiguration.transferOwnershipStyle.width = "360px";
|
|
293
|
-
}
|
|
294
|
-
this.createGroupStyle = { ...this.createGroupStyle };
|
|
295
|
-
this.backdropStyle = this.backdropStyle || backdropStyle;
|
|
296
|
-
this.messagesConfiguration.messageListConfiguration.backdropStyle = this.messagesConfiguration.messageListConfiguration.backdropStyle || backdropStyle;
|
|
297
|
-
this.messagesConfiguration.detailsConfiguration.backdropStyle = this.messagesConfiguration.detailsConfiguration.backdropStyle || backdropStyle;
|
|
298
|
-
this.messagesConfiguration.messageComposerConfiguration.backdropStyle = this.messagesConfiguration.messageComposerConfiguration.backdropStyle || backdropStyle;
|
|
299
|
-
this.messagesConfiguration.detailsConfiguration.groupMembersConfiguration.backdropStyle = this.messagesConfiguration.detailsConfiguration.groupMembersConfiguration.backdropStyle || backdropStyle;
|
|
300
|
-
this.ref.detectChanges();
|
|
301
|
-
}
|
|
302
|
-
ngOnInit() {
|
|
303
|
-
this.createGroupButtonStyle = {
|
|
304
|
-
height: "24px",
|
|
305
|
-
width: "24px",
|
|
306
|
-
border: "none",
|
|
307
|
-
borderRadius: '0',
|
|
308
|
-
background: "transparent",
|
|
309
|
-
buttonIconTint: this.themeService.theme.palette.getPrimary()
|
|
310
|
-
};
|
|
311
|
-
this.setWithMessagesStyle();
|
|
312
|
-
this.setCreateGroupStyles();
|
|
313
|
-
this.setListItemStyle();
|
|
314
|
-
this.setJoinGroupStyles();
|
|
315
|
-
if (!this.messagesConfiguration.messageHeaderConfiguration.onBack) {
|
|
316
|
-
this.messagesConfiguration.messageHeaderConfiguration.onBack = this.onBack;
|
|
317
|
-
}
|
|
318
|
-
this.subscribeToEvents();
|
|
319
|
-
CometChat.getLoggedinUser()
|
|
320
|
-
.then((user) => {
|
|
321
|
-
this.loggedInUser = user;
|
|
322
|
-
})
|
|
323
|
-
.catch((error) => {
|
|
324
|
-
if (this.onError) {
|
|
325
|
-
this.onError(error);
|
|
326
|
-
}
|
|
327
|
-
});
|
|
328
|
-
}
|
|
329
|
-
setWithMessagesStyle() {
|
|
330
|
-
let defaultStyle = new WithMessagesStyle({
|
|
331
|
-
width: "100%",
|
|
332
|
-
height: "100%",
|
|
333
|
-
background: this.themeService.theme.palette.getBackground(),
|
|
334
|
-
borderRadius: "none",
|
|
335
|
-
border: `1px solid ${this.themeService.theme.palette.getAccent200()}`,
|
|
336
|
-
messageTextColor: this.themeService.theme.palette.getAccent600(),
|
|
337
|
-
messageTextFont: fontHelper(this.themeService.theme.typography.title1),
|
|
338
|
-
});
|
|
339
|
-
this.groupsWithMessagesStyle = {
|
|
340
|
-
...defaultStyle,
|
|
341
|
-
...this.groupsWithMessagesStyle
|
|
342
|
-
};
|
|
343
|
-
this.labelStyle.textFont = this.groupsWithMessagesStyle.messageTextFont;
|
|
344
|
-
this.labelStyle.textColor = this.groupsWithMessagesStyle.messageTextColor;
|
|
345
|
-
this.messagesConfiguration.messagesStyle.border = this.messagesConfiguration.messagesStyle.border ?? "none";
|
|
346
|
-
this.groupsConfiguration.groupsStyle.border = this.groupsConfiguration.groupsStyle.border ?? "none";
|
|
347
|
-
if (!this.groupsConfiguration?.groupsStyle?.border || this.groupsConfiguration?.groupsStyle?.border == "none") {
|
|
348
|
-
this.sideBarStyle = { borderRight: this.groupsWithMessagesStyle.border };
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
setHeadersStyle() {
|
|
352
|
-
let defaultStyle = new MessageHeaderStyle({
|
|
353
|
-
background: this.themeService.theme.palette.getBackground(),
|
|
354
|
-
border: `none`,
|
|
355
|
-
onlineStatusColor: this.themeService.theme.palette.getSuccess(),
|
|
356
|
-
privateGroupIconBackground: this.themeService.theme.palette.getSuccess(),
|
|
357
|
-
passwordGroupIconBackground: "RGB(247, 165, 0)",
|
|
358
|
-
backButtonIconTint: this.themeService.theme.palette.getPrimary(),
|
|
359
|
-
subtitleTextColor: this.themeService.theme.palette.getAccent600(),
|
|
360
|
-
subtitleTextFont: fontHelper(this.themeService.theme.typography.subtitle2),
|
|
361
|
-
typingIndicatorTextColor: this.themeService.theme.palette.getPrimary(),
|
|
362
|
-
typingIndicatorTextFont: fontHelper(this.themeService.theme.typography.subtitle1),
|
|
363
|
-
});
|
|
364
|
-
this.messageHeaderStyle = { ...defaultStyle, ...this.joinGroupConfiguration.messageHeaderConfiguration.messageHeaderStyle };
|
|
365
|
-
}
|
|
366
|
-
setListItemStyle() {
|
|
367
|
-
let defaultStyle = new ListItemStyle({
|
|
368
|
-
height: "45px",
|
|
369
|
-
width: "100%",
|
|
370
|
-
background: this.themeService.theme.palette.getBackground(),
|
|
371
|
-
activeBackground: "transparent",
|
|
372
|
-
borderRadius: "0",
|
|
373
|
-
titleFont: fontHelper(this.themeService.theme.typography.title2),
|
|
374
|
-
titleColor: this.themeService.theme.palette.getAccent(),
|
|
375
|
-
border: "none",
|
|
376
|
-
separatorColor: "",
|
|
377
|
-
hoverBackground: "transparent"
|
|
378
|
-
});
|
|
379
|
-
this.listItemStyle = { ...defaultStyle, ...this.joinGroupConfiguration.messageHeaderConfiguration.listItemStyle };
|
|
380
|
-
}
|
|
381
|
-
ngOnDestroy() {
|
|
382
|
-
this.unsubscribeToEvents();
|
|
383
|
-
}
|
|
384
|
-
updatedCreatedGroup(event) {
|
|
385
|
-
let group = event?.detail?.group;
|
|
386
|
-
if (group) {
|
|
387
|
-
this.group = group;
|
|
388
|
-
this.user = null;
|
|
389
|
-
this.openCreateGroupPage = false;
|
|
390
|
-
this.ref.detectChanges();
|
|
391
|
-
CometChatGroupEvents.ccGroupCreated.next(group);
|
|
392
|
-
}
|
|
393
|
-
}
|
|
394
|
-
// subscribe to global events
|
|
395
|
-
subscribeToEvents() {
|
|
396
|
-
this.ccGroupDeleted = CometChatGroupEvents.ccGroupDeleted.subscribe((group) => {
|
|
397
|
-
if (this.group && group.getGuid() == this.group.getGuid()) {
|
|
398
|
-
this.group = null;
|
|
399
|
-
this.ref.detectChanges();
|
|
400
|
-
}
|
|
401
|
-
});
|
|
402
|
-
this.ccGroupCreated = CometChatGroupEvents.ccGroupCreated.subscribe((group) => {
|
|
403
|
-
if (group) {
|
|
404
|
-
this.group = group;
|
|
405
|
-
this.user = null;
|
|
406
|
-
this.openCreateGroupPage = false;
|
|
407
|
-
this.ref.detectChanges();
|
|
408
|
-
}
|
|
409
|
-
});
|
|
410
|
-
this.ccGroupMemberAdded = CometChatGroupEvents.ccGroupMemberAdded.subscribe((item) => {
|
|
411
|
-
if (this.group && this.group.getGuid() == item?.userAddedIn.getGuid()) {
|
|
412
|
-
this.group = item?.userAddedIn;
|
|
413
|
-
this.ref.detectChanges();
|
|
414
|
-
}
|
|
415
|
-
});
|
|
416
|
-
this.ccGroupMemberBanned = CometChatGroupEvents.ccGroupMemberBanned.subscribe((item) => {
|
|
417
|
-
if (this.group && this.group.getGuid() == item?.kickedFrom.getGuid()) {
|
|
418
|
-
this.group = item?.kickedFrom;
|
|
419
|
-
this.ref.detectChanges();
|
|
420
|
-
}
|
|
421
|
-
});
|
|
422
|
-
this.ccGroupMemberJoined = CometChatGroupEvents.ccGroupMemberJoined.subscribe((item) => {
|
|
423
|
-
if (this.protectedGroup && this.protectedGroup.getGuid() == item?.joinedGroup.getGuid()) {
|
|
424
|
-
this.openPasswordModal = false;
|
|
425
|
-
this.protectedGroup = null;
|
|
426
|
-
this.group = item?.joinedGroup;
|
|
427
|
-
this.ref.detectChanges();
|
|
428
|
-
}
|
|
429
|
-
});
|
|
430
|
-
this.ccGroupMemberKicked = CometChatGroupEvents.ccGroupMemberKicked.subscribe((item) => {
|
|
431
|
-
if (this.group && this.group.getGuid() == item?.kickedFrom.getGuid()) {
|
|
432
|
-
this.group = item?.kickedFrom;
|
|
433
|
-
this.ref.detectChanges();
|
|
434
|
-
}
|
|
435
|
-
});
|
|
436
|
-
this.ccOwnershipChanged = CometChatGroupEvents.ccOwnershipChanged.subscribe((item) => {
|
|
437
|
-
if (this.group && this.group.getGuid() == item?.group.getGuid()) {
|
|
438
|
-
this.group = item?.group;
|
|
439
|
-
this.ref.detectChanges();
|
|
440
|
-
}
|
|
441
|
-
});
|
|
442
|
-
this.ccGroupLeft = CometChatGroupEvents.ccGroupLeft.subscribe((item) => {
|
|
443
|
-
if (this.group && this.group.getGuid() == item?.leftGroup.getGuid() && this.loggedInUser?.getUid() == item?.userLeft?.getUid()) {
|
|
444
|
-
this.group = item?.leftGroup;
|
|
445
|
-
this.ref.detectChanges();
|
|
446
|
-
}
|
|
447
|
-
});
|
|
448
|
-
// open chat and mark as active conversation
|
|
449
|
-
this.ccOpenChat = CometChatUIEvents.ccOpenChat.subscribe((item) => {
|
|
450
|
-
this.user = item.user ? item.user : null;
|
|
451
|
-
this.group = item.group ? item.group : null;
|
|
452
|
-
this.ref.detectChanges();
|
|
453
|
-
});
|
|
454
|
-
}
|
|
455
|
-
// unsubscribe to subscribed events.
|
|
456
|
-
unsubscribeToEvents() {
|
|
457
|
-
this.ccGroupDeleted?.unsubscribe();
|
|
458
|
-
this.ccGroupMemberAdded?.unsubscribe();
|
|
459
|
-
this.ccGroupMemberBanned?.unsubscribe();
|
|
460
|
-
this.ccGroupMemberJoined?.unsubscribe();
|
|
461
|
-
this.ccGroupMemberKicked?.unsubscribe();
|
|
462
|
-
this.ccOwnershipChanged?.unsubscribe();
|
|
463
|
-
this.ccGroupLeft?.unsubscribe();
|
|
464
|
-
this.ccOpenChat?.unsubscribe();
|
|
465
|
-
}
|
|
466
|
-
}
|
|
467
|
-
CometChatGroupsWithMessagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatGroupsWithMessagesComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.CometChatThemeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
468
|
-
CometChatGroupsWithMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatGroupsWithMessagesComponent, selector: "cometchat-groups-with-messages", inputs: { group: "group", isMobileView: "isMobileView", hideCreateGroup: "hideCreateGroup", messageText: "messageText", groupsWithMessagesStyle: "groupsWithMessagesStyle", messagesConfiguration: "messagesConfiguration", createGroupConfiguration: "createGroupConfiguration", joinGroupConfiguration: "joinGroupConfiguration", groupsConfiguration: "groupsConfiguration", onError: "onError" }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["groupRef"], descendants: true }, { propertyName: "messageListRef", first: true, predicate: ["messagesRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"cc-with-messages__wrapper\" [ngStyle]=\"groupsWrapperStyles()\">\n <div class=\"cc-with-messages__sidebar\" [ngClass]=\"{mobile : isMobileView}\"\n [ngStyle]=\"sideBarStyle\">\n <cometchat-groups #groupRef [activeGroup]=\"group\"\n [hideSearch]=\"groupsConfiguration.hideSearch\"\n [searchIconURL]=\"groupsConfiguration.searchIconURL\"\n [searchRequestBuilder]=\"groupsConfiguration.searchRequestBuilder\"\n [onItemClick]=\"groupsConfiguration.onItemClick || onItemClick\"\n [groupsStyle]=\"groupsConfiguration.groupsStyle\"\n [subtitleView]=\"groupsConfiguration.subtitleView\"\n [options]=\"groupsConfiguration.options\"\n [privateGroupIcon]=\"groupsConfiguration.privateGroupIcon\"\n [protectedGroupIcon]=\"groupsConfiguration.protectedGroupIcon\"\n [passwordGroupIcon]=\"groupsConfiguration.passwordGroupIcon\"\n [groupsRequestBuilder]=\"groupsConfiguration.groupsRequestBuilder\"\n [emptyStateView]=\"groupsConfiguration.emptyStateView\"\n [onSelect]=\"groupsConfiguration.onSelect\"\n [loadingIconURL]=\"groupsConfiguration.loadingIconURL\"\n [errorStateView]=\"groupsConfiguration.errorStateView\"\n [loadingStateView]=\"groupsConfiguration.loadingStateView\"\n [titleAlignment]=\"groupsConfiguration.titleAlignment\"\n [listItemView]=\"groupsConfiguration.listItemView\"\n [menu]=\"groupsConfiguration.menu || createGroupButton\"\n [hideSeparator]=\"groupsConfiguration.hideSeparator\"\n [hideError]=\"groupsConfiguration.hideError\"\n [selectionMode]=\"groupsConfiguration.selectionMode\"\n [listItemStyle]=\"groupsConfiguration.listItemStyle\"></cometchat-groups>\n </div>\n <div class=\"cc-with-messages__main\" [ngClass]=\"{mobile : isMobileView}\"\n *ngIf=\"(group || user) && !openPasswordModal\">\n <!--Message List Screen-->\n <cometchat-messages #messagesRef [group]=\"group!\"\n [messageHeaderConfiguration]=\"messagesConfiguration.messageHeaderConfiguration\"\n [messageListConfiguration]=\"messagesConfiguration.messageListConfiguration\"\n [messageComposerConfiguration]=\"messagesConfiguration.messageComposerConfiguration\"\n [messagesStyle]=\"messagesConfiguration.messagesStyle\"\n [customSoundForIncomingMessages]=\"messagesConfiguration.customSoundForIncomingMessages\"\n [customSoundForOutgoingMessages]=\"messagesConfiguration.customSoundForOutgoingMessages\"\n [detailsConfiguration]=\"messagesConfiguration.detailsConfiguration\"\n [disableSoundForMessages]=\"messagesConfiguration.disableSoundForMessages\"\n [disableTyping]=\"messagesConfiguration.disableTyping\"\n [hideMessageComposer]=\"messagesConfiguration.hideMessageComposer\"\n [hideMessageHeader]=\"messagesConfiguration.hideMessageHeader\"\n [messageComposerView]=\"messagesConfiguration.messageComposerView\"\n [messageHeaderView]=\"messagesConfiguration.messageHeaderView\"\n [messageListView]=\"messagesConfiguration.messageListView\" [user]=\"user!\"\n [threadedMessageConfiguration]=\"messagesConfiguration.threadedMessageConfiguration\"\n [hideDetails]=\"messagesConfiguration.hideDetails!\">\n </cometchat-messages>\n <!--Message List Screen ENDS-->\n </div>\n <div class=\"cc-decorator__message--empty\"\n *ngIf=\"!user && !group && !openPasswordModal\"\n [ngStyle]=\"emptyMessageStyle()\">\n <cometchat-label [text]=\"messageText\"\n [labelStyle]=\"labelStyle\"></cometchat-label>\n </div>\n <div class=\"cc-with-messages__joingroup\"\n *ngIf=\"openPasswordModal && !group && !user\" [ngStyle]=\"emptyMessageStyle()\"\n [ngClass]=\"{mobile : isMobileView}\">\n <cometchat-join-group [group]=\"protectedGroup!\"\n [joinGroupStyle]=\"joinGroupStyle\"\n (cc-joingroup-joined)=\"onGroupJoined($event)\"\n [errorCallback]=\"joinGroupConfiguration.onError\"\n [joinClick]=\"joinGroupConfiguration.joinClick\">\n <cometchat-message-header slot=\"headerView\" [group]=\"protectedGroup!\"\n [subtitleView]=\"joinGroupConfiguration.messageHeaderConfiguration.subtitleView\"\n [disableUsersPresence]=\"joinGroupConfiguration.messageHeaderConfiguration.disableUsersPresence\"\n [protectedGroupIcon]=\"joinGroupConfiguration.messageHeaderConfiguration.protectedGroupIcon\"\n [passwordGroupIcon]=\"joinGroupConfiguration.messageHeaderConfiguration.passwordGroupIcon\"\n [privateGroupIcon]=\"joinGroupConfiguration.messageHeaderConfiguration.privateGroupIcon\"\n [menu]=\"joinGroupConfiguration.messageHeaderConfiguration.menu\"\n [messageHeaderStyle]=\"messageHeaderStyle\"\n [backButtonIconURL]=\"joinGroupConfiguration.messageHeaderConfiguration.backButtonIconURL\"\n [hideBackButton]=\"joinGroupConfiguration.messageHeaderConfiguration.hideBackButton\"\n [onError]=\"joinGroupConfiguration.messageHeaderConfiguration.onError\"\n [onBack]=\"joinGroupConfiguration.messageHeaderConfiguration.onBack || closeJoinGroup\"\n [listItemStyle]=\"listItemStyle\"\n [statusIndicatorStyle]=\"joinGroupConfiguration.messageHeaderConfiguration.statusIndicatorStyle\"\n [avatarStyle]=\"joinGroupConfiguration.messageHeaderConfiguration.avatarStyle\">\n </cometchat-message-header>\n </cometchat-join-group>\n </div>\n</div>\n<ng-template #createGroupButton>\n <cometchat-button *ngIf=\"!hideCreateGroup\" [iconURL]=\"createIconURL\"\n [buttonStyle]=\"createGroupButtonStyle\"\n (cc-button-clicked)=\"openCreateGroup()\"></cometchat-button>\n\n</ng-template>\n<cometchat-backdrop *ngIf=\"openCreateGroupPage\" [backdropStyle]=\"backdropStyle\">\n <cometchat-create-group [createGroupStyle]=\"createGroupStyle\"\n [hideCloseButton]=\"createGroupConfiguration.hideCloseButton\"\n [closeButtonIconURL]=\"createGroupConfiguration.closeButtonIconURL\"\n [createClick]=\"createGroupConfiguration.createClick\"\n [closeCallback]=\"closeCreateGroup\">\n\n </cometchat-create-group>\n</cometchat-backdrop>\n", styles: [".cc-with-messages__wrapper{display:flex;height:100%;width:100%;box-sizing:border-box}.cc-with-messages__sidebar{width:280px;height:100%;position:relative}.cc-with-messages__main{width:calc(100% - 280px);height:100%}.mobile{width:100%!important;height:100%;position:absolute}.cc-decorator__message--empty{display:flex;justify-content:center;align-items:center}.cc-with-messages__joingroup{width:calc(100% - 280px);height:100%}\n"], components: [{ type: i2.CometChatGroupsComponent, selector: "cometchat-groups", inputs: ["groupsRequestBuilder", "searchRequestBuilder", "subtitleView", "listItemView", "menu", "options", "activeGroup", "hideSeparator", "selectionMode", "searchPlaceholder", "hideError", "searchIconURL", "hideSearch", "title", "onError", "onSelect", "emptyStateView", "errorStateView", "loadingIconURL", "privateGroupIcon", "protectedGroupIcon", "passwordGroupIcon", "loadingStateView", "emptyStateText", "errorStateText", "titleAlignment", "statusIndicatorStyle", "avatarStyle", "groupsStyle", "listItemStyle", "onItemClick"] }, { type: i3.CometChatMessagesComponent, selector: "cometchat-messages", inputs: ["user", "group", "currentAskAIBot", "hideMessageComposer", "disableTyping", "messageHeaderConfiguration", "messageListConfiguration", "messageComposerConfiguration", "threadedMessageConfiguration", "detailsConfiguration", "customSoundForIncomingMessages", "customSoundForOutgoingMessages", "disableSoundForMessages", "messagesStyle", "messageHeaderView", "messageComposerView", "messageListView", "hideMessageHeader", "hideDetails", "auxiliaryMenu"] }, { type: i4.CometChatMessageHeaderComponent, selector: "cometchat-message-header", inputs: ["avatarStyle", "statusIndicatorStyle", "messageHeaderStyle", "listItemStyle", "subtitleView", "disableUsersPresence", "disableTyping", "protectedGroupIcon", "passwordGroupIcon", "privateGroupIcon", "menu", "user", "group", "backButtonIconURL", "hideBackButton", "listItemView", "onError", "onBack"] }], directives: [{ type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
469
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatGroupsWithMessagesComponent, decorators: [{
|
|
470
|
-
type: Component,
|
|
471
|
-
args: [{ selector: "cometchat-groups-with-messages", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cc-with-messages__wrapper\" [ngStyle]=\"groupsWrapperStyles()\">\n <div class=\"cc-with-messages__sidebar\" [ngClass]=\"{mobile : isMobileView}\"\n [ngStyle]=\"sideBarStyle\">\n <cometchat-groups #groupRef [activeGroup]=\"group\"\n [hideSearch]=\"groupsConfiguration.hideSearch\"\n [searchIconURL]=\"groupsConfiguration.searchIconURL\"\n [searchRequestBuilder]=\"groupsConfiguration.searchRequestBuilder\"\n [onItemClick]=\"groupsConfiguration.onItemClick || onItemClick\"\n [groupsStyle]=\"groupsConfiguration.groupsStyle\"\n [subtitleView]=\"groupsConfiguration.subtitleView\"\n [options]=\"groupsConfiguration.options\"\n [privateGroupIcon]=\"groupsConfiguration.privateGroupIcon\"\n [protectedGroupIcon]=\"groupsConfiguration.protectedGroupIcon\"\n [passwordGroupIcon]=\"groupsConfiguration.passwordGroupIcon\"\n [groupsRequestBuilder]=\"groupsConfiguration.groupsRequestBuilder\"\n [emptyStateView]=\"groupsConfiguration.emptyStateView\"\n [onSelect]=\"groupsConfiguration.onSelect\"\n [loadingIconURL]=\"groupsConfiguration.loadingIconURL\"\n [errorStateView]=\"groupsConfiguration.errorStateView\"\n [loadingStateView]=\"groupsConfiguration.loadingStateView\"\n [titleAlignment]=\"groupsConfiguration.titleAlignment\"\n [listItemView]=\"groupsConfiguration.listItemView\"\n [menu]=\"groupsConfiguration.menu || createGroupButton\"\n [hideSeparator]=\"groupsConfiguration.hideSeparator\"\n [hideError]=\"groupsConfiguration.hideError\"\n [selectionMode]=\"groupsConfiguration.selectionMode\"\n [listItemStyle]=\"groupsConfiguration.listItemStyle\"></cometchat-groups>\n </div>\n <div class=\"cc-with-messages__main\" [ngClass]=\"{mobile : isMobileView}\"\n *ngIf=\"(group || user) && !openPasswordModal\">\n <!--Message List Screen-->\n <cometchat-messages #messagesRef [group]=\"group!\"\n [messageHeaderConfiguration]=\"messagesConfiguration.messageHeaderConfiguration\"\n [messageListConfiguration]=\"messagesConfiguration.messageListConfiguration\"\n [messageComposerConfiguration]=\"messagesConfiguration.messageComposerConfiguration\"\n [messagesStyle]=\"messagesConfiguration.messagesStyle\"\n [customSoundForIncomingMessages]=\"messagesConfiguration.customSoundForIncomingMessages\"\n [customSoundForOutgoingMessages]=\"messagesConfiguration.customSoundForOutgoingMessages\"\n [detailsConfiguration]=\"messagesConfiguration.detailsConfiguration\"\n [disableSoundForMessages]=\"messagesConfiguration.disableSoundForMessages\"\n [disableTyping]=\"messagesConfiguration.disableTyping\"\n [hideMessageComposer]=\"messagesConfiguration.hideMessageComposer\"\n [hideMessageHeader]=\"messagesConfiguration.hideMessageHeader\"\n [messageComposerView]=\"messagesConfiguration.messageComposerView\"\n [messageHeaderView]=\"messagesConfiguration.messageHeaderView\"\n [messageListView]=\"messagesConfiguration.messageListView\" [user]=\"user!\"\n [threadedMessageConfiguration]=\"messagesConfiguration.threadedMessageConfiguration\"\n [hideDetails]=\"messagesConfiguration.hideDetails!\">\n </cometchat-messages>\n <!--Message List Screen ENDS-->\n </div>\n <div class=\"cc-decorator__message--empty\"\n *ngIf=\"!user && !group && !openPasswordModal\"\n [ngStyle]=\"emptyMessageStyle()\">\n <cometchat-label [text]=\"messageText\"\n [labelStyle]=\"labelStyle\"></cometchat-label>\n </div>\n <div class=\"cc-with-messages__joingroup\"\n *ngIf=\"openPasswordModal && !group && !user\" [ngStyle]=\"emptyMessageStyle()\"\n [ngClass]=\"{mobile : isMobileView}\">\n <cometchat-join-group [group]=\"protectedGroup!\"\n [joinGroupStyle]=\"joinGroupStyle\"\n (cc-joingroup-joined)=\"onGroupJoined($event)\"\n [errorCallback]=\"joinGroupConfiguration.onError\"\n [joinClick]=\"joinGroupConfiguration.joinClick\">\n <cometchat-message-header slot=\"headerView\" [group]=\"protectedGroup!\"\n [subtitleView]=\"joinGroupConfiguration.messageHeaderConfiguration.subtitleView\"\n [disableUsersPresence]=\"joinGroupConfiguration.messageHeaderConfiguration.disableUsersPresence\"\n [protectedGroupIcon]=\"joinGroupConfiguration.messageHeaderConfiguration.protectedGroupIcon\"\n [passwordGroupIcon]=\"joinGroupConfiguration.messageHeaderConfiguration.passwordGroupIcon\"\n [privateGroupIcon]=\"joinGroupConfiguration.messageHeaderConfiguration.privateGroupIcon\"\n [menu]=\"joinGroupConfiguration.messageHeaderConfiguration.menu\"\n [messageHeaderStyle]=\"messageHeaderStyle\"\n [backButtonIconURL]=\"joinGroupConfiguration.messageHeaderConfiguration.backButtonIconURL\"\n [hideBackButton]=\"joinGroupConfiguration.messageHeaderConfiguration.hideBackButton\"\n [onError]=\"joinGroupConfiguration.messageHeaderConfiguration.onError\"\n [onBack]=\"joinGroupConfiguration.messageHeaderConfiguration.onBack || closeJoinGroup\"\n [listItemStyle]=\"listItemStyle\"\n [statusIndicatorStyle]=\"joinGroupConfiguration.messageHeaderConfiguration.statusIndicatorStyle\"\n [avatarStyle]=\"joinGroupConfiguration.messageHeaderConfiguration.avatarStyle\">\n </cometchat-message-header>\n </cometchat-join-group>\n </div>\n</div>\n<ng-template #createGroupButton>\n <cometchat-button *ngIf=\"!hideCreateGroup\" [iconURL]=\"createIconURL\"\n [buttonStyle]=\"createGroupButtonStyle\"\n (cc-button-clicked)=\"openCreateGroup()\"></cometchat-button>\n\n</ng-template>\n<cometchat-backdrop *ngIf=\"openCreateGroupPage\" [backdropStyle]=\"backdropStyle\">\n <cometchat-create-group [createGroupStyle]=\"createGroupStyle\"\n [hideCloseButton]=\"createGroupConfiguration.hideCloseButton\"\n [closeButtonIconURL]=\"createGroupConfiguration.closeButtonIconURL\"\n [createClick]=\"createGroupConfiguration.createClick\"\n [closeCallback]=\"closeCreateGroup\">\n\n </cometchat-create-group>\n</cometchat-backdrop>\n", styles: [".cc-with-messages__wrapper{display:flex;height:100%;width:100%;box-sizing:border-box}.cc-with-messages__sidebar{width:280px;height:100%;position:relative}.cc-with-messages__main{width:calc(100% - 280px);height:100%}.mobile{width:100%!important;height:100%;position:absolute}.cc-decorator__message--empty{display:flex;justify-content:center;align-items:center}.cc-with-messages__joingroup{width:calc(100% - 280px);height:100%}\n"] }]
|
|
472
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.CometChatThemeService }]; }, propDecorators: { groupRef: [{
|
|
473
|
-
type: ViewChild,
|
|
474
|
-
args: ["groupRef", { static: false }]
|
|
475
|
-
}], messageListRef: [{
|
|
476
|
-
type: ViewChild,
|
|
477
|
-
args: ["messagesRef", { static: false }]
|
|
478
|
-
}], group: [{
|
|
479
|
-
type: Input
|
|
480
|
-
}], isMobileView: [{
|
|
481
|
-
type: Input
|
|
482
|
-
}], hideCreateGroup: [{
|
|
483
|
-
type: Input
|
|
484
|
-
}], messageText: [{
|
|
485
|
-
type: Input
|
|
486
|
-
}], groupsWithMessagesStyle: [{
|
|
487
|
-
type: Input
|
|
488
|
-
}], messagesConfiguration: [{
|
|
489
|
-
type: Input
|
|
490
|
-
}], createGroupConfiguration: [{
|
|
491
|
-
type: Input
|
|
492
|
-
}], joinGroupConfiguration: [{
|
|
493
|
-
type: Input
|
|
494
|
-
}], groupsConfiguration: [{
|
|
495
|
-
type: Input
|
|
496
|
-
}], onError: [{
|
|
497
|
-
type: Input
|
|
498
|
-
}] } });
|
|
499
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LWdyb3Vwcy13aXRoLW1lc3NhZ2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvQ29tZXRDaGF0R3JvdXBzV2l0aE1lc3NhZ2VzL2NvbWV0Y2hhdC1ncm91cHMtd2l0aC1tZXNzYWdlcy9jb21ldGNoYXQtZ3JvdXBzLXdpdGgtbWVzc2FnZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9Db21ldENoYXRHcm91cHNXaXRoTWVzc2FnZXMvY29tZXRjaGF0LWdyb3Vwcy13aXRoLW1lc3NhZ2VzL2NvbWV0Y2hhdC1ncm91cHMtd2l0aC1tZXNzYWdlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQTJELE1BQU0sZUFBZSxDQUFDO0FBQ3RKLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUczRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUUsd0JBQXdCLEVBQUUsc0JBQXNCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUM3SyxPQUFPLDJCQUEyQixDQUFBO0FBRWxDLE9BQU8sRUFBaUIsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTNHLE9BQU8sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLHVCQUF1QixFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBa0csaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7OztBQUNwUDs7Ozs7Ozs7RUFRRTtBQU9GLE1BQU0sT0FBTyxvQ0FBb0M7SUEwRC9DLFlBQW9CLFVBQXNCLEVBQVUsR0FBc0IsRUFBVSxZQUFtQztRQUFuRyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBdUI7UUFyRDlHLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQ2pDLGdCQUFXLEdBQVcsUUFBUSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDckQsNEJBQXVCLEdBQXNCO1lBQ3BELEtBQUssRUFBRSxNQUFNO1lBQ2IsTUFBTSxFQUFFLE1BQU07WUFDZCxZQUFZLEVBQUUsTUFBTTtTQUNyQixDQUFDO1FBQ08sMEJBQXFCLEdBQTBCLElBQUkscUJBQXFCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0UsNkJBQXdCLEdBQTZCLElBQUksd0JBQXdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEYsMkJBQXNCLEdBQTJCLElBQUksc0JBQXNCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEYsd0JBQW1CLEdBQXdCLElBQUksbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkUsWUFBTyxHQUEyRCxDQUFDLEtBQW1DLEVBQUUsRUFBRTtZQUNqSCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3BCLENBQUMsQ0FBQTtRQUNELFVBQUssR0FBbUIsSUFBSSxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0Msa0JBQWEsR0FBa0IsRUFFOUIsQ0FBQTtRQUNELHFCQUFnQixHQUFxQixFQUFFLENBQUE7UUFDdkMsbUJBQWMsR0FBbUIsRUFBRSxDQUFBO1FBQ25DLHVCQUFrQixHQUF1QixFQUFFLENBQUE7UUFDM0Msa0JBQWEsR0FBa0IsRUFBRSxDQUFBO1FBQ2pDOztXQUVHO1FBQ0gsa0JBQWEsR0FBVywwQkFBMEIsQ0FBQTtRQUVsRCwyQkFBc0IsR0FBUSxFQUU3QixDQUFBO1FBQ0QsZUFBVSxHQUFRO1lBQ2hCLFVBQVUsRUFBRSxhQUFhO1lBQ3pCLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsU0FBUyxFQUFFLHdCQUF3QjtTQUNwQyxDQUFBO1FBQ00sd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQ3JDLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQWUxQyxpQkFBWSxHQUFRLEVBQUUsQ0FBQTtRQXlEdEIsV0FBTSxHQUFHLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFBO1lBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDMUIsQ0FBQyxDQUFBO1FBS0QscUJBQWdCLEdBQUcsR0FBRyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUE7WUFDaEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUMxQixDQUFDLENBQUE7UUFDRCxtQkFBYyxHQUFHLEdBQUcsRUFBRTtZQUNwQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFBO1FBQ2hDLENBQUMsQ0FBQTtRQUNELGdCQUFXLEdBQXVDLENBQUMsS0FBc0IsRUFBRSxFQUFFO1lBQzNFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7WUFDL0IsSUFBSSxLQUFLLENBQUMsWUFBWSxFQUFFLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2dCQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDekIsT0FBTzthQUNSO1lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksdUJBQXVCLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQkFDbEUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO2dCQUM1QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO2dCQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN6QixPQUFPO2FBQ1I7WUFDRCxTQUFTLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQTRCLEVBQUUsRUFBRTtnQkFDL0Qsb0JBQW9CLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDO29CQUM1QyxXQUFXLEVBQUUsV0FBVztvQkFDeEIsVUFBVSxFQUFFLElBQUksQ0FBQyxZQUFhO2lCQUMvQixDQUFDLENBQUE7Z0JBQ0YsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBO1lBQzFCLENBQUMsQ0FBQztpQkFDQyxLQUFLLENBQUMsQ0FBQyxLQUFtQyxFQUFFLEVBQUU7Z0JBQzdDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtpQkFDcEI7WUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNOLENBQUMsQ0FBQztRQXVGRix5QkFBb0IsR0FBRyxHQUFHLEVBQUU7WUFDMUIsSUFBSSxZQUFZLEdBQXFCLElBQUksZ0JBQWdCLENBQUM7Z0JBQ3hELFNBQVMsRUFBRSxlQUFlLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDekUsaUJBQWlCLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7Z0JBQzNFLGVBQWUsRUFBRSxhQUFhLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRTtnQkFDOUUscUJBQXFCLEVBQUUsR0FBRztnQkFDMUIsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtnQkFDL0QsdUJBQXVCLEVBQUUsYUFBYTtnQkFDdEMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtnQkFDbkUsa0JBQWtCLEVBQUUsRUFBRTtnQkFDdEIsdUJBQXVCLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7Z0JBQ2pGLHdCQUF3QixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7Z0JBQ3JFLHlCQUF5QixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUU7Z0JBQ3pFLHdCQUF3QixFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxjQUFjO2dCQUN6RiwyQkFBMkIsRUFBRSxLQUFLO2dCQUNsQyxxQkFBcUIsRUFBRSxNQUFNO2dCQUM3QixzQkFBc0IsRUFBRSxNQUFNO2dCQUM5Qix5QkFBeUIsRUFBRSxHQUFHO2dCQUM5QixhQUFhLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRTtnQkFDM0QsYUFBYSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO2dCQUNwRSxjQUFjLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtnQkFDM0QsYUFBYSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO2dCQUN2RSxtQkFBbUIsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUMvRCxxQkFBcUIsRUFBRSxLQUFLO2dCQUM1QixlQUFlLEVBQUUsTUFBTTtnQkFDdkIsY0FBYyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7Z0JBQzFELDRCQUE0QixFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO2dCQUN0Riw2QkFBNkIsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFO2dCQUM3RSxtQkFBbUIsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFO2dCQUNuRSxpQkFBaUIsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQztnQkFDM0Usa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtnQkFDL0QsZUFBZSxFQUFFLE1BQU07Z0JBQ3ZCLHFCQUFxQixFQUFFLEtBQUs7Z0JBQzVCLGtCQUFrQixFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxZQUFZO2dCQUNqRixnQ0FBZ0MsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQztnQkFDMUYsaUNBQWlDLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtnQkFDakYsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtnQkFDdkUsbUJBQW1CLEVBQUUsTUFBTTtnQkFDM0IseUJBQXlCLEVBQUUsS0FBSztnQkFDaEMsc0JBQXNCLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFlBQVk7Z0JBQ3JGLHFCQUFxQixFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO2dCQUMvRSxzQkFBc0IsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO2dCQUNuRSx5QkFBeUIsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztnQkFDL0UsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7Z0JBQ2pGLDJCQUEyQixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUU7Z0JBQ3pFLDZCQUE2QixFQUFFLEtBQUs7Z0JBQ3BDLHVCQUF1QixFQUFFLE1BQU07Z0JBQy9CLE1BQU0sRUFBRSxPQUFPO2dCQUNmLEtBQUssRUFBRSxPQUFPO2dCQUNkLFlBQVksRUFBRSxLQUFLO2dCQUNuQixVQUFVLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTthQUM1RCxDQUFDLENBQUE7WUFDRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxHQUFHLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1FBRWhHLENBQUMsQ0FBQTtRQUNELHVCQUFrQixHQUFHLEdBQUcsRUFBRTtZQUN4QixJQUFJLFlBQVksR0FBbUIsSUFBSSxjQUFjLENBQUM7Z0JBQ3BELFNBQVMsRUFBRSxlQUFlLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDekUsYUFBYSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO2dCQUNwRSxjQUFjLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtnQkFDM0QsZ0NBQWdDLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7Z0JBQzFGLGlDQUFpQyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUU7Z0JBQ2pGLHVCQUF1QixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUU7Z0JBQ3ZFLG1CQUFtQixFQUFFLE1BQU07Z0JBQzNCLHlCQUF5QixFQUFFLEtBQUs7Z0JBQ2hDLHNCQUFzQixFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxZQUFZO2dCQUNyRixxQkFBcUIsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQztnQkFDL0Usc0JBQXNCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtnQkFDbkUsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsS0FBSyxFQUFFLE1BQU07Z0JBQ2Isa0JBQWtCLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7Z0JBQzVFLG1CQUFtQixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO2dCQUN0RSxvQkFBb0IsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFO2dCQUNsRSxzQkFBc0IsRUFBRSxLQUFLO2dCQUM3QixnQkFBZ0IsRUFBRSxNQUFNO2dCQUN4QixVQUFVLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTthQUM1RCxDQUFDLENBQUE7WUFDRixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsR0FBRyxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxFQUFFLENBQUE7UUFFMUYsQ0FBQyxDQUFBO1FBa0NELGtCQUFhLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUM3QixJQUFJLEtBQUssR0FBb0IsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUE7WUFDcEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztZQUMvQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztZQUMzQixJQUFJLEtBQUssRUFBRTtnQkFDVCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtnQkFDbEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7YUFDbEI7UUFFSCxDQUFDLENBQUE7UUFxRkQsc0JBQWlCLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE9BQU87Z0JBQ0wsVUFBVSxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTtnQkFDdEcsTUFBTSxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMzQyxLQUFLLEVBQUUsUUFBUSxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxXQUFXO2dCQUM1RCxNQUFNLEVBQUUsTUFBTTtnQkFDZCxZQUFZLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFlBQVk7YUFDeEQsQ0FBQTtRQUNILENBQUMsQ0FBQTtRQUNELHdCQUFtQixHQUFHLEdBQUcsRUFBRTtZQUN6QixPQUFPO2dCQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTTtnQkFDM0MsS0FBSyxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLO2dCQUN6QyxNQUFNLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU07Z0JBQzNDLFlBQVksRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsWUFBWTtnQkFDdkQsVUFBVSxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTtnQkFDdEcsUUFBUSxFQUFFLFVBQVU7YUFDckIsQ0FBQTtRQUNILENBQUMsQ0FBQTtJQTdaRCxDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQzNCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDckIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHdCQUF3QixDQUFDLCtCQUErQixDQUFDLHVCQUF1QixDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7Z0JBQzNILElBQUksQ0FBQyxxQkFBcUIsQ0FBQyx3QkFBd0IsQ0FBQywrQkFBK0IsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFBO2dCQUMxSCxJQUFJLENBQUMscUJBQXFCLENBQUMsMEJBQTBCLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztnQkFDN0UsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFO29CQUN6RSxJQUFJLENBQUMscUJBQXFCLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7aUJBQy9FO2dCQUNELElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsb0JBQW9CLENBQUMsdUJBQXVCLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRTtvQkFDcEcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO2lCQUMxRztnQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLDBCQUEwQixDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRTtvQkFDMUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLDBCQUEwQixDQUFDLGtCQUFrQixDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7aUJBQ2hIO2dCQUNELElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsb0JBQW9CLENBQUMsMEJBQTBCLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFO29CQUMxRyxJQUFJLENBQUMscUJBQXFCLENBQUMsb0JBQW9CLENBQUMsMEJBQTBCLENBQUMsa0JBQWtCLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtpQkFDaEg7Z0JBQ0QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLDBCQUEwQixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsMEJBQTBCLEVBQUUsQ0FBQTtnQkFDcEgsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtnQkFDOUQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLDBCQUEwQixDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7Z0JBQzlFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQywwQkFBMEIsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLDBCQUEwQixFQUFFLENBQUE7Z0JBQ3RILElBQUksQ0FBQyxzQkFBc0IsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUE7YUFDakU7aUJBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyx3QkFBd0IsQ0FBQywrQkFBK0IsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFBO2dCQUM1SCxJQUFJLENBQUMscUJBQXFCLENBQUMsd0JBQXdCLENBQUMsK0JBQStCLENBQUMsdUJBQXVCLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQTtnQkFDM0gsSUFBSSxDQUFDLHFCQUFxQixDQUFDLDBCQUEwQixDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7Z0JBQzVFLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRTtvQkFDekUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFBO2lCQUNqRjtnQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUU7b0JBQ3BHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQTtpQkFDNUc7Z0JBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQywwQkFBMEIsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUU7b0JBQzFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQywwQkFBMEIsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFBO2lCQUNsSDtnQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLDBCQUEwQixDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRTtvQkFDMUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLDBCQUEwQixDQUFDLGtCQUFrQixDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUE7aUJBQ2xIO2dCQUNELElBQUksQ0FBQyxxQkFBcUIsQ0FBQywwQkFBMEIsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLDBCQUEwQixFQUFFLENBQUE7Z0JBQ3BILElBQUksQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUE7Z0JBQzlELElBQUksQ0FBQyxzQkFBc0IsQ0FBQywwQkFBMEIsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO2dCQUM3RSxJQUFJLENBQUMsc0JBQXNCLENBQUMsMEJBQTBCLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQywwQkFBMEIsRUFBRSxDQUFBO2dCQUN0SCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFBO2FBQ2pFO1lBQ0QsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQTtZQUM3QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDVDtJQUNILENBQUM7SUFDRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUE7SUFDN0IsQ0FBQztJQU1ELGVBQWU7UUFDYixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFBO0lBQ2pDLENBQUM7SUF5Q0Qsb0JBQW9CO1FBQ2xCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztRQUMzRCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7UUFDekQsSUFBSSxTQUFTLEtBQUssQ0FBQyxJQUFJLFFBQVEsS0FBSyxDQUFDLEVBQUU7WUFDckMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNuRSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUN4QixRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUN2QjtRQUNELElBQUksYUFBYSxHQUFHO1lBQ2xCLE1BQU0sRUFBRSxTQUFTLEdBQUcsSUFBSTtZQUN4QixLQUFLLEVBQUUsUUFBUSxHQUFHLElBQUk7WUFDdEIsVUFBVSxFQUFFLG9CQUFvQjtZQUNoQyxRQUFRLEVBQUUsT0FBTztTQUNsQixDQUFBO1FBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyw4QkFBOEIsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3ZJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyw4QkFBOEIsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQztZQUM5SCxJQUFJLENBQUMscUJBQXFCLENBQUMsd0JBQXdCLENBQUMsK0JBQStCLENBQUMsdUJBQXVCLENBQUMsTUFBTSxHQUFHLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEksSUFBSSxDQUFDLHFCQUFxQixDQUFDLHdCQUF3QixDQUFDLCtCQUErQixDQUFDLHVCQUF1QixDQUFDLEtBQUssR0FBRyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3JJO2FBQ0k7WUFDSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFBO1lBQy9GLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyw4QkFBOEIsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDO1lBQ3ZILElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyw4QkFBOEIsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO1NBQ3ZIO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtRQUVwRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksYUFBYSxDQUFBO1FBQ3hELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyx3QkFBd0IsQ0FBQyxhQUFhLEdBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLHdCQUF3QixDQUFDLGFBQWEsSUFBSSxhQUFhLENBQUE7UUFDdkosSUFBSSxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLGFBQWEsR0FBSyxJQUFJLENBQUMscUJBQXFCLENBQUMsb0JBQW9CLENBQUMsYUFBYSxJQUFJLGFBQWEsQ0FBQTtRQUNoSixJQUFJLENBQUMscUJBQXFCLENBQUMsNEJBQTRCLENBQUMsYUFBYSxHQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyw0QkFBNEIsQ0FBQyxhQUFhLElBQUksYUFBYSxDQUFBO1FBQy9KLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLEdBQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLHlCQUF5QixDQUFDLGFBQWEsSUFBSSxhQUFhLENBQUE7UUFDdE0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUMxQixDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxzQkFBc0IsR0FBRztZQUM1QixNQUFNLEVBQUUsTUFBTTtZQUNkLEtBQUssRUFBRSxNQUFNO1lBQ2IsTUFBTSxFQUFFLE1BQU07WUFDZCxZQUFZLEVBQUUsR0FBRztZQUNqQixVQUFVLEVBQUUsYUFBYTtZQUN6QixjQUFjLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRTtTQUM3RCxDQUFBO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUE7UUFDM0IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUE7UUFDM0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUE7UUFDdkIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUE7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLEVBQUU7WUFDakUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLDBCQUEwQixDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO1NBQzNFO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsU0FBUyxDQUFDLGVBQWUsRUFBRTthQUN4QixJQUFJLENBQUMsQ0FBQyxJQUEyQixFQUFFLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDM0IsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLENBQUMsS0FBbUMsRUFBRSxFQUFFO1lBQzdDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTthQUNwQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBRVAsQ0FBQztJQUNELG9CQUFvQjtRQUNsQixJQUFJLFlBQVksR0FBc0IsSUFBSSxpQkFBaUIsQ0FBQztZQUMxRCxLQUFLLEVBQUUsTUFBTTtZQUNiLE1BQU0sRUFBRSxNQUFNO1lBQ2QsVUFBVSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDM0QsWUFBWSxFQUFFLE1BQU07WUFDcEIsTUFBTSxFQUFFLGFBQWEsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQ3JFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUU7WUFDaEUsZUFBZSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1NBQ3ZFLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyx1QkFBdUIsR0FBRztZQUM3QixHQUFHLFlBQVk7WUFDZixHQUFHLElBQUksQ0FBQyx1QkFBdUI7U0FDaEMsQ0FBQTtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLENBQUE7UUFDdkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGdCQUFnQixDQUFBO1FBQ3pFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQTtRQUMzRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUE7UUFDbkcsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRTtZQUM3RyxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtTQUN6RTtJQUNILENBQUM7SUFpRkQsZUFBZTtRQUNiLElBQUksWUFBWSxHQUF1QixJQUFJLGtCQUFrQixDQUFDO1lBQzVELFVBQVUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO1lBQzNELE1BQU0sRUFBRSxNQUFNO1lBQ2QsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRTtZQUMvRCwwQkFBMEIsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFO1lBQ3hFLDJCQUEyQixFQUFFLGtCQUFrQjtZQUMvQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFO1lBQ2hFLGlCQUFpQixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUU7WUFDakUsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7WUFDMUUsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRTtZQUN0RSx1QkFBdUIsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQztTQUNsRixDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxHQUFHLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQywwQkFBMEIsQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO0lBQzdILENBQUM7SUFDRCxnQkFBZ0I7UUFDZCxJQUFJLFlBQVksR0FBa0IsSUFBSSxhQUFhLENBQUM7WUFDbEQsTUFBTSxFQUFFLE1BQU07WUFDZCxLQUFLLEVBQUUsTUFBTTtZQUNiLFVBQVUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO1lBQzNELGdCQUFnQixFQUFFLGFBQWE7WUFDL0IsWUFBWSxFQUFFLEdBQUc7WUFDakIsU0FBUyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1lBQ2hFLFVBQVUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ3ZELE1BQU0sRUFBRSxNQUFNO1lBQ2QsY0FBYyxFQUFFLEVBQUU7WUFDbEIsZUFBZSxFQUFFLGFBQWE7U0FDL0IsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLEdBQUcsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLDBCQUEwQixDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQ25ILENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQVdELG1CQUFtQixDQUFDLEtBQVU7UUFDNUIsSUFBSSxLQUFLLEdBQW9CLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFBO1FBQ2pELElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDakIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQTtZQUNoQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3pCLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDaEQ7SUFFSCxDQUFDO0lBQ0QsNkJBQTZCO0lBQzdCLGlCQUFpQjtRQUNmLElBQUksQ0FBQyxjQUFjLEdBQUcsb0JBQW9CLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQXNCLEVBQUUsRUFBRTtZQUM3RixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3pELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUNsQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBO2FBQ3pCO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsY0FBYyxHQUFHLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFzQixFQUFFLEVBQUU7WUFDN0YsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUNqQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFBO2dCQUNoQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQzFCO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsa0JBQWtCLEdBQUcsb0JBQW9CLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBdUIsRUFBRSxFQUFFO1lBQ3RHLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksRUFBRSxXQUFZLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3RFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxFQUFFLFdBQVcsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTthQUN6QjtRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG9CQUFvQixDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQThCLEVBQUUsRUFBRTtZQUMvRyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLEVBQUUsVUFBVyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNyRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksRUFBRSxVQUFVLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7YUFDekI7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxvQkFBb0IsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUF3QixFQUFFLEVBQUU7WUFDekcsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxFQUFFLFdBQVksQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDeEYsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztnQkFDL0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxFQUFFLFdBQVcsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTthQUN6QjtRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG9CQUFvQixDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQThCLEVBQUUsRUFBRTtZQUMvRyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLEVBQUUsVUFBVyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNyRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksRUFBRSxVQUFVLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7YUFDekI7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUF1QixFQUFFLEVBQUU7WUFDdEcsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxFQUFFLEtBQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDaEUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEVBQUUsS0FBSyxDQUFDO2dCQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQzFCO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsV0FBVyxHQUFHLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFnQixFQUFFLEVBQUU7WUFDakYsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxFQUFFLFNBQVUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxJQUFJLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQy9ILElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxFQUFFLFNBQVMsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTthQUN6QjtRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0YsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxVQUFVLEdBQUcsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2hFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDMUIsQ0FBQyxDQUFDLENBQUE7SUFFSixDQUFDO0lBQ0Qsb0NBQW9DO0lBQ3BDLG1CQUFtQjtRQUNqQixJQUFJLENBQUMsY0FBYyxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ2pDLENBQUM7O2tJQXJjVSxvQ0FBb0M7c0hBQXBDLG9DQUFvQyx1cUJDekJqRCx3OExBbUdBOzRGRDFFYSxvQ0FBb0M7a0JBTmhELFNBQVM7K0JBQ0UsZ0NBQWdDLG1CQUd6Qix1QkFBdUIsQ0FBQyxNQUFNO3FLQUlMLFFBQVE7c0JBQWpELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDSyxjQUFjO3NCQUExRCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ2xDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBS0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIElucHV0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBDaGFuZ2VEZXRlY3RvclJlZiwgRWxlbWVudFJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21ldENoYXQgfSBmcm9tIFwiQGNvbWV0Y2hhdC9jaGF0LXNkay1qYXZhc2NyaXB0XCI7XG5pbXBvcnQgeyBDb21ldENoYXRNZXNzYWdlc0NvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9Db21ldENoYXRNZXNzYWdlcy9jb21ldGNoYXQtbWVzc2FnZXMvY29tZXRjaGF0LW1lc3NhZ2VzLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQ29tZXRDaGF0Q29udmVyc2F0aW9uc0NvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9Db21ldENoYXRDb252ZXJzYXRpb25zL2NvbWV0Y2hhdC1jb252ZXJzYXRpb25zL2NvbWV0Y2hhdC1jb252ZXJzYXRpb25zLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgV2l0aE1lc3NhZ2VzU3R5bGUsIE1lc3NhZ2VzQ29uZmlndXJhdGlvbiwgR3JvdXBzQ29uZmlndXJhdGlvbiwgQ3JlYXRlR3JvdXBDb25maWd1cmF0aW9uLCBKb2luR3JvdXBDb25maWd1cmF0aW9uLCBNZXNzYWdlSGVhZGVyU3R5bGUgfSBmcm9tICdAY29tZXRjaGF0L3Vpa2l0LXNoYXJlZCdcbmltcG9ydCAnQGNvbWV0Y2hhdC91aWtpdC1lbGVtZW50cydcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBCYWNrZHJvcFN0eWxlLCBDcmVhdGVHcm91cFN0eWxlLCBKb2luR3JvdXBTdHlsZSwgTGlzdEl0ZW1TdHlsZSB9IGZyb20gXCJAY29tZXRjaGF0L3Vpa2l0LWVsZW1lbnRzXCI7XG5pbXBvcnQgeyBDb21ldENoYXRUaGVtZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vQ29tZXRDaGF0VGhlbWUuc2VydmljZVwiO1xuaW1wb3J0IHsgbG9jYWxpemUsIENvbWV0Q2hhdFRoZW1lLCBDb21ldENoYXRVSUtpdENvbnN0YW50cywgZm9udEhlbHBlciwgQ29tZXRDaGF0R3JvdXBFdmVudHMsIElHcm91cE1lbWJlckFkZGVkLCBJR3JvdXBNZW1iZXJLaWNrZWRCYW5uZWQsIElHcm91cE1lbWJlckpvaW5lZCwgSU93bmVyc2hpcENoYW5nZWQsIElHcm91cExlZnQsIENvbWV0Q2hhdFVJRXZlbnRzIH0gZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtcmVzb3VyY2VzXCI7XG4vKipcbipcbiogQ29tZXRDaGF0R3JvdXBzV2l0aE1lc3NhZ2VzQ29tcG9uZW50IGlzIGEgd3JhcHBlciBjb21wb25lbnQgZm9yIENvbWV0Q2hhdE1lc3NhZ2VzQ29tcG9uZW50IGFuZCBDb21ldENoYXRDb252ZXJzYXRpb25zIGNvbXBvbmVudCB0byBzaG93IGNoYXRzIGFuZCBtZXNzYWdlcyBpbiBvbmUgc2NyZWVuXG4qXG4qIEB2ZXJzaW9uIDEuMC4wXG4qIEBhdXRob3IgQ29tZXRDaGF0VGVhbVxuKiBAY29weXJpZ2h0IMKpIDIwMjIgQ29tZXRDaGF0IEluYy5cbipcbiovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiY29tZXRjaGF0LWdyb3Vwcy13aXRoLW1lc3NhZ2VzXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vY29tZXRjaGF0LWdyb3Vwcy13aXRoLW1lc3NhZ2VzLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9jb21ldGNoYXQtZ3JvdXBzLXdpdGgtbWVzc2FnZXMuY29tcG9uZW50LnNjc3NcIl0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDb21ldENoYXRHcm91cHNXaXRoTWVzc2FnZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIC8vIHRha2luZyByZWZlcmVuY2Ugb2YgY29udmVyc2F0aW9uQ29tcG9uZW50IGFuZCBNZXNzYWdlc0NvbXBvbmVudFxuICBAVmlld0NoaWxkKFwiZ3JvdXBSZWZcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIGdyb3VwUmVmITogQ29tZXRDaGF0Q29udmVyc2F0aW9uc0NvbXBvbmVudDtcbiAgQFZpZXdDaGlsZChcIm1lc3NhZ2VzUmVmXCIsIHsgc3RhdGljOiBmYWxzZSB9KSBtZXNzYWdlTGlzdFJlZiE6IENvbWV0Q2hhdE1lc3NhZ2VzQ29tcG9uZW50O1xuICBASW5wdXQoKSBncm91cCE6IENvbWV0Q2hhdC5Hcm91cCB8IG51bGw7XG4gIEBJbnB1dCgpIGlzTW9iaWxlVmlldzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWRlQ3JlYXRlR3JvdXA6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbWVzc2FnZVRleHQ6IHN0cmluZyA9IGxvY2FsaXplKFwiTk9fR1JPVVBTX1NFTEVDVEVEXCIpO1xuICBASW5wdXQoKSBncm91cHNXaXRoTWVzc2FnZXNTdHlsZTogV2l0aE1lc3NhZ2VzU3R5bGUgPSB7XG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgYm9yZGVyUmFkaXVzOiBcIm5vbmVcIixcbiAgfTtcbiAgQElucHV0KCkgbWVzc2FnZXNDb25maWd1cmF0aW9uOiBNZXNzYWdlc0NvbmZpZ3VyYXRpb24gPSBuZXcgTWVzc2FnZXNDb25maWd1cmF0aW9uKHt9KTtcbiAgQElucHV0KCkgY3JlYXRlR3JvdXBDb25maWd1cmF0aW9uOiBDcmVhdGVHcm91cENvbmZpZ3VyYXRpb24gPSBuZXcgQ3JlYXRlR3JvdXBDb25maWd1cmF0aW9uKHt9KTtcbiAgQElucHV0KCkgam9pbkdyb3VwQ29uZmlndXJhdGlvbjogSm9pbkdyb3VwQ29uZmlndXJhdGlvbiA9IG5ldyBKb2luR3JvdXBDb25maWd1cmF0aW9uKHt9KTtcbiAgQElucHV0KCkgZ3JvdXBzQ29uZmlndXJhdGlvbjogR3JvdXBzQ29uZmlndXJhdGlvbiA9IG5ldyBHcm91cHNDb25maWd1cmF0aW9uKHt9KTtcbiAgQElucHV0KCkgb25FcnJvcjogKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4gdm9pZCkgfCBudWxsID0gKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgY29uc29sZS5sb2coZXJyb3IpXG4gIH1cbiAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lID0gbmV3IENvbWV0Q2hhdFRoZW1lKHt9KTtcbiAgYmFja2Ryb3BTdHlsZTogQmFja2Ryb3BTdHlsZSA9IHtcblxuICB9XG4gIGNyZWF0ZUdyb3VwU3R5bGU6IENyZWF0ZUdyb3VwU3R5bGUgPSB7fVxuICBqb2luR3JvdXBTdHlsZTogSm9pbkdyb3VwU3R5bGUgPSB7fVxuICBtZXNzYWdlSGVhZGVyU3R5bGU6IE1lc3NhZ2VIZWFkZXJTdHlsZSA9IHt9XG4gIGxpc3RJdGVtU3R5bGU6IExpc3RJdGVtU3R5bGUgPSB7fVxuICAvKipcbiAgICogUHJvcGVydGllcyBmb3IgaW50ZXJuYWwgdXNlXG4gICAqL1xuICBjcmVhdGVJY29uVVJMOiBzdHJpbmcgPSBcImFzc2V0cy9jcmVhdGUtYnV0dG9uLnN2Z1wiXG4gIHB1YmxpYyBsb2dnZWRJblVzZXIhOiBDb21ldENoYXQuVXNlciB8IG51bGw7XG4gIGNyZWF0ZUdyb3VwQnV0dG9uU3R5bGU6IGFueSA9IHtcblxuICB9XG4gIGxhYmVsU3R5bGU6IGFueSA9IHtcbiAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCIsXG4gICAgdGV4dEZvbnQ6IFwiNzAwIDIycHggSW50ZXJcIixcbiAgICB0ZXh0Q29sb3I6IFwicmdiYSgyMCwgMjAsIDIwLCAwLjMzKVwiXG4gIH1cbiAgcHVibGljIG9wZW5DcmVhdGVHcm91cFBhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIG9wZW5QYXNzd29yZE1vZGFsOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBwcm90ZWN0ZWRHcm91cCE6IENvbWV0Q2hhdC5Hcm91cCB8IG51bGw7XG4gIHVzZXIhOiBDb21ldENoYXQuVXNlciB8IG51bGw7XG4gIC8qKlxuICAqIEV2ZW50c1xuICAqL1xuICBjY0dyb3VwTWVtYmVyQWRkZWQhOiBTdWJzY3JpcHRpb247XG4gIGNjR3JvdXBMZWZ0ITogU3Vic2NyaXB0aW9uO1xuICBjY0dyb3VwTWVtYmVySm9pbmVkITogU3Vic2NyaXB0aW9uO1xuICBjY0dyb3VwTWVtYmVyS2lja2VkITogU3Vic2NyaXB0aW9uO1xuICBjY0dyb3VwTWVtYmVyQmFubmVkITogU3Vic2NyaXB0aW9uO1xuICBjY093bmVyc2hpcENoYW5nZWQhOiBTdWJzY3JpcHRpb247XG4gIGNjR3JvdXBEZWxldGVkITogU3Vic2NyaXB0aW9uO1xuICBjY0dyb3VwQ3JlYXRlZCE6IFN1YnNjcmlwdGlvbjtcbiAgY2NPcGVuQ2hhdCE6IFN1YnNjcmlwdGlvbjtcbiAgc2lkZUJhclN0eWxlOiBhbnkgPSB7fVxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSB0aGVtZVNlcnZpY2U6IENvbWV0Q2hhdFRoZW1lU2VydmljZSkge1xuICB9XG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1tcImlzTW9iaWxlVmlld1wiXSkge1xuICAgICAgaWYgKHRoaXMuaXNNb2JpbGVWaWV3KSB7XG4gICAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VMaXN0Q29uZmlndXJhdGlvbi5tZXNzYWdlSW5mb3JtYXRpb25Db25maWd1cmF0aW9uLm1lc3NhZ2VJbmZvcm1hdGlvblN0eWxlLmhlaWdodCA9IFwiMTAwJVwiXG4gICAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VMaXN0Q29uZmlndXJhdGlvbi5tZXNzYWdlSW5mb3JtYXRpb25Db25maWd1cmF0aW9uLm1lc3NhZ2VJbmZvcm1hdGlvblN0eWxlLndpZHRoID0gXCIxMDAlXCJcbiAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb24uaGlkZUJhY2tCdXR0b24gPSBmYWxzZTtcbiAgICAgICAgaWYgKCF0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi5kZXRhaWxzU3R5bGUucGFkZGluZykge1xuICAgICAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLmRldGFpbHNTdHlsZS5wYWRkaW5nID0gXCIwIDhweFwiXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi5hZGRNZW1iZXJzQ29uZmlndXJhdGlvbi5hZGRNZW1iZXJzU3R5bGUucGFkZGluZykge1xuICAgICAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLmFkZE1lbWJlcnNDb25maWd1cmF0aW9uLmFkZE1lbWJlcnNTdHlsZS5wYWRkaW5nID0gXCIwIDhweFwiXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi5iYW5uZWRNZW1iZXJzQ29uZmlndXJhdGlvbi5iYW5uZWRNZW1iZXJzU3R5bGUucGFkZGluZykge1xuICAgICAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLmJhbm5lZE1lbWJlcnNDb25maWd1cmF0aW9uLmJhbm5lZE1lbWJlcnNTdHlsZS5wYWRkaW5nID0gXCIwIDhweFwiXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi5iYW5uZWRNZW1iZXJzQ29uZmlndXJhdGlvbi5iYW5uZWRNZW1iZXJzU3R5bGUucGFkZGluZykge1xuICAgICAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLmJhbm5lZE1lbWJlcnNDb25maWd1cmF0aW9uLmJhbm5lZE1lbWJlcnNTdHlsZS5wYWRkaW5nID0gXCIwIDhweFwiXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb24gPSB7IC4uLnRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VIZWFkZXJDb25maWd1cmF0aW9uIH1cbiAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24gPSB7IC4uLnRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uIH1cbiAgICAgICAgdGhpcy5qb2luR3JvdXBDb25maWd1cmF0aW9uLm1lc3NhZ2VIZWFkZXJDb25maWd1cmF0aW9uLmhpZGVCYWNrQnV0dG9uID0gZmFsc2U7XG4gICAgICAgIHRoaXMuam9pbkdyb3VwQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvbiA9IHsgLi4udGhpcy5qb2luR3JvdXBDb25maWd1cmF0aW9uLm1lc3NhZ2VIZWFkZXJDb25maWd1cmF0aW9uIH1cbiAgICAgICAgdGhpcy5qb2luR3JvdXBDb25maWd1cmF0aW9uID0geyAuLi50aGlzLmpvaW5Hcm91cENvbmZpZ3VyYXRpb24gfVxuICAgICAgfVxuICAgICAgZWxzZSBpZiAoIXRoaXMuaXNNb2JpbGVWaWV3KSB7XG4gICAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VMaXN0Q29uZmlndXJhdGlvbi5tZXNzYWdlSW5mb3JtYXRpb25Db25maWd1cmF0aW9uLm1lc3NhZ2VJbmZvcm1hdGlvblN0eWxlLmhlaWdodCA9IFwiNTAwcHhcIlxuICAgICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlTGlzdENvbmZpZ3VyYXRpb24ubWVzc2FnZUluZm9ybWF0aW9uQ29uZmlndXJhdGlvbi5tZXNzYWdlSW5mb3JtYXRpb25TdHlsZS53aWR0aCA9IFwiNTAwcHhcIlxuICAgICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvbi5oaWRlQmFja0J1dHRvbiA9IHRydWU7XG4gICAgICAgIGlmICghdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24uZGV0YWlsc1N0eWxlLnBhZGRpbmcpIHtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi5kZXRhaWxzU3R5bGUucGFkZGluZyA9IFwiMCAxMDBweFwiXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi5hZGRNZW1iZXJzQ29uZmlndXJhdGlvbi5hZGRNZW1iZXJzU3R5bGUucGFkZGluZykge1xuICAgICAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLmFkZE1lbWJlcnNDb25maWd1cmF0aW9uLmFkZE1lbWJlcnNTdHlsZS5wYWRkaW5nID0gXCIwIDEwMHB4XCJcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLmJhbm5lZE1lbWJlcnNDb25maWd1cmF0aW9uLmJhbm5lZE1lbWJlcnNTdHlsZS5wYWRkaW5nKSB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24uYmFubmVkTWVtYmVyc0NvbmZpZ3VyYXRpb24uYmFubmVkTWVtYmVyc1N0eWxlLnBhZGRpbmcgPSBcIjAgMTAwcHhcIlxuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24uYmFubmVkTWVtYmVyc0NvbmZpZ3VyYXRpb24uYmFubmVkTWVtYmVyc1N0eWxlLnBhZGRpbmcpIHtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi5iYW5uZWRNZW1iZXJzQ29uZmlndXJhdGlvbi5iYW5uZWRNZW1iZXJzU3R5bGUucGFkZGluZyA9IFwiMCAxMDBweFwiXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb24gPSB7IC4uLnRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VIZWFkZXJDb25maWd1cmF0aW9uIH1cbiAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24gPSB7IC4uLnRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uIH1cbiAgICAgICAgdGhpcy5qb2luR3JvdXBDb25maWd1cmF0aW9uLm1lc3NhZ2VIZWFkZXJDb25maWd1cmF0aW9uLmhpZGVCYWNrQnV0dG9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5qb2luR3JvdXBDb25maWd1cmF0aW9uLm1lc3NhZ2VIZWFkZXJDb25maWd1cmF0aW9uID0geyAuLi50aGlzLmpvaW5Hcm91cENvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb24gfVxuICAgICAgICB0aGlzLmpvaW5Hcm91cENvbmZpZ3VyYXRpb24gPSB7IC4uLnRoaXMuam9pbkdyb3VwQ29uZmlndXJhdGlvbiB9XG4gICAgICB9XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVCYWNrZHJvcEhlaWdodCgpXG4gICAgICB9LCAxMDApO1xuICAgIH1cbiAgfVxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy51cGRhdGVCYWNrZHJvcEhlaWdodCgpXG4gIH1cbiAgb25CYWNrID0gKCkgPT4ge1xuICAgIHRoaXMuZ3JvdXAgPSBudWxsXG4gICAgdGhpcy51c2VyID0gbnVsbDtcbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuICBvcGVuQ3JlYXRlR3JvdXAoKSB7XG4gICAgdGhpcy5vcGVuQ3JlYXRlR3JvdXBQYWdlID0gdHJ1ZVxuICB9XG5cbiAgY2xvc2VDcmVhdGVHcm91cCA9ICgpID0+IHtcbiAgICB0aGlzLm9wZW5DcmVhdGVHcm91cFBhZ2UgPSBmYWxzZVxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICB9XG4gIGNsb3NlSm9pbkdyb3VwID0gKCkgPT4ge1xuICAgIHRoaXMub3BlblBhc3N3b3JkTW9kYWwgPSBmYWxzZVxuICB9XG4gIG9uSXRlbUNsaWNrOiAoKGdyb3VwOiBDb21ldENoYXQuR3JvdXApID0+IHZvaWQpID0gKGdyb3VwOiBDb21ldENoYXQuR3JvdXApID0+IHtcbiAgICB0aGlzLm9wZW5QYXNzd29yZE1vZGFsID0gZmFsc2U7XG4gICAgaWYgKGdyb3VwLmdldEhhc0pvaW5lZCgpKSB7XG4gICAgICB0aGlzLmdyb3VwID0gZ3JvdXA7XG4gICAgICB0aGlzLnVzZXIgPSBudWxsO1xuICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZ3JvdXAuZ2V0VHlwZSgpID09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLkdyb3VwVHlwZXMucGFzc3dvcmQpIHtcbiAgICAgIHRoaXMuZ3JvdXAgPSBudWxsO1xuICAgICAgdGhpcy5wcm90ZWN0ZWRHcm91cCA9IGdyb3VwO1xuICAgICAgdGhpcy5vcGVuUGFzc3dvcmRNb2RhbCA9IHRydWU7XG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIENvbWV0Q2hhdC5qb2luR3JvdXAoZ3JvdXApLnRoZW4oKGdyb3VwSm9pbmVkOiBDb21ldENoYXQuR3JvdXApID0+IHtcbiAgICAgIENvbWV0Q2hhdEdyb3VwRXZlbnRzLmNjR3JvdXBNZW1iZXJKb2luZWQubmV4dCh7XG4gICAgICAgIGpvaW5lZEdyb3VwOiBncm91cEpvaW5lZCxcbiAgICAgICAgam9pbmVkVXNlcjogdGhpcy5sb2dnZWRJblVzZXIhXG4gICAgICB9KVxuICAgICAgZ3JvdXAuc2V0SGFzSm9pbmVkKHRydWUpXG4gICAgICB0aGlzLmdyb3VwID0gZ3JvdXA7XG4gICAgICB0aGlzLnVzZXIgPSBudWxsO1xuICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICAgICAgaWYgKHRoaXMub25FcnJvcikge1xuICAgICAgICAgIHRoaXMub25FcnJvcihlcnJvcilcbiAgICAgICAgfVxuICAgICAgfSlcbiAgfTtcblxuICB1cGRhdGVCYWNrZHJvcEhlaWdodCgpIHtcbiAgICBsZXQgZGl2SGVpZ2h0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgIGxldCBkaXZXaWR0aCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIGlmIChkaXZIZWlnaHQgPT09IDAgfHwgZGl2V2lkdGggPT09IDApIHtcbiAgICAgIGNvbnN0IHJlY3QgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGRpdkhlaWdodCA9IHJlY3QuaGVpZ2h0O1xuICAgICAgZGl2V2lkdGggPSByZWN0LndpZHRoO1xuICAgIH1cbiAgICBsZXQgYmFja2Ryb3BTdHlsZSA9IHtcbiAgICAgIGhlaWdodDogZGl2SGVpZ2h0ICsgXCJweFwiLFxuICAgICAgd2lkdGg6IGRpdldpZHRoICsgXCJweFwiLFxuICAgICAgYmFja2dyb3VuZDogXCJyZ2JhKDAsIDAsIDAsIDAuNSlcIixcbiAgICAgIHBvc2l0aW9uOiBcImZpeGVkXCJcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNNb2JpbGVWaWV3KSB7XG4gICAgICB0aGlzLmNyZWF0ZUdyb3VwU3R5bGUuaGVpZ2h0ID0gKGRpdkhlaWdodCAtIDMwKSArIFwicHhcIjtcbiAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLnRyYW5zZmVyT3duZXJzaGlwQ29uZmlndXJhdGlvbi50cmFuc2Zlck93bmVyc2hpcFN0eWxlLmhlaWdodCA9IChkaXZIZWlnaHQgLSAzMCkgKyBcInB4XCI7XG4gICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi50cmFuc2Zlck93bmVyc2hpcENvbmZpZ3VyYXRpb24udHJhbnNmZXJPd25lcnNoaXBTdHlsZS53aWR0aCA9IGRpdldpZHRoICsgXCJweFwiO1xuICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUxpc3RDb25maWd1cmF0aW9uLm1lc3NhZ2VJbmZvcm1hdGlvbkNvbmZpZ3VyYXRpb24ubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUuaGVpZ2h0ID0gZGl2SGVpZ2h0ICsgXCJweFwiO1xuICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUxpc3RDb25maWd1cmF0aW9uLm1lc3NhZ2VJbmZvcm1hdGlvbkNvbmZpZ3VyYXRpb24ubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUud2lkdGggPSBkaXZXaWR0aCArIFwicHhcIjtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLmNyZWF0ZUdyb3VwU3R5bGUuaGVpZ2h0ID0gdGhpcy5jcmVhdGVHcm91cENvbmZpZ3VyYXRpb24uY3JlYXRlR3JvdXBTdHlsZS5oZWlnaHQgfHwgXCI2MjBweFwiXG4gICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi50cmFuc2Zlck93bmVyc2hpcENvbmZpZ3VyYXRpb24udHJhbnNmZXJPd25lcnNoaXBTdHlsZS5oZWlnaHQgPSBcIjY1MHB4XCI7XG4gICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi50cmFuc2Zlck93bmVyc2hpcENvbmZpZ3VyYXRpb24udHJhbnNmZXJPd25lcnNoaXBTdHlsZS53aWR0aCA9IFwiMzYwcHhcIjtcbiAgICB9XG4gICAgdGhpcy5jcmVhdGVHcm91cFN0eWxlID0geyAuLi50aGlzLmNyZWF0ZUdyb3VwU3R5bGUgfVxuXG4gICAgdGhpcy5iYWNrZHJvcFN0eWxlID0gdGhpcy5iYWNrZHJvcFN0eWxlIHx8IGJhY2tkcm9wU3R5bGVcbiAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlTGlzdENvbmZpZ3VyYXRpb24uYmFja2Ryb3BTdHlsZSA9ICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlTGlzdENvbmZpZ3VyYXRpb24uYmFja2Ryb3BTdHlsZSB8fCBiYWNrZHJvcFN0eWxlXG4gICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24uYmFja2Ryb3BTdHlsZSA9ICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24uYmFja2Ryb3BTdHlsZSB8fCBiYWNrZHJvcFN0eWxlXG4gICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUNvbXBvc2VyQ29uZmlndXJhdGlvbi5iYWNrZHJvcFN0eWxlID0gIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VDb21wb3NlckNvbmZpZ3VyYXRpb24uYmFja2Ryb3BTdHlsZSB8fCBiYWNrZHJvcFN0eWxlXG4gICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24uZ3JvdXBNZW1iZXJzQ29uZmlndXJhdGlvbi5iYWNrZHJvcFN0eWxlID0gICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLmdyb3VwTWVtYmVyc0NvbmZpZ3VyYXRpb24uYmFja2Ryb3BTdHlsZSB8fCBiYWNrZHJvcFN0eWxlXG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jcmVhdGVHcm91cEJ1dHRvblN0eWxlID0ge1xuICAgICAgaGVpZ2h0OiBcIjI0cHhcIixcbiAgICAgIHdpZHRoOiBcIjI0cHhcIixcbiAgICAgIGJvcmRlcjogXCJub25lXCIsXG4gICAgICBib3JkZXJSYWRpdXM6ICcwJyxcbiAgICAgIGJhY2tncm91bmQ6IFwidHJhbnNwYXJlbnRcIixcbiAgICAgIGJ1dHRvbkljb25UaW50OiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldFByaW1hcnkoKVxuICAgIH1cbiAgICB0aGlzLnNldFdpdGhNZXNzYWdlc1N0eWxlKClcbiAgICB0aGlzLnNldENyZWF0ZUdyb3VwU3R5bGVzKClcbiAgICB0aGlzLnNldExpc3RJdGVtU3R5bGUoKVxuICAgIHRoaXMuc2V0Sm9pbkdyb3VwU3R5bGVzKClcbiAgICBpZiAoIXRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VIZWFkZXJDb25maWd1cmF0aW9uLm9uQmFjaykge1xuICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb24ub25CYWNrID0gdGhpcy5vbkJhY2tcbiAgICB9XG4gICAgdGhpcy5zdWJzY3JpYmVUb0V2ZW50cygpO1xuICAgIENvbWV0Q2hhdC5nZXRMb2dnZWRpblVzZXIoKVxuICAgICAgLnRoZW4oKHVzZXI6IENvbWV0Q2hhdC5Vc2VyIHwgbnVsbCkgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlZEluVXNlciA9IHVzZXI7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICBpZiAodGhpcy5vbkVycm9yKSB7XG4gICAgICAgICAgdGhpcy5vbkVycm9yKGVycm9yKVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICB9XG4gIHNldFdpdGhNZXNzYWdlc1N0eWxlKCkge1xuICAgIGxldCBkZWZhdWx0U3R5bGU6IFdpdGhNZXNzYWdlc1N0eWxlID0gbmV3IFdpdGhNZXNzYWdlc1N0eWxlKHtcbiAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgICBiYWNrZ3JvdW5kOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEJhY2tncm91bmQoKSxcbiAgICAgIGJvcmRlclJhZGl1czogXCJub25lXCIsXG4gICAgICBib3JkZXI6IGAxcHggc29saWQgJHt0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDIwMCgpfWAsXG4gICAgICBtZXNzYWdlVGV4dENvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgbWVzc2FnZVRleHRGb250OiBmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkudGl0bGUxKSxcbiAgICB9KVxuICAgIHRoaXMuZ3JvdXBzV2l0aE1lc3NhZ2VzU3R5bGUgPSB7XG4gICAgICAuLi5kZWZhdWx0U3R5bGUsXG4gICAgICAuLi50aGlzLmdyb3Vwc1dpdGhNZXNzYWdlc1N0eWxlXG4gICAgfVxuICAgIHRoaXMubGFiZWxTdHlsZS50ZXh0Rm9udCA9IHRoaXMuZ3JvdXBzV2l0aE1lc3NhZ2VzU3R5bGUubWVzc2FnZVRleHRGb250XG4gICAgdGhpcy5sYWJlbFN0eWxlLnRleHRDb2xvciA9IHRoaXMuZ3JvdXBzV2l0aE1lc3NhZ2VzU3R5bGUubWVzc2FnZVRleHRDb2xvclxuICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VzU3R5bGUuYm9yZGVyID0gdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZXNTdHlsZS5ib3JkZXIgPz8gXCJub25lXCJcbiAgICB0aGlzLmdyb3Vwc0NvbmZpZ3VyYXRpb24uZ3JvdXBzU3R5bGUuYm9yZGVyID0gdGhpcy5ncm91cHNDb25maWd1cmF0aW9uLmdyb3Vwc1N0eWxlLmJvcmRlciA/PyBcIm5vbmVcIlxuICAgIGlmICghdGhpcy5ncm91cHNDb25maWd1cmF0aW9uPy5ncm91cHNTdHlsZT8uYm9yZGVyIHx8IHRoaXMuZ3JvdXBzQ29uZmlndXJhdGlvbj8uZ3JvdXBzU3R5bGU/LmJvcmRlciA9PSBcIm5vbmVcIikge1xuICAgICAgdGhpcy5zaWRlQmFyU3R5bGUgPSB7IGJvcmRlclJpZ2h0OiB0aGlzLmdyb3Vwc1dpdGhNZXNzYWdlc1N0eWxlLmJvcmRlciB9XG4gICAgfVxuICB9XG4gIHNldENyZWF0ZUdyb3VwU3R5bGVzID0gKCkgPT4ge1xuICAgIGxldCBkZWZhdWx0U3R5bGU6IENyZWF0ZUdyb3VwU3R5bGUgPSBuZXcgQ3JlYXRlR3JvdXBTdHlsZSh7XG4gICAgICBib3hTaGFkb3c6IGAwcHggMHB4IDhweCAke3RoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NTAoKX1gLFxuICAgICAgZ3JvdXBUeXBlVGV4dEZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTIpLFxuICAgICAgZ3JvdXBUeXBlQm9yZGVyOiBgMXB4IHNvbGlkICR7dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKX1gLFxuICAgICAgZ3JvdXBUeXBlQm9yZGVyUmFkaXVzOiBcIjBcIixcbiAgICAgIGdyb3VwVHlwZVRleHRDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQoKSxcbiAgICAgIGdyb3VwVHlwZVRleHRCYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCIsXG4gICAgICBncm91cFR5cGVCYWNrZ3JvdW5kOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDEwMCgpLFxuICAgICAgZ3JvdXBUeXBlQm94U2hhZG93OiBcIlwiLFxuICAgICAgYWN0aXZlR3JvdXBUeXBlVGV4dEZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTIpLFxuICAgICAgYWN0aXZlR3JvdXBUeXBlVGV4dENvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudCgpLFxuICAgICAgYWN0aXZlR3JvdXBUeXBlQmFja2dyb3VuZDogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ5MDAoKSxcbiAgICAgIGFjdGl2ZUdyb3VwVHlwZUJveFNoYWRvdzogYCR7dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQyMDAoKX0gMCAzcHggOHB4IDBgLFxuICAgICAgYWN0aXZlR3JvdXBUeXBlQm9yZGVyUmFkaXVzOiBcIjhweFwiLFxuICAgICAgYWN0aXZlR3JvdXBUeXBlQm9yZGVyOiBcIm5vbmVcIixcbiAgICAgIGdyb3VwVHlwZVRleHRCb3hTaGFkb3c6IFwibm9uZVwiLFxuICAgICAgZ3JvdXBUeXBlVGV4dEJvcmRlclJhZGl1czogXCIwXCIsXG4gICAgICBjbG9zZUljb25UaW50OiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldFByaW1hcnkoKSxcbiAgICAgIHRpdGxlVGV4dEZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS50aXRsZTEpLFxuICAgICAgdGl0bGVUZXh0Q29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50KCksXG4gICAgICBlcnJvclRleHRGb250OiBmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkuc3VidGl0bGUxKSxcbiAgICAgIGVycm9yVGV4dEJhY2tncm91bmQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0RXJyb3IoKSxcbiAgICAgIGVycm9yVGV4dEJvcmRlclJhZGl1czogXCI4cHhcIixcbiAgICAgIGVycm9yVGV4dEJvcmRlcjogXCJub25lXCIsXG4gICAgICBlcnJvclRleHRDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRFcnJvcigpLFxuICAgICAgbmFtZUlucHV0UGxhY2Vob2xkZXJUZXh0Rm9udDogZm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMSksXG4gICAgICBuYW1lSW5wdXRQbGFjZWhvbGRlclRleHRDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICAgIG5hbWVJbnB1dEJhY2tncm91bmQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50MTAwKCksXG4gICAgICBuYW1lSW5wdXRUZXh0Rm9udDogZm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMSksXG4gICAgICBuYW1lSW5wdXRUZXh0Q29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50KCksXG4gICAgICBuYW1lSW5wdXRCb3JkZXI6IFwibm9uZVwiLFxuICAgICAgbmFtZUlucHV0Qm9yZGVyUmFkaXVzOiBcIjhweFwiLFxuICAgICAgbmFtZUlucHV0Qm94U2hhZG93OiBgJHt0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDEwMCgpfSAwIDAgMCAxcHhgLFxuICAgICAgcGFzc3dvcmRJbnB1dFBsYWNlaG9sZGVyVGV4dEZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTEpLFxuICAgICAgcGFzc3dvcmRJbnB1dFBsYWNlaG9sZGVyVGV4dENvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgcGFzc3dvcmRJbnB1dEJhY2tncm91bmQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50MTAwKCksXG4gICAgICBwYXNzd29yZElucHV0Qm9yZGVyOiBcIm5vbmVcIixcbiAgICAgIHBhc3N3b3JkSW5wdXRCb3JkZXJSYWRpdXM6IFwiOHB4XCIsXG4gICAgICBwYXNzd29yZElucHV0Qm94U2hhZG93OiBgJHt0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDEwMCgpfSAwIDAgMCAxcHhgLFxuICAgICAgcGFzc3dvcmRJbnB1dFRleHRGb250OiBmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkuc3VidGl0bGUxKSxcbiAgICAgIHBhc3N3b3JkSW5wdXRUZXh0Q29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50KCksXG4gICAgICBjcmVhdGVHcm91cEJ1dHRvblRleHRGb250OiBmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkudGV4dDIpLFxuICAgICAgY3JlYXRlR3JvdXBCdXR0b25UZXh0Q29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50OTAwKFwibGlnaHRcIiksXG4gICAgICBjcmVhdGVHcm91cEJ1dHRvbkJhY2tncm91bmQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0UHJpbWFyeSgpLFxuICAgICAgY3JlYXRlR3JvdXBCdXR0b25Cb3JkZXJSYWRpdXM6IFwiOHB4XCIsXG4gICAgICBjcmVhdGVHcm91cEJ1dHRvbkJvcmRlcjogXCJub25lXCIsXG4gICAgICBoZWlnaHQ6IFwiNjIwcHhcIixcbiAgICAgIHdpZHRoOiBcIjM2MHB4XCIsXG4gICAgICBib3JkZXJSYWRpdXM6IFwiOHB4XCIsXG4gICAgICBiYWNrZ3JvdW5kOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEJhY2tncm91bmQoKVxuICAgIH0pXG4gICAgdGhpcy5jcmVhdGVHcm91cFN0eWxlID0geyAuLi5kZWZhdWx0U3R5bGUsIC4uLnRoaXMuY3JlYXRlR3JvdXBDb25maWd1cmF0aW9uLmNyZWF0ZUdyb3VwU3R5bGUgfVxuXG4gIH1cbiAgc2V0Sm9pbkdyb3VwU3R5bGVzID0gKCkgPT4ge1xuICAgIGxldCBkZWZhdWx0U3R5bGU6IEpvaW5Hcm91cFN0eWxlID0gbmV3IEpvaW5Hcm91cFN0eWxlKHtcbiAgICAgIGJveFNoYWRvdzogYDBweCAwcHggOHB4ICR7dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ1MCgpfWAsXG4gICAgICB0aXRsZVRleHRGb250OiBmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkudGl0bGUxKSxcbiAgICAgIHRpdGxlVGV4dENvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudCgpLFxuICAgICAgcGFzc3dvcmRJbnB1dFBsYWNlaG9sZGVyVGV4dEZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTEpLFxuICAgICAgcGFzc3dvcmRJbnB1dFBsYWNlaG9sZGVyVGV4dENvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgcGFzc3dvcmRJbnB1dEJhY2tncm91bmQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50MTAwKCksXG4gICAgICBwYXNzd29yZElucHV0Qm9yZGVyOiBcIm5vbmVcIixcbiAgICAgIHBhc3N3b3JkSW5wdXRCb3JkZXJSYWRpdXM6IFwiOHB4XCIsXG4gICAgICBwYXNzd29yZElucHV0Qm94U2hhZG93OiBgJHt0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDEwMCgpfSAwIDAgMCAxcHhgLFxuICAgICAgcGFzc3dvcmRJbnB1dFRleHRGb250OiBmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkuc3VidGl0bGUxKSxcbiAgICAgIHBhc3N3b3JkSW5wdXRUZXh0Q29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50KCksXG4gICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgam9pbkJ1dHRvblRleHRGb250OiBmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkuc3VidGl0bGUxKSxcbiAgICAgIGpvaW5CdXR0b25UZXh0Q29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50KFwiZGFya1wiKSxcbiAgICAgIGpvaW5CdXR0b25CYWNrZ3JvdW5kOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldFByaW1hcnkoKSxcbiAgICAgIGpvaW5CdXR0b25Cb3JkZXJSYWRpdXM6IFwiOHB4XCIsXG4gICAgICBqb2luQnV0dG9uQm9yZGVyOiBcIm5vbmVcIixcbiAgICAgIGJhY2tncm91bmQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QmFja2dyb3VuZCgpXG4gICAgfSlcbiAgICB0aGlzLmpvaW5Hcm91cFN0eWxlID0geyAuLi5kZWZhdWx0U3R5bGUsIC4uLnRoaXMuam9pbkdyb3VwQ29uZmlndXJhdGlvbi5qb2luR3JvdXBTdHlsZSB9XG5cbiAgfVxuICBzZXRIZWFkZXJzU3R5bGUoKSB7XG4gICAgbGV0IGRlZmF1bHRTdHlsZTogTWVzc2FnZUhlYWRlclN0eWxlID0gbmV3IE1lc3NhZ2VIZWFkZXJTdHlsZSh7XG4gICAgICBiYWNrZ3JvdW5kOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEJhY2tncm91bmQoKSxcbiAgICAgIGJvcmRlcjogYG5vbmVgLFxuICAgICAgb25saW5lU3RhdHVzQ29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0U3VjY2VzcygpLFxuICAgICAgcHJpdmF0ZUdyb3VwSWNvbkJhY2tncm91bmQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0U3VjY2VzcygpLFxuICAgICAgcGFzc3dvcmRHcm91cEljb25CYWNrZ3JvdW5kOiBcIlJHQigyNDcsIDE2NSwgMClcIixcbiAgICAgIGJhY2tCdXR0b25JY29uVGludDogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRQcmltYXJ5KCksXG4gICAgICBzdWJ0aXRsZVRleHRDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICAgIHN1YnRpdGxlVGV4dEZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTIpLFxuICAgICAgdHlwaW5nSW5kaWNhdG9yVGV4dENvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldFByaW1hcnkoKSxcbiAgICAgIHR5cGluZ0luZGljYXRvclRleHRGb250OiBmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkuc3VidGl0bGUxKSxcbiAgICB9KVxuICAgIHRoaXMubWVzc2FnZUhlYWRlclN0eWxlID0geyAuLi5kZWZhdWx0U3R5bGUsIC4uLnRoaXMuam9pbkdyb3VwQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyU3R5bGUgfVxuICB9XG4gIHNldExpc3RJdGVtU3R5bGUoKSB7XG4gICAgbGV0IGRlZmF1bHRTdHlsZTogTGlzdEl0ZW1TdHlsZSA9IG5ldyBMaXN0SXRlbVN0eWxlKHtcbiAgICAgIGhlaWdodDogXCI0NXB4XCIsXG4gICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICBiYWNrZ3JvdW5kOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEJhY2tncm91bmQoKSxcbiAgICAgIGFjdGl2ZUJhY2tncm91bmQ6IFwidHJhbnNwYXJlbnRcIixcbiAgICAgIGJvcmRlclJhZGl1czogXCIwXCIsXG4gICAgICB0aXRsZUZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS50aXRsZTIpLFxuICAgICAgdGl0bGVDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQoKSxcbiAgICAgIGJvcmRlcjogXCJub25lXCIsXG4gICAgICBzZXBhcmF0b3JDb2xvcjogXCJcIixcbiAgICAgIGhvdmVyQmFja2dyb3VuZDogXCJ0cmFuc3BhcmVudFwiXG4gICAgfSlcbiAgICB0aGlzLmxpc3RJdGVtU3R5bGUgPSB7IC4uLmRlZmF1bHRTdHlsZSwgLi4udGhpcy5qb2luR3JvdXBDb25maWd1cmF0aW9uLm1lc3NhZ2VIZWFkZXJDb25maWd1cmF0aW9uLmxpc3RJdGVtU3R5bGUgfVxuICB9XG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudW5zdWJzY3JpYmVUb0V2ZW50cygpO1xuICB9XG4gIG9uR3JvdXBKb2luZWQgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgIGxldCBncm91cDogQ29tZXRDaGF0Lkdyb3VwID0gZXZlbnQ/LmRldGFpbD8ucmVzcG9uc2VcbiAgICB0aGlzLm9wZW5QYXNzd29yZE1vZGFsID0gZmFsc2U7XG4gICAgdGhpcy5wcm90ZWN0ZWRHcm91cCA9IG51bGw7XG4gICAgaWYgKGdyb3VwKSB7XG4gICAgICB0aGlzLmdyb3VwID0gZ3JvdXBcbiAgICAgIHRoaXMudXNlciA9IG51bGw7XG4gICAgfVxuXG4gIH1cbiAgdXBkYXRlZENyZWF0ZWRHcm91cChldmVudDogYW55KSB7XG4gICAgbGV0IGdyb3VwOiBDb21ldENoYXQuR3JvdXAgPSBldmVudD8uZGV0YWlsPy5ncm91cFxuICAgIGlmIChncm91cCkge1xuICAgICAgdGhpcy5ncm91cCA9IGdyb3VwO1xuICAgICAgdGhpcy51c2VyID0gbnVsbDtcbiAgICAgIHRoaXMub3BlbkNyZWF0ZUdyb3VwUGFnZSA9IGZhbHNlXG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICBDb21ldENoYXRHcm91cEV2ZW50cy5jY0dyb3VwQ3JlYXRlZC5uZXh0KGdyb3VwKVxuICAgIH1cblxuICB9XG4gIC8vIHN1YnNjcmliZSB0byBnbG9iYWwgZXZlbnRzXG4gIHN1YnNjcmliZVRvRXZlbnRzKCkge1xuICAgIHRoaXMuY2NHcm91cERlbGV0ZWQgPSBDb21ldENoYXRHcm91cEV2ZW50cy5jY0dyb3VwRGVsZXRlZC5zdWJzY3JpYmUoKGdyb3VwOiBDb21ldENoYXQuR3JvdXApID0+IHtcbiAgICAgIGlmICh0aGlzLmdyb3VwICYmIGdyb3VwLmdldEd1aWQoKSA9PSB0aGlzLmdyb3VwLmdldEd1aWQoKSkge1xuICAgICAgICB0aGlzLmdyb3VwID0gbnVsbDtcbiAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICB9XG4gICAgfSlcbiAgICB0aGlzLmNjR3JvdXBDcmVhdGVkID0gQ29tZXRDaGF0R3JvdXBFdmVudHMuY2NHcm91cENyZWF0ZWQuc3Vic2NyaWJlKChncm91cDogQ29tZXRDaGF0Lkdyb3VwKSA9PiB7XG4gICAgICBpZiAoZ3JvdXApIHtcbiAgICAgICAgdGhpcy5ncm91cCA9IGdyb3VwO1xuICAgICAgICB0aGlzLnVzZXIgPSBudWxsO1xuICAgICAgICB0aGlzLm9wZW5DcmVhdGVHcm91cFBhZ2UgPSBmYWxzZVxuICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfSlcbiAgICB0aGlzLmNjR3JvdXBNZW1iZXJBZGRlZCA9IENvbWV0Q2hhdEdyb3VwRXZlbnRzLmNjR3JvdXBNZW1iZXJBZGRlZC5zdWJzY3JpYmUoKGl0ZW06IElHcm91cE1lbWJlckFkZGVkKSA9PiB7XG4gICAgICBpZiAodGhpcy5ncm91cCAmJiB0aGlzLmdyb3VwLmdldEd1aWQoKSA9PSBpdGVtPy51c2VyQWRkZWRJbiEuZ2V0R3VpZCgpKSB7XG4gICAgICAgIHRoaXMuZ3JvdXAgPSBpdGVtPy51c2VyQWRkZWRJbjtcbiAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICB9XG4gICAgfSlcbiAgICB0aGlzLmNjR3JvdXBNZW1iZXJCYW5uZWQgPSBDb21ldENoYXRHcm91cEV2ZW50cy5jY0dyb3VwTWVtYmVyQmFubmVkLnN1YnNjcmliZSgoaXRlbTogSUdyb3VwTWVtYmVyS2lja2VkQmFubmVkKSA9PiB7XG4gICAgICBpZiAodGhpcy5ncm91cCAmJiB0aGlzLmdyb3VwLmdldEd1aWQoKSA9PSBpdGVtPy5raWNrZWRGcm9tIS5nZXRHdWlkKCkpIHtcbiAgICAgICAgdGhpcy5ncm91cCA9IGl0ZW0/LmtpY2tlZEZyb207XG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgfVxuICAgIH0pXG4gICAgdGhpcy5jY0dyb3VwTWVtYmVySm9pbmVkID0gQ29tZXRDaGF0R3JvdXBFdmVudHMuY2NHcm91cE1lbWJlckpvaW5lZC5zdWJzY3JpYmUoKGl0ZW06IElHcm91cE1lbWJlckpvaW5lZCkgPT4ge1xuICAgICAgaWYgKHRoaXMucHJvdGVjdGVkR3JvdXAgJiYgdGhpcy5wcm90ZWN0ZWRHcm91cC5nZXRHdWlkKCkgPT0gaXRlbT8uam9pbmVkR3JvdXAhLmdldEd1aWQoKSkge1xuICAgICAgICB0aGlzLm9wZW5QYXNzd29yZE1vZGFsID0gZmFsc2U7XG4gICAgICAgIHRoaXMucHJvdGVjdGVkR3JvdXAgPSBudWxsO1xuICAgICAgICB0aGlzLmdyb3VwID0gaXRlbT8uam9pbmVkR3JvdXA7XG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgfVxuICAgIH0pXG4gICAgdGhpcy5jY0dyb3VwTWVtYmVyS2lja2VkID0gQ29tZXRDaGF0R3JvdXBFdmVudHMuY2NHcm91cE1lbWJlcktpY2tlZC5zdWJzY3JpYmUoKGl0ZW06IElHcm91cE1lbWJlcktpY2tlZEJhbm5lZCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZ3JvdXAgJiYgdGhpcy5ncm91cC5nZXRHdWlkKCkgPT0gaXRlbT8ua2lja2VkRnJvbSEuZ2V0R3VpZCgpKSB7XG4gICAgICAgIHRoaXMuZ3JvdXAgPSBpdGVtPy5raWNrZWRGcm9tO1xuICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgIH1cbiAgICB9KVxuICAgIHRoaXMuY2NPd25lcnNoaXBDaGFuZ2VkID0gQ29tZXRDaGF0R3JvdXBFdmVudHMuY2NPd25lcnNoaXBDaGFuZ2VkLnN1YnNjcmliZSgoaXRlbTogSU93bmVyc2hpcENoYW5nZWQpID0+IHtcbiAgICAgIGlmICh0aGlzLmdyb3VwICYmIHRoaXMuZ3JvdXAuZ2V0R3VpZCgpID09IGl0ZW0/Lmdyb3VwIS5nZXRHdWlkKCkpIHtcbiAgICAgICAgdGhpcy5ncm91cCA9IGl0ZW0/Lmdyb3VwO1xuICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfSlcbiAgICB0aGlzLmNjR3JvdXBMZWZ0ID0gQ29tZXRDaGF0R3JvdXBFdmVudHMuY2NHcm91cExlZnQuc3Vic2NyaWJlKChpdGVtOiBJR3JvdXBMZWZ0KSA9PiB7XG4gICAgICBpZiAodGhpcy5ncm91cCAmJiB0aGlzLmdyb3VwLmdldEd1aWQoKSA9PSBpdGVtPy5sZWZ0R3JvdXAhLmdldEd1aWQoKSAmJiB0aGlzLmxvZ2dlZEluVXNlcj8uZ2V0VWlkKCkgPT0gaXRlbT8udXNlckxlZnQ/LmdldFVpZCgpKSB7XG4gICAgICAgIHRoaXMuZ3JvdXAgPSBpdGVtPy5sZWZ0R3JvdXA7XG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgfVxuICAgIH0pXG4gICAgLy8gb3BlbiBjaGF0IGFuZCBtYXJrIGFzIGFjdGl2ZSBjb252ZXJzYXRpb25cbiAgICB0aGlzLmNjT3BlbkNoYXQgPSBDb21ldENoYXRVSUV2ZW50cy5jY09wZW5DaGF0LnN1YnNjcmliZSgoaXRlbSkgPT4ge1xuICAgICAgdGhpcy51c2VyID0gaXRlbS51c2VyID8gaXRlbS51c2VyIDogbnVsbDtcbiAgICAgIHRoaXMuZ3JvdXAgPSBpdGVtLmdyb3VwID8gaXRlbS5ncm91cCA6IG51bGw7XG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICB9KVxuXG4gIH1cbiAgLy8gdW5zdWJzY3JpYmUgdG8gc3Vic2NyaWJlZCBldmVudHMuXG4gIHVuc3Vic2NyaWJlVG9FdmVudHMoKSB7XG4gICAgdGhpcy5jY0dyb3VwRGVsZXRlZD8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNjR3JvdXBNZW1iZXJBZGRlZD8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNjR3JvdXBNZW1iZXJCYW5uZWQ/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5jY0dyb3VwTWVtYmVySm9pbmVkPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2NHcm91cE1lbWJlcktpY2tlZD8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNjT3duZXJzaGlwQ2hhbmdlZD8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNjR3JvdXBMZWZ0Py51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2NPcGVuQ2hhdD8udW5zdWJzY3JpYmUoKTtcbiAgfVxuICBlbXB0eU1lc3NhZ2VTdHlsZSA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgYmFja2dyb3VuZDogdGhpcy5ncm91cHNXaXRoTWVzc2FnZXNTdHlsZS5iYWNrZ3JvdW5kIHx8IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QmFja2dyb3VuZCgpLFxuICAgICAgaGVpZ2h0OiB0aGlzLmdyb3Vwc1dpdGhNZXNzYWdlc1N0eWxlLmhlaWdodCxcbiAgICAgIHdpZHRoOiBgY2FsYygke3RoaXMuZ3JvdXBzV2l0aE1lc3NhZ2VzU3R5bGUud2lkdGh9IC0gMjgwcHgpYCxcbiAgICAgIGJvcmRlcjogXCJub25lXCIsXG4gICAgICBib3JkZXJSYWRpdXM6IHRoaXMuZ3JvdXBzV2l0aE1lc3NhZ2VzU3R5bGUuYm9yZGVyUmFkaXVzLFxuICAgIH1cbiAgfVxuICBncm91cHNXcmFwcGVyU3R5bGVzID0gKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBoZWlnaHQ6IHRoaXMuZ3JvdXBzV2l0aE1lc3NhZ2VzU3R5bGUuaGVpZ2h0LFxuICAgICAgd2lkdGg6IHRoaXMuZ3JvdXBzV2l0aE1lc3NhZ2VzU3R5bGUud2lkdGgsXG4gICAgICBib3JkZXI6IHRoaXMuZ3JvdXBzV2l0aE1lc3NhZ2VzU3R5bGUuYm9yZGVyLFxuICAgICAgYm9yZGVyUmFkaXVzOiB0aGlzLmdyb3Vwc1dpdGhNZXNzYWdlc1N0eWxlLmJvcmRlclJhZGl1cyxcbiAgICAgIGJhY2tncm91bmQ6IHRoaXMuZ3JvdXBzV2l0aE1lc3NhZ2VzU3R5bGUuYmFja2dyb3VuZCB8fCB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEJhY2tncm91bmQoKSxcbiAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnXG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2Mtd2l0aC1tZXNzYWdlc19fd3JhcHBlclwiIFtuZ1N0eWxlXT1cImdyb3Vwc1dyYXBwZXJTdHlsZXMoKVwiPlxuICA8ZGl2IGNsYXNzPVwiY2Mtd2l0aC1tZXNzYWdlc19fc2lkZWJhclwiIFtuZ0NsYXNzXT1cInttb2JpbGUgOiBpc01vYmlsZVZpZXd9XCJcbiAgICBbbmdTdHlsZV09XCJzaWRlQmFyU3R5bGVcIj5cbiAgICA8Y29tZXRjaGF0LWdyb3VwcyAjZ3JvdXBSZWYgW2FjdGl2ZUdyb3VwXT1cImdyb3VwXCJcbiAgICAgIFtoaWRlU2VhcmNoXT1cImdyb3Vwc0NvbmZpZ3VyYXRpb24uaGlkZVNlYXJjaFwiXG4gICAgICBbc2VhcmNoSWNvblVSTF09XCJncm91cHNDb25maWd1cmF0aW9uLnNlYXJjaEljb25VUkxcIlxuICAgICAgW3NlYXJjaFJlcXVlc3RCdWlsZGVyXT1cImdyb3Vwc0NvbmZpZ3VyYXRpb24uc2VhcmNoUmVxdWVzdEJ1aWxkZXJcIlxuICAgICAgW29uSXRlbUNsaWNrXT1cImdyb3Vwc0NvbmZpZ3VyYXRpb24ub25JdGVtQ2xpY2sgfHwgb25JdGVtQ2xpY2tcIlxuICAgICAgW2dyb3Vwc1N0eWxlXT1cImdyb3Vwc0NvbmZpZ3VyYXRpb24uZ3JvdXBzU3R5bGVcIlxuICAgICAgW3N1YnRpdGxlVmlld109XCJncm91cHNDb25maWd1cmF0aW9uLnN1YnRpdGxlVmlld1wiXG4gICAgICBbb3B0aW9uc109XCJncm91cHNDb25maWd1cmF0aW9uLm9wdGlvbnNcIlxuICAgICAgW3ByaXZhdGVHcm91cEljb25dPVwiZ3JvdXBzQ29uZmlndXJhdGlvbi5wcml2YXRlR3JvdXBJY29uXCJcbiAgICAgIFtwcm90ZWN0ZWRHcm91cEljb25dPVwiZ3JvdXBzQ29uZmlndXJhdGlvbi5wcm90ZWN0ZWRHcm91cEljb25cIlxuICAgICAgW3Bhc3N3b3JkR3JvdXBJY29uXT1cImdyb3Vwc0NvbmZpZ3VyYXRpb24ucGFzc3dvcmRHcm91cEljb25cIlxuICAgICAgW2dyb3Vwc1JlcXVlc3RCdWlsZGVyXT1cImdyb3Vwc0NvbmZpZ3VyYXRpb24uZ3JvdXBzUmVxdWVzdEJ1aWxkZXJcIlxuICAgICAgW2VtcHR5U3RhdGVWaWV3XT1cImdyb3Vwc0NvbmZpZ3VyYXRpb24uZW1wdHlTdGF0ZVZpZXdcIlxuICAgICAgW29uU2VsZWN0XT1cImdyb3Vwc0NvbmZpZ3VyYXRpb24ub25TZWxlY3RcIlxuICAgICAgW2xvYWRpbmdJY29uVVJMXT1cImdyb3Vwc0NvbmZpZ3VyYXRpb24ubG9hZGluZ0ljb25VUkxcIlxuICAgICAgW2Vycm9yU3RhdGVWaWV3XT1cImdyb3Vwc0NvbmZpZ3VyYXRpb24uZXJyb3JTdGF0ZVZpZXdcIlxuICAgICAgW2xvYWRpbmdTdGF0ZVZpZXddPVwiZ3JvdXBzQ29uZmlndXJhdGlvbi5sb2FkaW5nU3RhdGVWaWV3XCJcbiAgICAgIFt0aXRsZUFsaWdubWVudF09XCJncm91cHNDb25maWd1cmF0aW9uLnRpdGxlQWxpZ25tZW50XCJcbiAgICAgIFtsaXN0SXRlbVZpZXddPVwiZ3JvdXBzQ29uZmlndXJhdGlvbi5saXN0SXRlbVZpZXdcIlxuICAgICAgW21lbnVdPVwiZ3JvdXBzQ29uZmlndXJhdGlvbi5tZW51IHx8IGNyZWF0ZUdyb3VwQnV0dG9uXCJcbiAgICAgIFtoaWRlU2VwYXJhdG9yXT1cImdyb3Vwc0NvbmZpZ3VyYXRpb24uaGlkZVNlcGFyYXRvclwiXG4gICAgICBbaGlkZUVycm9yXT1cImdyb3Vwc0NvbmZpZ3VyYXRpb24uaGlkZUVycm9yXCJcbiAgICAgIFtzZWxlY3Rpb25Nb2RlXT1cImdyb3Vwc0NvbmZpZ3VyYXRpb24uc2VsZWN0aW9uTW9kZVwiXG4gICAgICBbbGlzdEl0ZW1TdHlsZV09XCJncm91cHNDb25maWd1cmF0aW9uLmxpc3RJdGVtU3R5bGVcIj48L2NvbWV0Y2hhdC1ncm91cHM+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY2Mtd2l0aC1tZXNzYWdlc19fbWFpblwiIFtuZ0NsYXNzXT1cInttb2JpbGUgOiBpc01vYmlsZVZpZXd9XCJcbiAgICAqbmdJZj1cIihncm91cCB8fCB1c2VyKSAmJiAhb3BlblBhc3N3b3JkTW9kYWxcIj5cbiAgICA8IS0tTWVzc2FnZSBMaXN0IFNjcmVlbi0tPlxuICAgIDxjb21ldGNoYXQtbWVzc2FnZXMgI21lc3NhZ2VzUmVmIFtncm91cF09XCJncm91cCFcIlxuICAgICAgW21lc3NhZ2VIZWFkZXJDb25maWd1cmF0aW9uXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvblwiXG4gICAgICBbbWVzc2FnZUxpc3RDb25maWd1cmF0aW9uXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlTGlzdENvbmZpZ3VyYXRpb25cIlxuICAgICAgW21lc3NhZ2VDb21wb3NlckNvbmZpZ3VyYXRpb25dPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VDb21wb3NlckNvbmZpZ3VyYXRpb25cIlxuICAgICAgW21lc3NhZ2VzU3R5bGVdPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VzU3R5bGVcIlxuICAgICAgW2N1c3RvbVNvdW5kRm9ySW5jb21pbmdNZXNzYWdlc109XCJtZXNzYWdlc0NvbmZpZ3VyYXRpb24uY3VzdG9tU291bmRGb3JJbmNvbWluZ01lc3NhZ2VzXCJcbiAgICAgIFtjdXN0b21Tb3VuZEZvck91dGdvaW5nTWVzc2FnZXNdPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLmN1c3RvbVNvdW5kRm9yT3V0Z29pbmdNZXNzYWdlc1wiXG4gICAgICBbZGV0YWlsc0NvbmZpZ3VyYXRpb25dPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uXCJcbiAgICAgIFtkaXNhYmxlU291bmRGb3JNZXNzYWdlc109XCJtZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGlzYWJsZVNvdW5kRm9yTWVzc2FnZXNcIlxuICAgICAgW2Rpc2FibGVUeXBpbmddPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLmRpc2FibGVUeXBpbmdcIlxuICAgICAgW2hpZGVNZXNzYWdlQ29tcG9zZXJdPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLmhpZGVNZXNzYWdlQ29tcG9zZXJcIlxuICAgICAgW2hpZGVNZXNzYWdlSGVhZGVyXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5oaWRlTWVzc2FnZUhlYWRlclwiXG4gICAgICBbbWVzc2FnZUNvbXBvc2VyVmlld109XCJtZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUNvbXBvc2VyVmlld1wiXG4gICAgICBbbWVzc2FnZUhlYWRlclZpZXddPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VIZWFkZXJWaWV3XCJcbiAgICAgIFttZXNzYWdlTGlzdFZpZXddPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VMaXN0Vmlld1wiIFt1c2VyXT1cInVzZXIhXCJcbiAgICAgIFt0aHJlYWRlZE1lc3NhZ2VDb25maWd1cmF0aW9uXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi50aHJlYWRlZE1lc3NhZ2VDb25maWd1cmF0aW9uXCJcbiAgICAgIFtoaWRlRGV0YWlsc109XCJtZXNzYWdlc0NvbmZpZ3VyYXRpb24uaGlkZURldGFpbHMhXCI+XG4gICAgPC9jb21ldGNoYXQtbWVzc2FnZXM+XG4gICAgPCEtLU1lc3NhZ2UgTGlzdCBTY3JlZW4gRU5EUy0tPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNjLWRlY29yYXRvcl9fbWVzc2FnZS0tZW1wdHlcIlxuICAgICpuZ0lmPVwiIXVzZXIgJiYgIWdyb3VwICAmJiAhb3BlblBhc3N3b3JkTW9kYWxcIlxuICAgIFtuZ1N0eWxlXT1cImVtcHR5TWVzc2FnZVN0eWxlKClcIj5cbiAgICA8Y29tZXRjaGF0LWxhYmVsIFt0ZXh0XT1cIm1lc3NhZ2VUZXh0XCJcbiAgICAgIFtsYWJlbFN0eWxlXT1cImxhYmVsU3R5bGVcIj48L2NvbWV0Y2hhdC1sYWJlbD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjYy13aXRoLW1lc3NhZ2VzX19qb2luZ3JvdXBcIlxuICAgICpuZ0lmPVwib3BlblBhc3N3b3JkTW9kYWwgJiYgIWdyb3VwICYmICF1c2VyXCIgW25nU3R5bGVdPVwiZW1wdHlNZXNzYWdlU3R5bGUoKVwiXG4gICAgW25nQ2xhc3NdPVwie21vYmlsZSA6IGlzTW9iaWxlVmlld31cIj5cbiAgICA8Y29tZXRjaGF0LWpvaW4tZ3JvdXAgW2dyb3VwXT1cInByb3RlY3RlZEdyb3VwIVwiXG4gICAgICBbam9pbkdyb3VwU3R5bGVdPVwiam9pbkdyb3VwU3R5bGVcIlxuICAgICAgKGNjLWpvaW5ncm91cC1qb2luZWQpPVwib25Hcm91cEpvaW5lZCgkZXZlbnQpXCJcbiAgICAgIFtlcnJvckNhbGxiYWNrXT1cImpvaW5Hcm91cENvbmZpZ3VyYXRpb24ub25FcnJvclwiXG4gICAgICBbam9pbkNsaWNrXT1cImpvaW5Hcm91cENvbmZpZ3VyYXRpb24uam9pbkNsaWNrXCI+XG4gICAgICA8Y29tZXRjaGF0LW1lc3NhZ2UtaGVhZGVyIHNsb3Q9XCJoZWFkZXJWaWV3XCIgW2dyb3VwXT1cInByb3RlY3RlZEdyb3VwIVwiXG4gICAgICAgIFtzdWJ0aXRsZVZpZXddPVwiam9pbkdyb3VwQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvbi5zdWJ0aXRsZVZpZXdcIlxuICAgICAgICBbZGlzYWJsZVVzZXJzUHJlc2VuY2VdPVwiam9pbkdyb3VwQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvbi5kaXNhYmxlVXNlcnNQcmVzZW5jZVwiXG4gICAgICAgIFtwcm90ZWN0ZWRHcm91cEljb25dPVwiam9pbkdyb3VwQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvbi5wcm90ZWN0ZWRHcm91cEljb25cIlxuICAgICAgICBbcGFzc3dvcmRHcm91cEljb25dPVwiam9pbkdyb3VwQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvbi5wYXNzd29yZEdyb3VwSWNvblwiXG4gICAgICAgIFtwcml2YXRlR3JvdXBJY29uXT1cImpvaW5Hcm91cENvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb24ucHJpdmF0ZUdyb3VwSWNvblwiXG4gICAgICAgIFttZW51XT1cImpvaW5Hcm91cENvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb24ubWVudVwiXG4gICAgICAgIFttZXNzYWdlSGVhZGVyU3R5bGVdPVwibWVzc2FnZUhlYWRlclN0eWxlXCJcbiAgICAgICAgW2JhY2tCdXR0b25JY29uVVJMXT1cImpvaW5Hcm91cENvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb24uYmFja0J1dHRvbkljb25VUkxcIlxuICAgICAgICBbaGlkZUJhY2tCdXR0b25dPVwiam9pbkdyb3VwQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvbi5oaWRlQmFja0J1dHRvblwiXG4gICAgICAgIFtvbkVycm9yXT1cImpvaW5Hcm91cENvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb24ub25FcnJvclwiXG4gICAgICAgIFtvbkJhY2tdPVwiam9pbkdyb3VwQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvbi5vbkJhY2sgfHwgY2xvc2VKb2luR3JvdXBcIlxuICAgICAgICBbbGlzdEl0ZW1TdHlsZV09XCJsaXN0SXRlbVN0eWxlXCJcbiAgICAgICAgW3N0YXR1c0luZGljYXRvclN0eWxlXT1cImpvaW5Hcm91cENvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb24uc3RhdHVzSW5kaWNhdG9yU3R5bGVcIlxuICAgICAgICBbYXZhdGFyU3R5bGVdPVwiam9pbkdyb3VwQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvbi5hdmF0YXJTdHlsZVwiPlxuICAgICAgPC9jb21ldGNoYXQtbWVzc2FnZS1oZWFkZXI+XG4gICAgPC9jb21ldGNoYXQtam9pbi1ncm91cD5cbiAgPC9kaXY+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjY3JlYXRlR3JvdXBCdXR0b24+XG4gIDxjb21ldGNoYXQtYnV0dG9uICpuZ0lmPVwiIWhpZGVDcmVhdGVHcm91cFwiIFtpY29uVVJMXT1cImNyZWF0ZUljb25VUkxcIlxuICAgIFtidXR0b25TdHlsZV09XCJjcmVhdGVHcm91cEJ1dHRvblN0eWxlXCJcbiAgICAoY2MtYnV0dG9uLWNsaWNrZWQpPVwib3BlbkNyZWF0ZUdyb3VwKClcIj48L2NvbWV0Y2hhdC1idXR0b24+XG5cbjwvbmctdGVtcGxhdGU+XG48Y29tZXRjaGF0LWJhY2tkcm9wICpuZ0lmPVwib3BlbkNyZWF0ZUdyb3VwUGFnZVwiIFtiYWNrZHJvcFN0eWxlXT1cImJhY2tkcm9wU3R5bGVcIj5cbiAgPGNvbWV0Y2hhdC1jcmVhdGUtZ3JvdXAgW2NyZWF0ZUdyb3VwU3R5bGVdPVwiY3JlYXRlR3JvdXBTdHlsZVwiXG4gICAgW2hpZGVDbG9zZUJ1dHRvbl09XCJjcmVhdGVHcm91cENvbmZpZ3VyYXRpb24uaGlkZUNsb3NlQnV0dG9uXCJcbiAgICBbY2xvc2VCdXR0b25JY29uVVJMXT1cImNyZWF0ZUdyb3VwQ29uZmlndXJhdGlvbi5jbG9zZUJ1dHRvbkljb25VUkxcIlxuICAgIFtjcmVhdGVDbGlja109XCJjcmVhdGVHcm91cENvbmZpZ3VyYXRpb24uY3JlYXRlQ2xpY2tcIlxuICAgIFtjbG9zZUNhbGxiYWNrXT1cImNsb3NlQ3JlYXRlR3JvdXBcIj5cblxuICA8L2NvbWV0Y2hhdC1jcmVhdGUtZ3JvdXA+XG48L2NvbWV0Y2hhdC1iYWNrZHJvcD5cbiJdfQ==
|