Help
RSS
API
Feed
Maltego
Contact
Domain > ablan3panl.top
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2025-04-01
104.21.1.158
(
ClassC
)
2025-11-01
172.67.129.127
(
ClassC
)
Port 443
HTTP/1.1 200 OKDate: Sat, 01 Nov 2025 19:35:26 GMTContent-Type: text/html; charsetutf-8Transfer-Encoding: chunkedConnection: keep-aliveCache-Control: privateServer: cloudflarex-robots-tag: noindexx-content-type-options: nosniffp3p: CPNON CUR OUR STP STA PREcf-cache-status: DYNAMICNel: {report_to:cf-nel,success_fraction:0.0,max_age:604800}Report-To: {group:cf-nel,max_age:604800,endpoints:{url:https://a.nel.cloudflare.com/report/v4?smc%2BrMegW1e1g9lvMzeHJf8KkKR%2F5bZWe2ez13JB7lawMaKI3Q6NUnlXpA1pRHqVdzjv%2BFoDTBVx68K8aTxs%2FWJ1%2Bsu9VxyKEtbaDy4KL}}CF-RAY: 997dd5d15b718636-PDXalt-svc: h3:443; ma86400 !DOCTYPE html>html>head>meta http-equivX-UA-Compatible contentIEedge />meta nameviewport contentwidthdevice-width, initial-scale1, maximum-scale1, user-scalableno /> script> function setTaggedSessionInfo(tag, taggedSessionInfo) { var oldTaggedSessionInfo window._taggedSessionInfostag; window._taggedSessionInfostag taggedSessionInfo; if (!oldTaggedSessionInfo || taggedSessionInfo.SessionID ! oldTaggedSessionInfo.SessionID || taggedSessionInfo.Code ! oldTaggedSessionInfo.Code) SC.livedata.notifyDirty(); } // backwards compatibility with extensions function setTaggedSessionID(tag, sessionID) { window.setTaggedSessionInfo(tag, { SessionID: sessionID }); } function getTaggedSessionInfo(tag) { return window._taggedSessionInfostag; } function getSessionInfo() { var liveData SC.livedata.get(); return liveData && liveData.ResponseInfoMap && liveData.ResponseInfoMapGuestSessionInfo } /script>script srcScript.ashx?__Cachef7027da9-bdca-4e7b-89b9-ceae26fe7290 iddefaultScript>/script>script srcScripts/SC.polyfill.ts?ScriptImportTypeNoModule&__Cached44847af-b3bd-4172-89b9-1aeefddcaebd nomodulenomodule>/script>script srcScripts/SC.main.ts?ScriptImportTypeNoModule&__Cache22cb8d08-24f7-4515-878a-77ff2a649522 nomodulenomodule>/script>script srcScripts/SC.main.ts?ScriptImportTypeClassic&__Cache22cb8d08-24f7-4515-878a-77ff2a649522>/script>link hrefApp_Themes/DarkTeal/Default.css?__Cache0447f4ee-ddbe-4714-a2c1-b78bb7bb8b79 typetext/css relstylesheet />link hrefFavIcon.axd?__Cache754ad9bd-434e-4b80-aad2-118ab2e06228 relshortcut icon />script>SC.util.mergeIntoContext({focusedControlID:null,userName:,userDisplayName:,isUserAuthenticated:false,antiForgeryToken:QGuxOKLmZGv7R5LvGqjoGh48wHKHM0IzE57CW4sb6ccBAAAnOfyvMMEtQg,isUserAdministrator:false,canManageSharedToolbox:false,pageBaseFileName:Guest,notifyActivityFrequencyMilliseconds:600000,loginAfterInactivityMilliseconds:36000000,canChangePassword:false,controlPanelUrl:null,pageType:GuestPage,processType:2,userAgentOverride:null,sessionTypeInfos:,imports:{SC.editor:Scripts/SC.editor.ts?ScriptImportTypeEsModule\u0026__Cache60d7ab5e-29f5-45c8-8e33-0c1d65698b62}});/script>script>SC.extension.addInitializeProc(fa369545-ba27-4670-b053-a9f65f3269b0, function (extensionContext) {if (SC.context.pageType AdministrationPage && SC.context.isUserAuthenticated) SC.service.GetThemeInfo(function (themeInfo) { SC.util.includeStyleSheet(extensionContext.baseUrl + css/Style.css); });SC.event.addGlobalHandler(SC.event.ExecuteCommand, function (eventArgs) { switch (eventArgs.commandName) { case WebConfigSave: SC.dialog.showModalButtonDialog( Prompt, SC.resAdvancedConfig.ApplyChanges, OK, Default, function (container) { SC.ui.setContents(container, eventArgs.commandArgument WebConfigRestore ? $p(SC.resAdvancedConfig.RestoreDefaults.WebConfigWarning) : $p(SC.resAdvancedConfig.RestartInstanceWarning) ); }, function () { var appSettings JSON.parse(sessionStorage.getItem(WebConfigAppSettings)); var pageSettings JSON.parse(JSON.stringify(appSettings.location)); delete appSettings.location; SC.service.WriteChangesToWebConfig(appSettings, pageSettings, function (result) { if (result OK) { sessionStorage.removeItem(WebConfigAppSettings); SC.dialog.showModalActivityAndReload(Save, true, window.location.href.split(#)0); } else { SC.dialog.showModalMessageBox(SC.resAdvancedConfig.SaveError.Title, SC.resAdvancedConfig.SaveError.WebConfigDescription + + result); } }); } ); break; case AppConfigSave: SC.dialog.showModalButtonDialog( Prompt, SC.resAdvancedConfig.ApplyChanges, OK, Default, function (container) { SC.ui.setContents(container, eventArgs.commandArgument AppConfigRestore ? $p(SC.resAdvancedConfig.RestoreDefaults.AppConfigWarning) : $p(SC.resAdvancedConfig.ReinstallWarning) ); }, function () { var applicationSettings JSON.parse(sessionStorage.getItem(AppConfigAppSettings)); SC.service.WriteChangesToAppConfigNew(applicationSettings, AppConfigDefaults, function (result) { if (result OK) { sessionStorage.removeItem(AppConfigAppSettings); window.location.reload(); } else { SC.dialog.showModalMessageBox(SC.resAdvancedConfig.SaveError.Title, SC.resAdvancedConfig.SaveError.AppConfigDescription + + result); } }); } ); break; }});});/script>script>SC.extension.addInitializeProc(c42e9fe5-f4aa-4698-bb71-ae68b8a23890, function (extensionContext) {/** Advanced SMTP Settings (1.2.3.0) **/var extensionId extensionContext.baseUrl.split(/).slice(-2)0;IS_CLOUD /^.*\.(screenconnect|hostedrmm)\.com$/.test(SC.context.clp.h);EMPTY_PASSWORD \ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd;/***** Extension Help Option *****/var helpLink SC.resExtension.SMTPSettings.HelpLink;var extensionResourceID EditSMTPSettings;SC.event.addGlobalHandler(SC.event.QueryCommandButtonState, function (eventArgs) { switch (eventArgs.commandName) { case EditExtensionSettings: if (eventArgs.commandContext.extensionInfo.ExtensionID extensionId && eventArgs.commandElement._commandName EditExtensionSettings) SC.ui.addElement(eventArgs.target.parentElement, A, { href: #, _commandName: (SC.context.scriptBaseUrl.indexOf(https://) helpLink.indexOf(https://) ? ShowHelpLink_ : OpenHelpLink_) + extensionId, _innerText: SC.resCommand.Help.Text.replace( ▽, ) }); break; }});SC.event.addGlobalHandler(SC.event.ExecuteCommand, function (eventArgs) { switch (eventArgs.commandName) { case ShowHelpLink_ + extensionId: SC.dialog.showModalPage(SC.resCommand.Help.Text.replace( ▽, ), helpLink, null); break; case OpenHelpLink_ + extensionId: window.open(helpLink, _blank); break; }});/*********************************/SC.service.GetMailConfigurationInfo SC.service.GetAdvancedMailConfigurationInfo;SC.resCommand.EditAdvancedMailConfiguration.Text SC.resCommand.EditMailConfiguration.Text;SC.event.addGlobalHandler(SC.event.PageDataRefreshed, function () { if (SC.context.pageType AdministrationPage && SC.context.tabKeysSC.context.tabIndex Mail) { var mailConfiguration SC.pagedata.get(); SC.types.SmtpDeliveryMethod mailConfiguration.SmtpDeliveryMethod; SC.ui.setContents($(.MailPanel), $dt( $h3({_textResource: MailPanel.MailTitle}), $p({className: CommandList}, SC.command.createCommandButtons({commandName: EditAdvancedMailConfiguration})), ), $dd( $dl( $dt({_textResource: MailPanel.MailDeliveryText}), $dd(mailConfiguration.smtpDeliveryMethod SC.types.SmtpDeliveryMethod.Network ? SC.util.isNullOrEmpty(mailConfiguration.smtpRelayServerHostName) ? SC.resMailPanel.SmtpDirectRadioButtonText : SC.util.formatString(SC.resExtension.SMTPSettings.MailPanel.RelaySettingsTextFormat, mailConfiguration.smtpRelayServerHostName, mailConfiguration.smtpRelayServerPort 25 ? null : : + mailConfiguration.smtpRelayServerPort, mailConfiguration.enableSSL ? SC.resExtension.SMTPSettings.MailPanel.UseSSLText : null, mailConfiguration.smtpUseDefaultCredentials ? SC.util.formatString( SC.resExtension.SMTPSettings.MailPanel.UsingDefaultCredentialsTextFormat, (!SC.util.isNullOrEmpty(mailConfiguration.smtpNetworkTargetName) ? SC.util.formatString(SC.resExtension.SMTPSettings.MailPanel.SPNLabelTextFormat, mailConfiguration.smtpNetworkTargetName) : ) ) : !SC.util.isNullOrEmpty(mailConfiguration.smtpNetworkUserName) && !SC.util.isNullOrEmpty(mailConfiguration.smtpNetworkPassword) ? SC.util.formatString(SC.resExtension.SMTPSettings.MailPanel.UsernameLabelTextFormat, mailConfiguration.smtpNetworkUserName) : null ) : mailConfiguration.smtpDeliveryMethod SC.types.SmtpDeliveryMethod.PickupDirectoryFromIis ? SC.resExtension.SMTPSettings.MailPanel.UsingIISPickupDirectoryText : SC.util.formatString(SC.resExtension.SMTPSettings.MailPanel.UsingSpecifiedPickupDirectoryTextFormat, mailConfiguration.smtpPickupDirectoryLocation) ), $dt({_textResource: MailPanel.DefaultFromAddressLabelText}), $dd(mailConfiguration.defaultMailFromAddress || SC.resMailPanel.UnsetLabelText), $dt({_textResource: MailPanel.DefaultToAddressLabelText}), $dd(mailConfiguration.defaultMailToAddress || SC.resMailPanel.UnsetLabelText), ), ), ); }});SC.event.addGlobalHandler(SC.event.ExecuteCommand, function (eventArgs) { switch (eventArgs.commandName) { case EditAdvancedMailConfiguration: var mailConfiguration SC.pagedata.get(); function getControlsForDeliveryMethod(deliveryMethodName) { var setRadioButtonChecked function () { SC.dialog.getModalDialog().querySelector(. + deliveryMethodName + RadioButton).checked true; }; var setBothRadioButtonsChecked function (eventArgs) { setRadioButtonChecked(); SC.ui.findDescendantBreadthFirst(SC.ui.findAncestorByTag(eventArgs.target, DD), function (_) { return _.name SmtpAuthenticationType }).checked true; }; switch (deliveryMethodName) { case Relay: // this isnt a value of SmtpDeliveryMethod, just Network with extra parameters return $dl({className: SmtpRelaySettingsList}, $dt(SC.resExtension.SMTPSettings.NetworkSettingsLabelText), $dd( $label( $span(SC.resExtension.SMTPSettings.RelayServerLabelText), $input({ type: text, className: SmtpRelayServerBox, value: mailConfiguration.smtpRelayServerHostName, _eventHandlerMap: {focus: setRadioButtonChecked}, }), ), ), $dd( $label( $span(SC.resExtension.SMTPSettings.RelayServerPortLabelText), $input({ type: number, className: SmtpRelayServerPortBox, value: mailConfiguration.smtpRelayServerPort, _eventHandlerMap: {focus: setRadioButtonChecked}, _attributeMap: { max: 65535, min: 1, placeholder: 25, }, }), ), ), $dd( $label( $input({ type: checkbox, className: SmtpRelayServerEnableSSLCheckbox, checked: mailConfiguration.enableSSL, _eventHandlerMap: {focus: setRadioButtonChecked}, }), $span(SC.resExtension.SMTPSettings.UseSSLLabelText), ), ), $dt(SC.resExtension.SMTPSettings.AuthenticationSettingsLabelText), $dd( $label( $input({ type: radio, name: SmtpAuthenticationType, value: None, checked: (SC.util.isNullOrEmpty(mailConfiguration.smtpNetworkUserName) || SC.util.isNullOrEmpty(mailConfiguration.smtpNetworkPassword)) && !mailConfiguration.smtpUseDefaultCredentials, _eventHandlerMap: {focus: setRadioButtonChecked}, }), $span(SC.resExtension.SMTPSettings.AnonymousCredentialsLabelText), ), ), $dd( $label( $input({ type: radio, name: SmtpAuthenticationType, value: Windows, checked: mailConfiguration.smtpUseDefaultCredentials, _eventHandlerMap: {focus: setRadioButtonChecked}, }), $span(SC.resExtension.SMTPSettings.DefaultCredentialsLabelText), ), $label( $span(SC.resExtension.SMTPSettings.NetworkTargetNameLabelText), $input({ type: text, className: SmtpAuthSPNBox, value: mailConfiguration.smtpNetworkTargetName, _eventHandlerMap: {focus: setBothRadioButtonsChecked}, }), ), ), $dd( $label( $input({ type: radio, name: SmtpAuthenticationType, value: Credentials, checked: !mailConfiguration.smtpUseDefaultCredentials && !SC.util.isNullOrEmpty(mailConfiguration.smtpNetworkUserName) && !SC.util.isNullOrEmpty(mailConfiguration.smtpNetworkPassword), _eventHandlerMap: {focus: setBothRadioButtonsChecked}, }), $span(SC.resExtension.SMTPSettings.AccountCredentialsLabelText), ), $label( $span(SC.resExtension.SMTPSettings.UsernameLabelText), $input({ type: text, className: SmtpAuthUsernameBox, value: mailConfiguration.smtpNetworkUserName, _eventHandlerMap: {focus: setBothRadioButtonsChecked}, }), ), $label( $span(SC.resExtension.SMTPSettings.PasswordLabelText), $input({ type: password, className: SmtpAuthPasswordBox, value: mailConfiguration.smtpNetworkPassword, _eventHandlerMap: {focus: setBothRadioButtonsChecked}, }), ), $label( $span(SC.resExtension.SMTPSettings.ConfirmPasswordLabelText), $input({ type: password, className: SmtpAuthConfirmPasswordBox, value: mailConfiguration.smtpNetworkPassword, _eventHandlerMap: {focus: setBothRadioButtonsChecked}, }), ), ), ); case SpecifiedPickupDirectory: return $input({ type: text, className: SmtpPickupDirectoryLocationBox, value: mailConfiguration.smtpPickupDirectoryLocation, _eventHandlerMap: {focus: setRadioButtonChecked}, }); default: // network, iispickup return null; } } SC.dialog.showModalDialog(EditMailConfiguration, { titleResourceName: EditMailConfigurationPanel.Title, content: $dl( $dt({_textResource: MailPanel.MailDeliveryText}), $dd( Network, PickupDirectoryFromIis, SpecifiedPickupDirectory, Relay.filter(function (_) { return !IS_CLOUD || _ Network || _ Relay }).map(function (_) { return $label( $input({ type: radio, name: MailDelivery, className: _ + RadioButton, value: _, checked: _ Relay ? !SC.util.isNullOrEmpty(mailConfiguration.smtpRelayServerHostName) : mailConfiguration.smtpDeliveryMethod SC.types.SmtpDeliveryMethod_, }), $span({_textResource: MailPanel.Smtp + (_ Network ? Direct : _) + RadioButtonText}), ), getControlsForDeliveryMethod(_), ; }) ), $dt({_textResource: MailPanel.DefaultFromAddressLabelText}), $dd( $input({ type: text, className: DefaultMailFromAddressBox, value: mailConfiguration.defaultMailFromAddress, }), ), $dt({_textResource: MailPanel.DefaultToAddressLabelText}), $dd( $div( $input({ type: text, className: DefaultMailToAddressBox, value: mailConfiguration.defaultMailToAddress, }), $button({ className: SecondaryButton, _textResource: MailPanel.SendTestMailButtonText, _commandName: SendAdvancedTestEmail, }), ), ), ), $p({className: ResultPanel}), , buttonTextResourceName: EditMailConfigurationPanel.ButtonText, onExecuteCommandProc: function (dialogEventArgs, dialog, closeDialogProc, setDialogErrorProc) { var authenticationMethod SC.ui.getSelectedRadioButtonValue(dialog.querySelector(.SmtpRelaySettingsList)); var smtpDeliveryMethodName SC.ui.getSelectedRadioButtonValue(dialog); var useExtraNetworkSettings false; if (smtpDeliveryMethodName Relay) { smtpDeliveryMethodName Network; // convert to valid SmtpDeliveryMethod value useExtraNetworkSettings true; } var defaultMailFromAddress dialog.querySelector(.DefaultMailFromAddressBox).value.trim(); var defaultMailToAddress dialog.querySelector(.DefaultMailToAddressBox).value.trim(); var smtpRelayServerHostName useExtraNetworkSettings ? dialog.querySelector(.SmtpRelayServerBox).value.trim() || null : null; var smtpRelayServerPort useExtraNetworkSettings ? dialog.querySelector(.SmtpRelayServerPortBox).value.trim() || null : null; var enableSSL useExtraNetworkSettings ? dialog.querySelector(.SmtpRelayServerEnableSSLCheckbox).checked : null; var smtpPickupDirectoryLocation smtpDeliveryMethodName SpecifiedPickupDirectory ? dialog.querySelector(.SmtpPickupDirectoryLocationBox).value.trim() || null : null; var smtpUseDefaultCredentials useExtraNetworkSettings && authenticationMethod Windows || null; var smtpNetworkTargetName useExtraNetworkSettings && authenticationMethod Windows ? dialog.querySelector(.SmtpAuthSPNBox).value.trim() || null : null; var smtpNetworkUserName useExtraNetworkSettings && authenticationMethod Credentials ? dialog.querySelector(.SmtpAuthUsernameBox).value.trim() || null : null; var smtpNetworkPassword useExtraNetworkSettings && authenticationMethod Credentials ? dialog.querySelector(.SmtpAuthPasswordBox).value.trim() || null : null; var resultPanel dialog.querySelector(.ResultPanel); function validateSettings(forSave) { if (smtpDeliveryMethodName Network && useExtraNetworkSettings) { if (!smtpRelayServerHostName) { setDialogErrorProc({message: SC.resExtension.SMTPSettings.EmptyRelayServerBoxErrorText}); return false; } else if (authenticationMethod Credentials) { if (SC.util.isNullOrEmpty(smtpNetworkUserName) || SC.util.isNullOrEmpty(smtpNetworkPassword)) { setDialogErrorProc({message: SC.resExtension.SMTPSettings.MissingCredentialsErrorText}); return false; } if (smtpNetworkPassword ! dialog.querySelector(.SmtpAuthConfirmPasswordBox).value.trim()) { setDialogErrorProc({message: SC.resExtension.SMTPSettings.PasswordMismatchErrorText}); return false; } } } else if (smtpDeliveryMethodName SpecifiedPickupDirectory) { if (SC.util.isNullOrEmpty(smtpPickupDirectoryLocation)) { setDialogErrorProc({message: SC.resExtension.SMTPSettings.EmptyPickupDirectoryBoxErrorText}); return false; } } return true; } switch (dialogEventArgs.commandName) { case Default: if (validateSettings(true)) SC.service.SaveAdvancedMailConfiguration( defaultMailFromAddress, defaultMailToAddress, smtpRelayServerHostName, smtpRelayServerPort, enableSSL, smtpDeliveryMethodName, smtpPickupDirectoryLocation, smtpUseDefaultCredentials, smtpNetworkTargetName, smtpNetworkUserName, smtpNetworkPassword, function () { SC.dialog.showModalActivityAndReload(Save, true, window.location.href); }, setDialogErrorProc ); break; case SendAdvancedTestEmail: if (validateSettings(false)) { SC.service.SendAdvancedTestEmail( defaultMailFromAddress, smtpRelayServerHostName, defaultMailToAddress, smtpDeliveryMethodName, smtpPickupDirectoryLocation, smtpRelayServerPort, enableSSL, smtpUseDefaultCredentials, smtpNetworkTargetName, smtpNetworkUserName, smtpNetworkPassword, function () { SC.css.ensureClass(resultPanel, Success, true); SC.css.ensureClass(resultPanel, Failure, false); SC.ui.setContents(resultPanel, SC.resCommand.SendEmail.SuccessMessage); setTimeout(function () { SC.css.ensureClass(resultPanel, Success, false); }, 3000); }, function (error) { SC.css.ensureClass(resultPanel, Failure, true); SC.css.ensureClass(resultPanel, Success, false); SC.ui.setContents(resultPanel, error.message); setTimeout(function () { SC.css.ensureClass(resultPanel, Failure, false); }, 30000); } ); } break; } }, }); }});SC.event.addGlobalHandler(SC.event.PreRender, function (eventArgs) { if (SC.context.pageType AdministrationPage && SC.context.tabKeysSC.context.tabIndex Mail) SC.util.includeStyleSheet(extensionContext.baseUrl + AdvancedMailStyle.css);});});/script>script>SC.extension.addInitializeProc(07979477-b058-44c4-9829-035b041eeb01, function (extensionContext) {SC.event.addGlobalHandler(SC.event.PreRender, function (eventArgs) { if (SC.context.pageType HostPage || SC.context.pageType AdministrationPage) SC.util.includeStyleSheet(extensionContext.baseUrl + CommandToolboxStyle.css);});SC.event.addGlobalHandler(SC.event.QueryCommandButtons, function (eventArgs) { switch (eventArgs.area) { case HostCommandListMorePopoutPanel: case HostDetailTablePopoutPanel: eventArgs.buttonDefinitions.push({ commandName: OpenCommandToolboxExecutionModal, text: SC.resCommandToolbox.DetailPopout.Modal }); break; case UpdateCommand: eventArgs.buttonDefinitions.push({ commandName: UpdateToolboxCommand, text: SC.resCommandToolbox.Modal.UpdateButtonText, commandArgument: eventArgs.commandContext.commandArgument }); break; }});SC.event.addGlobalHandler(SC.event.QueryCommandButtonState, function (eventArgs) { switch (eventArgs.commandName) { case OpenCommandToolboxExecutionModal: eventArgs.isEnabled SC.context.canRunCommand; break; case UpdateToolboxCommand: eventArgs.isEnabled SC.context.canAdminister; break; }});SC.event.addGlobalHandler(SC.event.ExecuteCommand, function (eventArgs) { switch (eventArgs.commandName) { case OpenCommandToolboxExecutionModal: let commandBodyBox, commandSelector, commandNameBox, commandDescriptionBox, commandIncludedBox; SC.service.GetCommandConfigInfo(config > { SC.dialog.showModalButtonDialog( CommandToolbox, SC.resCommandToolbox.Modal.Title, SC.resCommandToolbox.Modal.RunCommand, Default, function (container) { if (config.Commands.length ! 0) { SC.ui.addContent(container, $dl( $dt({_textResource: CommandToolbox.Modal.Instruction}), $dd(commandSelector $select({}, config.Commands.map(c > { return $option({ text: c.Name, value: c.Data, _dataItem: { description: c.Description, isIncluded: c.ShouldIncludeInToolbox } }); }))), $dt({ _textResource: CommandToolbox.CreateModal.NameLabelText }), $dd(commandNameBox $input({ type: text, value: commandSelector.optionscommandSelector.selectedIndex.text })), $dt({ _textResource: CommandToolbox.CreateModal.DescriptionLabelText }), $dd(commandDescriptionBox $input({ className: CommandDescriptionTextInput, type: text, value: SC.command.getDataItem(commandSelector.optionscommandSelector.selectedIndex).description })), $dt({ _textResource: CommandToolbox.CreateModal.DataLabelText }), $dd(commandBodyBox $textarea({ className: CommandDataTextArea, value: commandSelector.optionscommandSelector.selectedIndex.value })), $dt(), $dd(commandIncludedBox $input({ className: CommandIncludedCheckBox, type: checkbox, checked: SC.command.getDataItem(commandSelector.optionscommandSelector.selectedIndex).isIncluded })), $dt(), $dd(SC.command.queryAndCreateCommandButtons(UpdateCommand, { commandArgument: commandNameBox.value })), $dt(), $dd({ className: UpdateCommandStatus }) ), ); SC.command.updateCommandButtonsState(container); commandSelector.onchange function () { commandBodyBox.value commandSelector.optionscommandSelector.selectedIndex.value; commandDescriptionBox.value SC.command.getDataItem(commandSelector.optionscommandSelector.selectedIndex).description; commandNameBox.value commandSelector.optionscommandSelector.selectedIndex.text; commandIncludedBox.checked SC.command.getDataItem(commandSelector.optionscommandSelector.selectedIndex).isIncluded; } } else SC.ui.addContent(container, $div({ className: CommandToolboxModalEmptyStateContainer }, $h2({ _textResource: CommandToolbox.Modal.EmptyStateTitleText}), $p({ _textResource: CommandToolbox.Modal.EmptyStateText}), ), ); }, function (eventArgs) { switch (eventArgs.commandName) { case UpdateToolboxCommand: $(.UpdateCommandStatus).innerText SC.resCommandToolbox.Modal.UpdateCommandSavingText; SC.service.SaveCommandToolboxCommand( commandSelector.optionscommandSelector.selectedIndex.text, commandNameBox.value, commandDescriptionBox.value, commandBodyBox.value, commandIncludedBox.checked, function (response) { SC.pagedata.notifyDirty(); SC.css.ensureClass($(.UpdateCommandStatus), UpdateCommandStatusSuccess, true); $(.UpdateCommandStatus).innerText SC.resCommandToolbox.Modal.UpdateCommandStatusSaved.Text; } ); break; case Default: let allRows ; if ($(.DetailTable) null) allRows $(detailTable).rows; else allRows $(.DetailTable).rows; let commandRows Array.prototype.filter.call(allRows, function (r) { return SC.ui.isChecked(r) || SC.ui.isSelected(r); }); let sessions Array.prototype.map.call(commandRows, function (r) { return r._dataItem; }); let sessionIDs Array.prototype.map.call(sessions, function (s) { return s.SessionID; }); window.addEventToSessions( window.getSessionGroupUrlPart()0, SC.types.SessionType.Access, sessionIDs, SC.types.SessionEventType.QueuedCommand, null, commandBodyBox.value, false, false, true ); SC.dialog.hideModalDialog(); break; } } ); }); break; }});});/script>script>SC.extension.addInitializeProc(a7b5a8f2-9fd0-489c-89d0-3c1888fde971, function (extensionContext) {SC.event.addGlobalHandler(SC.event.PreRender, function (eventArgs) { if (SC.context.pageType HostPage) { SC.util.includeStyleSheet(extensionContext.baseUrl + DiagnosticsNewStyle.css); }});function getValidEventLogCount() { var tempValue extensionContext.settingValues.EventLogRequestCount; if ((tempValue > 0) && (tempValue 100)) return tempValue; else return 10;}SC.event.addGlobalHandler(SC.event.QueryCommandButtons, function (eventArgs) { switch (eventArgs.area) { case HostDetailTabList: eventArgs.buttonDefinitions.push( { commandName: Select, commandArgument: Processes, text: SC.resDiagnostics.ProcessTab.Label, imageUrl: extensionContext.baseUrl + Images/Processes.png }, { commandName: Select, commandArgument: Software, text: SC.resDiagnostics.SoftwareTab.Label, imageUrl: extensionContext.baseUrl + Images/Software.png }, { commandName: Select, commandArgument: EventLog, text: SC.resDiagnostics.EventLogTab.Label, imageUrl: extensionContext.baseUrl + Images/EventLog.png }, { commandName: Select, commandArgument: Services, text: SC.resDiagnostics.ServicesTab.Label, imageUrl: extensionContext.baseUrl + Images/Services.png } ); break; case ProcessesButtons: eventArgs.buttonDefinitions.push({ commandName: GetInfo, commandArgument: Processes, text: SC.resDiagnostics.ProcessTab.Button }); break; case SoftwareButtons: eventArgs.buttonDefinitions.push({ commandName: GetInfo, commandArgument: Software, text: SC.resDiagnostics.SoftwareTab.Button }); break; case EventLogButtons: eventArgs.buttonDefinitions.push({ commandName: GetInfo, commandArgument: EventLog, text: SC.resDiagnostics.EventLogTab.Button }); break; case ServicesButtons: eventArgs.buttonDefinitions.push({ commandName: GetInfo, commandArgument: Services, text: SC.resDiagnostics.ServicesTab.Button }); break; }});SC.event.addGlobalHandler(SC.event.InitializeTab, function (eventArgs) { if (isMyTab(eventArgs.tabName)) { SC.command.queryAndAddCommandButtons(eventArgs.container, eventArgs.tabName + Buttons); SC.ui.addElement(eventArgs.container, DIV, {id: lastUpdateContainer}); SC.ui.addElement(eventArgs.container, DIV, {id: dataContainer}); var filterContainer $div({className: filterContainer}); var filterInput $input({className: EventLogFilterInput, type: TEXT}); var filterLabel $span({innerHTML: SC.resDiagnostics.Filter.Label}); filterInput.onkeyup function (value) { ProcessFilterInput(filterInput.value); } SC.ui.addContent(filterContainer, filterLabel); SC.ui.addContent(filterContainer, filterInput); SC.ui.addContent(eventArgs.container, filterContainer); SC.ui.addElement(eventArgs.container, TABLE, {id: dataTable}); }});SC.event.addGlobalHandler(SC.event.RefreshTab, function (eventArgs) { if (isMyTab(eventArgs.tabName)) { SC.ui.clear($(dataContainer)); SC.ui.clear($(lastUpdateContainer)); SC.ui.clear($(dataTable)); SC.ui.findDescendent( eventArgs.container, function (e) { return e._commandName GetInfo; } )._commandArgument { type: eventArgs.tabName, operatingSystemName: eventArgs.session.GuestOperatingSystemName }; displayDiagnosticInformation( getLatestDiagnosticEvent( eventArgs.sessionDetails, eventArgs.tabName ), eventArgs.sessionDetails.BaseTime ); }});SC.event.addGlobalHandler(SC.event.ExecuteCommand, function (eventArgs) { switch (eventArgs.commandName) { case GetInfo: window.addEventToSessions( window.getSessionGroupUrlPart()0, SC.types.SessionType.Access, window.getSessionUrlPart(), SC.types.SessionEventType.QueuedCommand, null, getInputCommand( eventArgs.commandArgument.type, eventArgs.commandArgument.operatingSystemName ), false, false, true ); break; }});function ProcessFilterInput(value) { var dataTable document.getElementById(dataTable); for (var i dataTable.getElementsByTagName(th).length; i dataTable.children.length; i++) { var element dataTable.childreni; //IE/opera dont support .includes() //if(!element.innerHTML.toUpperCase().includes(value.toUpperCase())) if (element.innerHTML.toUpperCase().search(value.toUpperCase()) -1) element.style.display none; else element.style.display ; }}function getInputCommand(diagnosticType, operatingSystem) { var headers getHeaders(operatingSystem); headers.DiagnosticType diagnosticType; var commandText getDiagnosticCommandText(headers); var emptyLinePrefix ; if (headers.Processor sh) emptyLinePrefix echo ; else { emptyLinePrefix echo ; commandText $Host.UI.RawUI.BufferSize New-Object Management.Automation.Host.Size (500, 25) + \n + commandText; } return #! + headers.shaBang + \n + #maxlength50000000 + \n + #timeout90000 + \n + headers.modifier + DIAGNOSTIC-RESPONSE/1 + headers.delimiter + \n + headers.modifier + DiagnosticType: + headers.DiagnosticType + headers.delimiter + \n + headers.modifier + ContentType: + headers.ContentType + headers.delimiter + \n + emptyLinePrefix + \n + commandText;}function getHeaders(operatingSystem) { if (operatingSystem.indexOf(Windows) > 0 || operatingSystem.indexOf(Server) > 0) return { Processor: ps, Interface: powershell, ContentType: xml, shaBang: ps, modifier: echo \, delimiter: \ }; else if (operatingSystem.indexOf(Linux) > 0) return { Processor: sh, Interface: linux, ContentType: text, shaBang: sh, modifier: echo , delimiter: }; else if (operatingSystem.indexOf(Mac) > 0) return { Processor: sh, Interface: osx, ContentType: text, shaBang: sh, modifier: echo , delimiter: };}function isMyTab(tabName) { switch (tabName) { case Processes: case Software: case EventLog: case Services: return true; default: return false; }}function isDiagnosticContent(eventData) { return (eventData.startsWith(DIAGNOSTIC-RESPONSE/1) || eventData.startsWith(\ufeffDIAGNOSTIC-RESPONSE/1) ? true : false);}function getLatestDiagnosticEvent(sessionDetails, diagnosticEventType) { var versionParts SC.context.productVersion.split(.); if (versionParts && versionParts.length > 1 && SC.util.isVersion({major: 22, minor: 9}, null, {major: versionParts0, minor: versionParts1})) { return sessionDetails.Events .filter(function (e) { return e.EventType SC.types.SessionEventType.RanCommand && isDiagnosticContent(e.Data) && parseDataHeaders(e.Data).DiagnosticType.trim() diagnosticEventType; }) .sort(function (x, y) { return x.Time - y.Time; }) 0; } else { return sessionDetails.Connections .map(function (c) { return c.Events; }) .reduce(function (outputArray, events) { Array.prototype.push.apply(outputArray, events); return outputArray; }, ) .filter(function (e) { return e.EventType SC.types.SessionEventType.RanCommand && isDiagnosticContent(e.Data) && parseDataHeaders(e.Data).DiagnosticType.trim() diagnosticEventType; }) .sort(function (x, y) { return x.Time - y.Time; }) 0; }}function parseDataHeaders(eventData) { var currentIndex 0; var headers {}; var isStatusLine true; while (true) { var nextNewLineIndex eventData.indexOf(\n, currentIndex); if (isStatusLine) { isStatusLine false; } else if (nextNewLineIndex currentIndex + 2 || nextNewLineIndex 0) { break; } else { var lineParts eventData.substring(currentIndex, nextNewLineIndex).split(: ); headerslineParts0 lineParts1; } currentIndex nextNewLineIndex + 1; } return headers;}function displayDiagnosticInformation(latestDiagnosticEvent, baseTime) { if (latestDiagnosticEvent ! null) { var headers parseDataHeaders(latestDiagnosticEvent.Data); if (headers.ContentType.trim() xml) displayDataXml(getEventDataXml(latestDiagnosticEvent.Data)); else displayDataText(getEventDataText(latestDiagnosticEvent.Data)); $(lastUpdateContainer).innerHTML SC.resDiagnostics.LastUpdateField.Label + new Date(latestDiagnosticEvent.Time + baseTime); }}function getEventDataXml(eventData) { return parseXml(eventData.substring(eventData.indexOf(?xml), eventData.length));}function displayDataXml(xml) { var x xml.getElementsByTagName(Object); var iterationLength 0; try { iterationLength x0.children.length; } catch (error) { iterationLength x0.childNodes.length; } //because IE/Edge are dumb if (isUsingInternetExplorerOrEdge()) { for (j 0; j iterationLength; j++) { var child x0.childNodesj; if (child.nodeType ! 1) continue; SC.ui.addElement($(dataTable), th, { id: dataTableHeader, innerHTML: x0.childNodesj.attributes.Name.nodeValue }); } for (i 0; i x.length; i++) { SC.ui.addElement($(dataTable), tr, {id: dataRow + i}); for (j 0; j xi.childNodes.length; j++) { var childX xi.childNodesj; if (childX.nodeType ! 1) continue; SC.ui.addElement($(dataRow + i), td, { id: dataTableData, innerHTML: xi.childNodesj.textContent }); } } } else { for (j 0; j x0.children.length; j++) { SC.ui.addElement($(dataTable), th, { id: dataTableHeader, innerHTML: x0.childrenj.attributes.Name.nodeValue }); } for (i 0; i x.length; i++) { SC.ui.addElement($(dataTable), tr, {id: dataRow + i}); for (j 0; j xi.children.length; j++) { SC.ui.addElement($(dataRow + i), td, {id: dataTableData, innerHTML: xi.childrenj.innerHTML}); } } }}function getEventDataText(eventData) { return parseText( eventData .split(\n) .splice(3, eventData.length) .join(\n) );}function displayDataText(eventData) { for (var category in eventData0) { SC.ui.addElement($(dataTable), th, {id: dataTableHeader, innerHTML: category}); } for (var i 0; i eventData.length; i++) { SC.ui.addElement($(dataTable), tr, {id: dataRow + i}); for (var item in eventDatai) { SC.ui.addElement($(dataRow + i), td, {id: dataTableData, innerHTML: eventDataiitem}); } }}function parseXml(xml) { var dom null; if (window.DOMParser) { try { dom (new DOMParser()).parseFromString(xml, text/xml); } catch (e) { dom null; } } else if (window.ActiveXObject) { try { dom new ActiveXObject(Microsoft.XMLDOM); dom.async false; if (!dom.loadXML(xml)) // parse error .. window.alert(dom.parseError.reason + dom.parseError.srcText); } catch (e) { dom null; } } else alert(cannot parse xml string!); return dom;}function parseText(data) { var lines data.split(\n); var result ; var headers lines1.split(,); for (var i 3; i lines.length; i++) { var obj {}; var currentline linesi.split(,); for (var j 0; j headers.length; j++) { objheadersj currentlinej; } result.push(obj); } return result;}function isUsingInternetExplorerOrEdge() { var ua window.navigator.userAgent; var msie ua.indexOf(Trident); if (ua.indexOf(Trident) > 0 || ua.indexOf(Edge) > 0) return true; else return false;}//ripped directly from http://stackoverflow.com/questions/6108819/javascript-timestamp-to-relative-time-eg-2-seconds-ago-one-week-ago-etc-bestfunction timeDifference(current, previous) { var msPerMinute 60 * 1000; var msPerHour msPerMinute * 60; var msPerDay msPerHour * 24; var msPerMonth msPerDay * 30; var msPerYear msPerDay * 365; var elapsed current - previous; if (elapsed msPerMinute) return Math.abs(Math.round(elapsed / 1000)) + seconds ago; else if (elapsed msPerHour) return Math.round(elapsed / msPerMinute) + minutes ago; else if (elapsed msPerDay) return Math.round(elapsed / msPerHour) + hours ago; else if (elapsed msPerMonth) return approximately + Math.round(elapsed / msPerDay) + days ago; else if (elapsed msPerYear) return approximately + Math.round(elapsed / msPerMonth) + months ago; else return approximately + Math.round(elapsed / msPerYear) + years ago;}function getDiagnosticCommandText(headers) { switch (headers.Processor + / + headers.Interface + / + headers.ContentType + / + headers.DiagnosticType) { case ps/powershell/xml/Processes: return Get-Process | select ProcessName, Id, NPM, PM, WS, VM | Sort ProcessName | ConvertTo-Xml -As Stream; case ps/powershell/xml/EventLog: return Get-EventLog Application -newest + getValidEventLogCount() + | Select TimeWritten, EntryType, Source, Message | Sort TimeWritten -Descending | ConvertTo-Xml -As Stream; case ps/powershell/xml/Services: return Get-Service | select displayName, Name, Status | Sort DisplayName | ConvertTo-Xml -As Stream; case ps/powershell/xml/Software: return $registryPath if (Environment::Is64BitOperatingSystem) { HKLM:\\Software\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*, HKLM:\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\* } else { HKLM:\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\* } Get-ItemProperty -Path $registryPath | Select @{NIdentifyingNumber;E{$_.PSChildName}}, @{NName;E{$_.DisplayName}}, @{NVendor;E{$_.Publisher}}, @{NVersion;E{$_.DisplayVersion}} | Where-Object{!string::IsNullOrEmpty($_.Name)} | Sort Name | ConvertTo-Xml -As Stream; case sh/linux/text/Processes: return ps -eo \%U,%p,%x,%C,%c\; case sh/linux/text/EventLog: return echo + headers.DiagnosticType + ; dmesg -T | tail - + getValidEventLogCount(); case sh/linux/text/Services: return echo + headers.DiagnosticType + ; ls /etc/init.d; case sh/linux/text/Software: return echo + headers.DiagnosticType + ; dpkg --get-selections; case sh/osx/text/Processes: return ps -eo \pid,%cpu,command\; case sh/osx/text/EventLog: return echo + headers.DiagnosticType + ; syslog -C; case sh/osx/text/Services: return echo + headers.DiagnosticType + ; launchctl list; case sh/osx/text/Software: return echo + headers.DiagnosticType + ; ls /Applications; default: throw unknown os; }}});/script>title> SC Panel/title>/head>body> div classHiddenPanel>/div> script> SC.ui.setVisible(document.body, false); /script> div classOuterPanel> div classHeaderPanel>/div> div classNavigationPanel ArrowNavigation tabindex10>/div> div classMainPanel> div classContentPanel> div> div classWelcomePanel>/div> div classActionPanel>/div> /div> div classInfoPanel>/div> /div> /div> /div> script> SC.context.scriptBaseUrl SC.util.getBaseUrl($(defaultScript).src); /script> script> SC.event.addGlobalHandler(SC.event.ExecuteCommand, function (eventArgs) { var session null; var hostAccessToken null; switch (eventArgs.commandName) { case JoinBySessionID: session window.getSessionInfo().Sessions.filter(function (s) { return s.SessionID eventArgs.commandArgument; })0; break; case JoinByTag: var taggedSessionInfo window.getTaggedSessionInfo(eventArgs.commandArgument); hostAccessToken taggedSessionInfo.HostAccessToken; session window.getSessionInfo().Sessions.filter(function (s) { return s.SessionID taggedSessionInfo.SessionID || (taggedSessionInfo.Code && s.Code.toLowerCase() taggedSessionInfo.Code.toLowerCase()); })0; break; } // older IE only allows launching urls on actual clicks and this could be sent by a keystroke if (session && (SC.command.doesClickDispatch(eventArgs.commandElement) || !SC.util.isCapable(SC.util.Caps.InternetExplorer, null, { major: 11 }))) { SC.launch.startJoinSession( { session: session, hostAccessToken: hostAccessToken, processType: hostAccessToken ? SC.types.ProcessType.Host : SC.types.ProcessType.Guest }, function (joinInfo, _, onSuccess, onFailure) { onSuccess( SC.util.getClientLaunchParameters( joinInfo.session.SessionID, joinInfo.session.SessionType, joinInfo.session.Name, joinInfo.fieldMap.participantName.value, null, joinInfo.hostAccessToken, joinInfo.processType ) ); } ); } }); SC.event.addGlobalHandler(SC.event.QueryJoinInfo, function (eventArgs) { if (eventArgs.session) { eventArgs.shouldShowPrompt SC.util.getSessionTypeBooleanResource(JoinPanel.{0}PromptVisible, eventArgs.session.SessionType); eventArgs.promptText SC.util.getSessionTypeResource(JoinPanel.{0}PromptMessage, eventArgs.session.SessionType); eventArgs.buttonText SC.util.getSessionTypeResource(JoinPanel.{0}PromptButtonText, eventArgs.session.SessionType); eventArgs.fieldMap.participantName { labelText: SC.util.getSessionTypeResource(JoinPanel.{0}ParticipantNameLabelText, eventArgs.session.SessionType), value: , visible: SC.util.getSessionTypeBooleanResource(JoinPanel.{0}PromptParticipantNameVisible, eventArgs.session.SessionType), }; } }); SC.event.addGlobalHandler(SC.event.QueryParticipantJoinedCount, function (eventArgs) { var sessionInfo window.getSessionInfo(); var session sessionInfo.Sessions.find(function (s) { return s.SessionID eventArgs.clientLaunchParameters.s; }); if (session ! undefined) eventArgs.participantJoinedCount session.ActiveConnections.filter(function (ac) { if (eventArgs.clientLaunchParameters.n) return ac.ProcessType SC.types.ProcessType.Host; return ac.ProcessType SC.types.ProcessType.Guest && ac.ParticipantName eventArgs.clientLaunchParameters.r; }).length; }); SC.event.addGlobalHandler(SC.event.QueryPanels, function (eventArgs) { switch (eventArgs.area) { case GuestActionPanel: eventArgs.panelDefinitions.push({ initProc: function (container) { SC.ui.setContents(container, $div({ className: Loading })); }, isVisibleProc: function (pass, previousPassVisibleCount, sessionInfo) { return pass 1 && sessionInfo null; } }); eventArgs.panelDefinitions.push({ initProc: function (container) { SC.ui.setContents(container, $a({ _commandName: JoinByTag, _commandArgument: DefaultSession, className: GoLink Large, _attributeMap: { aria-label: SC.resGuestActionPanel.ButtonDescription } }), $h2({ _htmlResource: GuestActionPanel.InvitationSession.Heading }), $p({ _htmlResource: GuestActionPanel.InvitationSession.Message }), ); }, isVisibleProc: function (pass, previousPassVisibleCount, sessionInfo) { return pass 3 && previousPassVisibleCount 0 && sessionInfo ! null && sessionInfo.Sessions.find(function (s) { return s.SessionID window.getTaggedSessionInfo(DefaultSession).SessionID; }); } }); eventArgs.panelDefinitions.push({ initProc: function (container) { SC.ui.setContents(container, $h2({ _htmlResource: GuestActionPanel.CodeSession.Heading }), $p({ _htmlResource: GuestActionPanel.CodeSession.Message }), $p({ className: GuestActionBar }, SC.ui.createSearchTextBox({ _commandName: JoinByTag, _commandArgument: DefaultCode, value: window.getTaggedSessionInfo(DefaultCode).Code || }, function (eventArgs) { var sessionCode SC.util.getTrimmedOrNull(SC.event.getElement(eventArgs).value); window.setTaggedSessionInfo(DefaultCode, { Code: sessionCode }); }), $a({ _commandName: JoinByTag, _commandArgument: DefaultCode, className: GoLink Medium, _attributeMap: { aria-label: SC.resGuestActionPanel.ButtonDescription } }), ), ); }, isVisibleProc: function (pass, previousPassVisibleCount, sessionInfo) { return pass 5 && previousPassVisibleCount 0 && sessionInfo ! null && sessionInfo.DoNonPublicCodeSessionsExist; }, refreshProc: function (container, sessionInfo, wasMadeVisible) { var taggedSessionInfo window.getTaggedSessionInfo(DefaultCode); SC.ui.setDisabled( SC.ui.findDescendentByTag(container, A), !sessionInfo.Sessions.find(function (s) { return taggedSessionInfo.Code && s.Code.toLowerCase() taggedSessionInfo.Code.toLowerCase(); }) ); if (wasMadeVisible) SC.ui.findDescendentByTag(container, INPUT).focus(); } }); eventArgs.panelDefinitions.push({ initProc: function (container) { SC.ui.setContents(container, $h2({ _htmlResource: GuestActionPanel.PublicSession.Heading }), $p({ _htmlResource: GuestActionPanel.PublicSession.Message }), $p({ className: GuestActionBar }, $select(), $a({ _commandName: JoinBySessionID, className: GoLink Medium, _attributeMap: { aria-label: SC.resGuestActionPanel.ButtonDescription } }), ), ); SC.event.addHandler(SC.ui.findDescendentByTag(container, SELECT), change, function (eventArgs) { var selectBox SC.event.getElement(eventArgs); SC.ui.findDescendentByTag(container, A)._commandArgument selectBox.optionsselectBox.selectedIndex.value; }); }, isVisibleProc: function (pass, previousPassVisibleCount, sessionInfo) { return pass 5 && previousPassVisibleCount 0 && sessionInfo ! null && sessionInfo.Sessions.filter(function (s) { return s.IsPublic; }).length > 0; }, refreshProc: function (container, sessionInfo, wasMadeVisible) { var selectBox SC.ui.findDescendentByTag(container, SELECT); var link SC.ui.findDescendentByTag(container, A); SC.ui.setContents(selectBox, sessionInfo.Sessions.filter(function (s) { return s.IsPublic; }).map(function (s) { return $option({ value: s.SessionID }, s.Name); }) ); var optionIndex Array.prototype.findIndex.call(selectBox.options, function (o) { return o.value link._commandArgument; }); if (optionIndex ! -1) selectBox.selectedIndex optionIndex; else link._commandArgument selectBox.optionsselectBox.selectedIndex.value; } }); eventArgs.panelDefinitions.push({ initProc: function (container) { SC.ui.setContents(container, $h2({ _htmlResource: GuestActionPanel.NoAvailableSessions.Heading }), $p({ _htmlResource: GuestActionPanel.NoAvailableSessions.Message }), ); }, isVisibleProc: function (pass, previousPassVisibleCount, sessionInfo) { return pass 8 && previousPassVisibleCount 0; } }); break; } }); SC.event.addGlobalHandler(SC.event.QueryLiveData, function (eventArgs) { var getTaggedValuesFunc function (propertyName) { return Object.keys(window._taggedSessionInfos) .map(function (key) { return window._taggedSessionInfoskey; }) .filter(function (_) { return _propertyName; }) .map(function (_) { return _propertyName; }); } eventArgs.requestInfoMapGuestSessionInfo { sessionCodes: getTaggedValuesFunc(Code), sessionIDs: getTaggedValuesFunc(SessionID), }; }); SC.event.addGlobalHandler(SC.event.PreRender, function () { window._taggedSessionInfos {}; SC.css.ensureClass(document.documentElement, ShowMenu, false); var queryStringMap SC.util.parseQueryString(window.location.search); window.setTaggedSessionInfo(DefaultCode, { Code: queryStringMap.Code }); window.setTaggedSessionInfo(DefaultSession, { SessionID: queryStringMap.Session, HostAccessToken: queryStringMap.HostAccessToken }); var welcomePanel $(.WelcomePanel); var actionPanel $(.ActionPanel); SC.ui.setVisible(welcomePanel, SC.util.getBooleanResource(GuestWelcomePanel.Visible)); SC.ui.setContents(welcomePanel, $h2({ _htmlResource: GuestWelcomePanel.Heading }), $p({ _htmlResource: GuestWelcomePanel.Message }), ); SC.panellist.queryAndInitializePanels(actionPanel); SC.panellist.refreshPanels(actionPanel, null); }); SC.event.addGlobalHandler(SC.event.LiveDataRefreshed, function () { SC.panellist.refreshPanels($(.ActionPanel), window.getSessionInfo()); if (!window._hasJoinedDefault && !SC.util.isCapable(SC.util.Caps.InternetExplorer, null, { major: 11 })) { SC.command.dispatchExecuteCommand(window.document.body, window.document.body, window.document.body, JoinByTag, DefaultSession); window._hasJoinedDefault true; } }); /script> script> SC.event.addGlobalHandler(SC.event.QueryCommandButtons, function (eventArgs) { switch (eventArgs.area) { case TrayIconPanel: eventArgs.buttonDefinitions.push( { commandName: ActionCenter, imageUrl: Images/ActionCenter.svg }, { commandName: Extras, imageUrl: Images/Extras.svg }, { commandName: Applications, imageUrl: Images/Applications.svg } ); break; case ExtrasNavigationPopoutPanel: eventArgs.buttonDefinitions.push( { commandName: NavigateExtensionBrowser } ); break; case ToolsPanel: eventArgs.buttonDefinitions.push( { commandName: Extras, imageUrl: Images/Extras.svg }, { commandName: Login } ); break; case UserPopoutPanel: eventArgs.buttonDefinitions.push( { commandName: NavigateControlPanel }, { commandName: ChangePassword }, { commandName: Logout } ); break; case UserHelpPopoutPanel: if (SC.context.pageType ! GuestPage && SC.context.pageType ! LoginPage) { eventArgs.buttonDefinitions.push({ commandName: GiveFeedback }); for (var i 1; ; i++) { var resourceValue SC.resHelpPanel.Link + i + .Text; if (resourceValue undefined || resourceValue ) break; var url SC.util.sanitizeUrl(SC.resHelpPanel.Link + i + .Url); eventArgs.buttonDefinitions.push({ commandName: NavigateHelpLink, commandArgument: url, text: resourceValue, title: url }); } } break; } }); SC.event.addGlobalHandler(SC.event.QueryCommandButtonState, function (eventArgs) { switch (eventArgs.commandName) { case User: case ActionCenter: eventArgs.isVisible SC.context.isUserAuthenticated; break; case Login: eventArgs.isVisible SC.context.pageType ! SetupWizardPage && !SC.context.isUserAuthenticated && !SC.util.isCapable(SC.util.Caps.InternetExplorer, null, { major: 12 }); // Login page doesnt support IE break; case NavigateControlPanel: eventArgs.isVisible !!SC.context.controlPanelUrl; break; case ChangePassword: eventArgs.isVisible SC.context.canChangePassword; break; case Extras: eventArgs.isVisible SC.popout.computePopoutCommandsVisible(eventArgs, , Navigation); break; case Applications: case Help: eventArgs.isVisible SC.popout.computePopoutCommandsVisible(eventArgs); break; case NavigateExtensionBrowser: eventArgs.isVisible SC.context.isUserAdministrator; break; } }); SC.event.addGlobalHandler(SC.event.ExecuteCommand, function (eventArgs) { switch (eventArgs.commandName) { case Extras: SC.popout.showPanelFromCommand(eventArgs, null, { subAreas: , Navigation }); break; case Applications: SC.popout.showPanelFromCommand(eventArgs); break; case ActionCenter: SC.popout.showPanelFromCommand(eventArgs, null, { buildProc: function (popoutPanel) { var actionCenterInfo SC.livedata.getResponseInfo(SC.livedata.ActionCenterInfo); SC.ui.setContents(popoutPanel, $div({ className: ActionCenterPanel }, $h2({ _textResource: ActionCenterPanel.Text }), $ul({ className: List, _visible: SC.util.any(actionCenterInfo.ActionItems) }, (actionCenterInfo.ActionItems || ) .map(function (it) { var parsedEventData SC.util.parseEventData(it.Data); return $li({ _eventHandlerMap: { click: function () { window.location.href SC.nav.getHostUrl({ sessionType: it.SessionType, sessionID: it.SessionID, tabName: SC.nav.getHostTabName(it.EventType), tabContext: it.EventID }); }, } }, $img({ src: Images/Notification + SC.util.getEnumValueName(SC.types.SessionEventType, it.EventType) + .svg }), $h3({ className: Type }, SC.resSessionEvent. + SC.util.getEnumValueName(SC.types.SessionEventType, it.EventType) + .Title), $p({ className: Name, title: it.Name }, it.Name), $p({ className: DataContent, title: parsedEventData.content }, parsedEventData.content), $p({ className: Time }, SC.util.formatDateTime(it.Time, { includeRelativeDate: true })), ) }) ), $div({ className: EmptyPanel, _visible: !SC.util.any(actionCenterInfo.ActionItems) }, $p($img({ src: images/EmptyActionCenter.svg })), $h4({ _textResource: ActionCenterPanel.EmptyHeader }), $p({ _textResource: ActionCenterPanel.EmptyText }), ), )); }, }); break; case Login: SC.util.sendToLogin(SC.types.LoginReason.None, false); break; case Logout: SC.util.sendToLogin(SC.types.LoginReason.Logout, false); break; case User: SC.popout.showPanelFromCommand(eventArgs, null, { subAreas: Help, }); break; case NavigateControlPanel: window.open(SC.util.sanitizeUrl(SC.context.controlPanelUrl)); break; case ChangePassword: var params {}; paramsSC.context.loginUserNameParameterName eventArgs.commandArgument; window.location.href SC.context.changePasswordPageUrl + SC.util.getQueryString(params); break; case NavigateHelpLink: window.open(eventArgs.commandArgument); break; case ToggleMenu: SC.css.toggleClass(document.documentElement, ShowMenu); break; case GiveFeedback: SC.dialog.showModalButtonDialog( GiveFeedback, SC.resCommand.GiveFeedback.Text, SC.resCommand.GiveFeedback.ButtonText, Default, function (container) { SC.ui.setContents(container, $div({ _textResource: GiveFeedbackPanel.ReviewLabelText }), $div({ className: RatingSelectionPanel }, Good, Neutral, Bad.map(function (rating) { return $span( $label({ className: rating }, $input({ type: radio, name: rating, value: rating.toLowerCase() }), $div({ className: RadioImage }), $span({ _textResource: GiveFeedbackPanel. + rating + RatingLabelText }), ) ); }) ), $div( $label({ _textResource: GiveFeedbackPanel.EmailLabelText }, $input({ type: email, id: email }), ), ), $div( $label({ _textResource: GiveFeedbackPanel.CommentsLabelText }, SC.ui.createTextBox({ id: commentsBox }, true), ), ), ); }, function (eventArgs) { SC.service.SendFeedback( Array.prototype.map.call(document.querySelectorAll(inputnamerating:checked), function (e) { return e.value; })0, $(commentsBox).value, $(email).value, function () { SC.dialog.showModalMessageBox( SC.resGiveFeedbackPanel.SuccessHeading, SC.resGiveFeedbackPanel.SuccessMessage ); } ); } ); break; case ManageToolbox: SC.toolbox.showToolboxDialog(eventArgs.commandName, eventArgs.commandArgument); break; case Navigate: window.location.href eventArgs.commandArgument; break; case NavigateExtensionBrowser: window.location.href SC.context.administrationPageUrl + ?TabExtensions#ShowExtensionBrowser; break; } }); SC.event.addGlobalHandler(SC.event.QueryNavigationLinks, function (eventArgs) { Array.prototype.push.apply(eventArgs.navigationLinks, SC.context.sessionTypeInfos.map(function (_) { return { href: SC.context.scriptBaseUrl + SC.context.hostPageUrl + # + SC.util.getEnumValueName(SC.types.SessionType, _.sessionType), text: SC.util.getSessionTypeResource(NavigationPanel.{0}LinkText, _.sessionType), imageUrl: SC.util.formatString(Images/Navigation{0}.svg, SC.util.getEnumValueName(SC.types.SessionType, _.sessionType)), sessionType: _.sessionType, } })); if (SC.context.isUserAdministrator) eventArgs.navigationLinks.push({ href: SC.context.scriptBaseUrl + SC.context.administrationPageUrl, text: SC.resNavigationPanel.AdministrationLinkText, imageUrl: Images/NavigationAdministration.svg, }); }); SC.event.addGlobalHandler(SC.event.QueryLiveData, function (eventArgs) { if (SC.context.isUserAuthenticated) SC.livedata.setRequestInfo(eventArgs, SC.livedata.ActionCenterInfo); }); SC.event.addGlobalHandler(SC.event.LiveDataRefreshed, function () { SC.css.ensureClass($(.NavigationPanel .TrayIconPanel .ActionCenter), NonEmpty, SC.util.any(SC.livedata.getResponseInfo(SC.livedata.ActionCenterInfo).ActionItems)); }); SC.event.addGlobalHandler(keydown, function (eventArgs) { if (SC.event.doesKeyEventIndicateTextEntryOrArrowKeyNavigation(eventArgs) && (!document.activeElement || SC.ui.isDefinitelyNotTextEntryElement(document.activeElement))) { var arrowKeyInfo SC.event.getArrowKeyInfo(eventArgs); if (arrowKeyInfo && document.activeElement && SC.css.containsClass(document.activeElement, ArrowNavigation)) { eventArgs.preventDefault(); SC.ui.setHiddenFocusAndClearOthers(); var targetPreviousOrNext arrowKeyInfo.isLeft || arrowKeyInfo.isUp; SC.event.dispatchEvent(document.activeElement, SC.event.KeyNavigation, { currentActiveElement: document.activeElement, currentSelectedElement: SC.ui.findDescendantBreadthFirst(document.activeElement, function (_) { return SC.ui.isSelected(_); }, !targetPreviousOrNext), targetPreviousOrNext: targetPreviousOrNext, arrowKeyInfo: arrowKeyInfo, hasShift: eventArgs.shiftKey, }); } else { var queryTextEntryElementArgs SC.event.dispatchGlobalEvent(SC.event.QueryTextEntryElement, { textEntryElement: null, }); if (queryTextEntryElementArgs.textEntryElement) { if (!SC.event.doesKeyEventIndicateTextEntryNavigation(eventArgs)) queryTextEntryElementArgs.textEntryElement.value ; queryTextEntryElementArgs.textEntryElement.focus(); } } } }); SC.event.addGlobalHandler(SC.event.KeyNavigation, function (eventArgs) { // default handling for key navigation var elementToNavigateTo; if (eventArgs.currentSelectedElement) { elementToNavigateTo SC.ui.getPreviousOrNextElementSibling(eventArgs.currentSelectedElement, eventArgs.targetPreviousOrNext) || eventArgs.currentSelectedElement; while (SC.util.isNullOrEmpty(elementToNavigateTo._commandName) && SC.ui.getPreviousOrNextElementSibling(elementToNavigateTo, eventArgs.targetPreviousOrNext)) { elementToNavigateTo SC.ui.getPreviousOrNextElementSibling(elementToNavigateTo, eventArgs.targetPreviousOrNext); } } else { elementToNavigateTo SC.ui.findDescendantBreadthFirst(eventArgs.currentActiveElement, function (_) { return !SC.util.isNullOrEmpty(_._commandName); }); // this can still be empty } SC.util.tryNavigateToElementUsingCommand(elementToNavigateTo, eventArgs.targetPreviousOrNext, eventArgs.hasShift); }); SC.event.addGlobalHandler(SC.event.PreRender, function () { var resetInactivityProc function () { window._lastNotifyActivityTime new Date().getTime(); if (SC.context.isUserAuthenticated && SC.context.loginAfterInactivityMilliseconds ! 0) { if (window._loginAfterInactivityTimer) window.clearTimeout(window._loginAfterInactivityTimer); window._loginAfterInactivityTimer window.setTimeout(function () { SC.util.sendToLogin(SC.types.LoginReason.IdleTooLong, true); }, Math.min(SC.context.loginAfterInactivityMilliseconds, 2147483647)); //interval stored as 32-bit signed int } }; SC.context.prehandleServiceFailureProc function (error) { if (error.statusCode ! 403) return false; SC.util.sendToLogin(SC.types.LoginReason.PermissionsInsufficient, true); } SC.context.unhandledServiceFailureProc function (error) { SC.dialog.showModalErrorBox(error.detail || error.message); } resetInactivityProc(); SC.ui.initializeWindowActivityTracking(function () { if (new Date().getTime() - window._lastNotifyActivityTime > SC.context.notifyActivityFrequencyMilliseconds) { resetInactivityProc(); SC.service.NotifyActivity(); } }); var parameterlessUrl SC.util.getParameterlessUrl(window.location.href); var createNavigationLinkFunc function (_) { return $div({ _commandName: Navigate, _commandArgument: _.href, _selected: _.href parameterlessUrl }, $img({ src: _.imageUrl }), $span(_.text), ); }; SC.ui.setContents($(.HeaderPanel), $a({ href: SC.context.guestPageUrl, className: LogoIconLink }), $a({ _commandName: ToggleMenu, className: ShowMenuButton }, ), $h1({ className: LogoPanel }), $div({ className: CommandPanel }), ); SC.command.queryAndAddCommandButtons($(.HeaderPanel .CommandPanel), ToolsPanel); SC.command.updateCommandButtonsState($(.HeaderPanel .CommandPanel)); var queryNavigationLinksEventArgs SC.event.dispatchGlobalEvent(SC.event.QueryNavigationLinks, { navigationLinks: }) SC.ui.setContents($(.NavigationPanel), queryNavigationLinksEventArgs.navigationLinks.map(createNavigationLinkFunc), $div({ className: FlexSpacer }), $div({ className: TrayPanelContainer }, $div({ className: TrayIconPanel }), $div({ className: UserMenuButton, _commandName: User }, $span(SC.context.userDisplayName null ? : SC.context.userDisplayName.toUpperCase()0), $span(SC.context.userDisplayName) ), ), ); SC.command.queryAndAddCommandButtons($(.NavigationPanel .TrayIconPanel), TrayIconPanel, null, { descriptionRenderStyle: SC.command.DescriptionRenderStyle.Tooltip }); SC.command.updateCommandButtonsState($(.NavigationPanel .TrayIconPanel)); var setSelectedFunc function () { $$(.NavigationPanel > div) .filter(function (_) { return !SC.util.isNullOrEmpty(_._commandArgument); }) .forEach(function (_) { SC.ui.setSelected(_, window.location.href.startsWith(_._commandArgument)); }); }; SC.event.addHandler(window, hashchange, setSelectedFunc); setSelectedFunc(); SC.livedata.startLoop(); }); var isTouchEnabled (typeof document.documentElement.ontouchstart ! undefined); SC.css.ensureClass(document.documentElement, TouchEnabled, isTouchEnabled); SC.css.ensureClass(document.documentElement, TouchDisabled, !isTouchEnabled); SC.css.ensureClass(document.documentElement, UserAuthenticated, SC.context.isUserAuthenticated); SC.css.ensureClass(document.documentElement, NativeClient, SC.util.isCapable(SC.util.Caps.NativeClient)); SC.css.ensureClass(document.documentElement, HasMasterPanel, $(.MasterPanel)); SC.css.ensureClass(document.documentElement, LogoImageVisible, SC.util.getBooleanResource(LogoPanel.ImageVisible)); SC.css.ensureClass(document.documentElement, LogoIconVisible, SC.util.getBooleanResource(LogoPanel.IconVisible)); SC.css.ensureClass(document.documentElement, LogoHeadingVisible, SC.util.getBooleanResource(LogoPanel.HeadingVisible)); SC.css.ensureClass(document.documentElement, AnimationReduced, SC.util.getBooleanResource(Page.AnimationReduced)); SC.css.ensureClass(document.documentElement, SC.context.pageType, true); SC.extension.initializeExtensions(); SC.event.dispatchGlobalEvent(SC.event.PreRender); SC.util.recordLifeCycleEvent(SC.event.PreRender); SC.ui.setVisible(document.body, true); SC.event.dispatchGlobalEvent(SC.event.PostRender); SC.util.recordLifeCycleEvent(SC.event.PostRender); $$(*tabIndex).forEach(function (_) { SC.event.addHandler(_, mousedown, function () { SC.ui.setHiddenFocusAndClearOthers(_); }); }); if (SC.context.focusedControlID) $(SC.context.focusedControlID).focus(); else if (document.activeElement document.body) { $(.NavigationPanel).focus(); SC.ui.setHiddenFocusAndClearOthers($(.NavigationPanel)); } /script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]