{"version":3,"file":"js/common.js","sourceRoot":"js/common-debug.js","sources":["0"],"sourcesContent":["window.cookieConsent = (function (localStorage) {\n 'use strict';\n \n var consent = getCookieConsent();\n var result = {\n analyticsEnabled: consent.enableAnalyticsCookies,\n functionalEnabled: consent.enableFunctionalCookies,\n cookieNoticeAccepted: consent.cookieNoticeAccepted,\n applySettings: applySettings,\n confirmCookieNotice: confirmCookieNotice,\n };\n\n function getCookieConsent() {\n var cookieConsent = JSON.parse(localStorage.getItem('cookieConsent'));\n if (cookieConsent === null) {\n return {\n cookieNoticeAccepted: false,\n enableAnalyticsCookies: true,\n enableFunctionalCookies: true,\n };\n }\n return cookieConsent;\n }\n\n function setCookieConsent(consent) {\n localStorage.setItem('cookieConsent', JSON.stringify(consent));\n result.analyticsEnabled = consent.enableAnalyticsCookies;\n result.functionalEnabled = consent.enableFunctionalCookies;\n result.cookieNoticeAccepted = consent.cookieNoticeAccepted;\n }\n\n function confirmCookieNotice() {\n consent.cookieNoticeAccepted = true;\n setCookieConsent(consent);\n }\n\n function applySettings(analyticsCookiesEnabled, functionalCookiesEnabled) {\n consent.enableAnalyticsCookies = analyticsCookiesEnabled;\n consent.enableFunctionalCookies = functionalCookiesEnabled;\n setCookieConsent(consent);\n }\n\n return result;\n})(localStorage);\n(function () {\n 'use strict';\n window.psw = {};\n}());\n(function (psw, storage, window, document, navigator, $, cookieConsent) {\n 'use strict';\n\n var storageKey = 'psw.ab';\n var data = Read();\n\n var kmCallbacks = [];\n var msWaited = 0;\n var waitDuration = 25;\n var doNotTrack = window.doNotTrack == '1' || navigator.doNotTrack == 'yes' || navigator.doNotTrack == '1' || !cookieConsent.analyticsEnabled;\n\n var onKM = function (callback) {\n kmCallbacks.push(callback);\n };\n\n var waitForKM = function () {\n if(window.KM || msWaited >= 2000 || doNotTrack) {\n\n // No more storing callbacks, just do it\n onKM = function (callback) { \n callback();\n };\n\n for(var i=0; i' + dismiss + message + '');\n\n $('#alert-container').append(alert);\n\n if(!isNaN(durationMS) && durationMS > 0) {\n setTimeout(function () {\n alert.alert('close');\n }, durationMS);\n }\n }\n\n alerts.show = ShowAlert;\n\n alerts.success = function ShowSuccess (message, durationMS) {\n ShowAlert('success', message, durationMS);\n };\n\n alerts.warning = function ShowWarning (message, durationMS) {\n ShowAlert('warning', message, durationMS);\n };\n\n alerts.danger = function ShowDanger (message, durationMS) {\n ShowAlert('danger', message, durationMS);\n };\n\n alerts.error = alerts.danger;\n\n}(window.psw));\n(function (psw, storage, document) {\n 'use strict';\n\n var forceUrlKey = 'psw.api.forceurl';\n\n function GetFullApiUrl (apiPath) {\n\n if(!apiPath || apiPath[0] !== '/') {\n throw new Error('API Path must start with the / character.');\n }\n\n var storageUrl = storage && storage.getItem(forceUrlKey);\n\n if(storageUrl) {\n return storageUrl + apiPath;\n }\n\n var host = document.location.hostname;\n if(host === 'particular.net') {\n return 'https://api.particular.net' + apiPath;\n }\n\n return 'https://api-staging.particular.net' + apiPath;\n }\n\n function ForceApiUrl (url) {\n if(url[url.length-1] === '/') {\n url = url.substr(0, url.length-1);\n }\n storage.setItem(forceUrlKey, url);\n console.log(\"API URL set to '\" + url + \"' for the duration of the session.\");\n }\n\n function ResetApiUrl () {\n storage.removeItem(forceUrlKey);\n console.log('API URL reset to default.');\n }\n\n psw.api = GetFullApiUrl;\n psw.api.force = ForceApiUrl;\n psw.api.reset = ResetApiUrl;\n\n}(window.psw, window.sessionStorage, document));\n\n// jshint -W030\n(function (w, psw) {\n 'use strict';\n\n $('pre code.language-mermaid').each(function (i, code) {\n var $code = $(code),\n $replacement = $('
').text($code.text());\n\n $code.parent().replaceWith($replacement);\n });\n\n psw.mermaidInit = function (mermaid) {\n console.log('mermaidInit');\n mermaid.initialize({\n startOnLoad: true,\n sequence: {\n mirrorActors: false\n }\n });\n };\n\n}(window, window.psw));\n$(function() {\n 'use strict';\n\n // Loop over forms we want to apply custom Bootstrap validation styles to & prevent submission\n $('.needs-validation').each(function () {\n $(this).submit(function (e) {\n if (this.checkValidity() === false) {\n e.preventDefault();\n e.stopPropagation();\n }\n $(this).addClass('was-validated');\n });\n });\n});\n(function () {\n 'use strict';\n\n window.generateSuccessErrorBox = function (text,type) {\n var regEx = /(\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*)/;\n text=text.replace(regEx, \"$1\");\n if ($(\"#contact-form-server-response\").length <= 0) {\n \n var box = $(\"
\" + text + \"
\"); \n box.click(function(){ \n $(this).hide(); \n });\n $(\"body\").append(box);\n\n }\n else {\n $(\"#contact-form-server-response\").html(text);\n }\n \n $(\"#contact-form-server-response\").css({\n \"background-color\": [\"#47d9b2\",\"#d54938\"][type]\n });\n $(\"#contact-form-server-response\").fadeIn(300);\n //$(document).scrollTop(0);\n $(\"#contact-form-server-response\").delay([10000,60000][type]).fadeOut(300);\n \n };\n\n}());\n$(function () {\n 'use strict';\n $('#footer-contact-btn').click(function () {\n GA4Event.contactUsMenuDisplay(contactUsPosition.footer);\n\n if (typeof ga !== 'undefined' && ga.create) {\n ga('send', 'event', 'Action Performed', 'Contact Us Menu - Footer', window.location.pathname);\n }\n });\n $('#footer-write-btn').click(function () {\n GA4Event.contactUsFormDisplay(contactUsPosition.footer);\n\n if (typeof ga !== 'undefined' && ga.create) {\n ga('send', 'event', 'Action Performed', 'Write To Us - Footer', window.location.pathname);\n }\n });\n\n $(\"#write-to-us\").submit(function (e) {\n e.preventDefault();\n\n var $this = $(this);\n var form = $this.find(\"form\");\n\n if (form.is(':invalid')) {\n return;\n }\n\n var success = $this.find(\".success-msg\");\n var alert = $this.find('.alert');\n var d = new Date();\n var postData = _.chain(form.serializeArray())\n .keyBy('name')\n .mapValues('value')\n .value();\n\n postData.templateid = \"\";\n postData.Context = \"
\" + postData.Message +\n \"

Sent From URL: \" + window.location.href +\n \"
Timestamp: \" + d.toString();\n postData.timeStamp = d;\n\n delete postData.Message;\n\n psw.ajax({\n url: psw.api(\"/contactus\"),\n type: \"POST\",\n data: postData,\n headers: {'X-Alt-Referer': location.href },\n success: function (data, textStatus, xhr) {\n form.hide();\n success.show();\n if (cookieConsent.analyticsEnabled) {\n ga('send', 'event', 'Action Performed', 'Contacted Us - Footer', document.location.href);\n ga('send', 'event', 'Action Performed', 'Form Submitted', document.location.href);\n _kmq.push(['record', 'Contacted Us']);\n GA4Event.contactUsSubmit(contactUsPosition.footer);\n }\n },\n error: function (xhr, status, err) {\n alert.show()\n .html('Something went wrong, and we could not send your message. Sorry for the extra work. Please send us an old-fashioned email at support@particular.net.');\n GA4Event.contactUsFail(contactUsPosition.footer);\n }\n });\n });\n\n});\n// Source: https://github.com/hdavtian/jquery-fixorphan\n\n(function($){\n 'use strict';\n\n $.fn.fixorphan = function(options){\n\n return this.each(function(){\n\n if($(this).children().length == 1) {\n // The target has child elements, resetting its text will mess it up\n return;\n }\n\n var $el = {};\n\n // properties\n $el.this = $(this);\n $el.text = $el.this.text();\n $el.charCount = $el.text.length;\n $el.words = $el.text.split(' ');\n $el.wordCount = $el.words.length;\n $el.options = (options !== undefined) ? options : {numLastWords:2};\n\n var fixOrphan = function(){\n\n var newWords = $el.words;\n\n for (var i=0, l = $el.wordCount; i < l; i++) {\n\n if (i == $el.wordCount - $el.options.numLastWords) {\n newWords.splice(i, 0, '');\n }\n\n if ( i == $el.wordCount ) {\n newWords.push('');\n }\n\n }\n\n return newWords.join(' ');\n\n };\n\n $el.this.html( fixOrphan() );\n\n });//end each\n\n };//end $.fn\n\n $('h3, .fix-orphan').fixorphan({\n numLastWords: 2\n });\n\n}(jQuery));\n// jshint strict:false\n$(\".vimeo\").on('click', function(ev){\n ev.preventDefault();\n});\n(function ($) {\n 'use strict';\n\n var hash = window.location.hash;\n if(hash && hash.length > 0) {\n var tab = $(\".deep-link-tabs [href='\" + hash + \"']\");\n\n if(tab.length == 1) {\n tab.tab('show');\n }\n }\n\n $('.deep-link-tabs').on('shown.bs.tab', function (e) {\n var target = e.target;\n var newHash = target.hash;\n if(history.replaceState) {\n history.replaceState(null, null, newHash);\n }\n });\n\n}(jQuery));\n$(function () {\n 'use strict';\n\n var url = window.location.pathname; //sets the variable \"url\" to the pathname of the current window\n var activePage = url.substring(url.lastIndexOf('/') + 1); //sets the variable \"activePage\" as the substring after the last \"/\" in the \"url\" variable\n $('.aside-nav li a').each(function () { //looks in each link item within the list\n var linkPage = this.href.substring(this.href.lastIndexOf('/') + 1); //sets the variable \"linkPage\" as the substring of the url path in each <a>\n\n if (activePage.toLowerCase() == linkPage.toLowerCase()) { //compares the path of the current window to the path of the linked page in the nav item\n $(this).addClass('active'); //if the above is true, add the \"active\" class to the parent of the <a> which is the <li> in the nav list\n }\n });\n});\n(function ($) {\n 'use strict';\n\n $(function () {\n $('.from-markdown table').wrap('
');\n });\n\n}(jQuery));\n(function ($) {\n 'use strict';\n\n $.bigfoot({\n numberResetSelector: 'article',\n buttonMarkup :\n '
' +\n '' +\n '
'\n });\n}(jQuery));\n// Google Analytics UA (Pre-Load)\nwindow.GoogleAnalyticsObject = 'ga';\nwindow.ga = window.ga || function () { (ga.q = ga.q || []).push(arguments); }; ga.l = +new Date;\nga('create', 'UA-20451773-2', 'auto', { 'cookieDomain': 'particular.net' });\nga('set', 'displayFeaturesTask', null);\n\nif(!window.disableScrollDepthTracking) {\n ga('require', 'maxScrollTracker', { maxScrollMetricIndex: 1 });\n}\n\nga('require', 'outboundLinkTracker', {\n events: ['click', 'contextmenu'],\n shouldTrackOutboundLink: function (link, parseUrl) {\n var href = link.getAttribute('href') || link.getAttribute('xlink:href');\n var url = parseUrl(href);\n var isExternal = !url.hostname.match(/^(docs\\.)?particular.net$/i);\n return url.hostname != location.hostname && url.protocol.slice(0, 4) == 'http' && isExternal;\n }\n});\nga('set', 'transport', 'beacon');\nga('send', 'pageview');\n\n// Google Analytics 4 (Pre-Load)\n\nwindow.dataLayer = window.dataLayer || [];\nfunction gtag(){dataLayer.push(arguments);}\ngtag('js', new Date());\n\ngtag('config', 'G-GMZ1FS541B');\n\nif(cookieConsent.analyticsEnabled){\n\n var loadScript = function (url) {\n setTimeout(function () {\n var d = document, f = d.getElementsByTagName('script')[0],\n s = d.createElement('script');\n s.type = 'text/javascript'; s.async = true; s.src = url;\n f.parentNode.insertBefore(s, f);\n }, 1);\n };\n\n // Load Google Analytics UA\n\n loadScript('//www.google-analytics.com/analytics.js');\n loadScript('//cdnjs.cloudflare.com/ajax/libs/autotrack/2.4.1/autotrack.js');\n\n // Load Google Analytics 4\n\n loadScript('//www.googletagmanager.com/gtag/js?id=G-GMZ1FS541B');\n\n // Kissmetrics\n window._kmq = window._kmq || [];\n window._kmk = window._kmk || '081ab96143b8f345362841db575656a8512960d3';\n loadScript('//i.kissmetrics.com/i.js');\n loadScript('//scripts.kissmetrics.com/' + _kmk + '.2.js');\n\n window.piAId = '28442';\n window.piCId = '78324';\n (function () {\n function async_load() {\n var s = document.createElement('script'); s.type = 'text/javascript';\n s.src = ('https:' == document.location.protocol ? 'https://pi' : 'http://cdn') + '.pardot.com/pd.js';\n var c = document.getElementsByTagName('script')[0]; c.parentNode.insertBefore(s, c);\n }\n if (window.attachEvent) { window.attachEvent('onload', async_load); }\n else { window.addEventListener('load', async_load, false); }\n })();\n\n if (window.URLSearchParams) {\n var query = new URLSearchParams(document.location.search);\n var medium = query.get('utm_medium');\n if (medium === 'paid' || medium === 'cpc') {\n var src = query.get('utm_source');\n var campaign = query.get('utm_campaign');\n src && _kmq.push(['record', medium + '-source-' + src]);\n campaign && _kmq.push(['record', medium + '-campaign-' + campaign]);\n }\n }\n}\n\n// Track outbound links\nvar trackOutboundLink = function (self, name) {\n trackGetStartedCTAClick(name);\n if (typeof ga !== 'undefined' && ga.create) {\n ga('send', 'event', 'Action Performed', name, {\n 'transport': 'beacon',\n 'hitCallback': function () { document.location = self.href; }\n });\n } else {\n document.location = self.href;\n }\n};\n\nvar trackGetStartedCTAClick = function(name) {\n switch (name) {\n case 'Clicked Get-Started CTA (NSB Page Bottom)':\n case 'Clicked Get-Started CTA (SI Page Bottom)': \n case 'Clicked Get-Started CTA (SP Page Bottom)':\n case 'Clicked Get-Started CTA (Home Page Bottom, Direct to tutorial)':\n GA4Event.getStartedCTA(gettingStartedCTAPosition.bottom);\n break;\n case 'Clicked Get-Started CTA (Header)':\n GA4Event.getStartedCTA(gettingStartedCTAPosition.header);\n break;\n } \n}\n\n// GA4 dimension parameter values\nconst contactUsPosition = {\n footer: 'footer',\n inPage: 'in page',\n}\n\nconst gettingStartedCTAPosition = {\n header: 'header',\n bottom: 'bottom'\n}\n\nconst licenseType = {\n initialDeveloperLicense: 'Initial developer license',\n renewal90Day: '90 day renewal',\n}\n\n// GA4 event sending singleton\nvar GA4Event = function() {\n\n // Private method\n var _sendGA4Event = function (eventName, parameters){\n if(cookieConsent.analyticsEnabled){\n gtag('event', eventName, parameters);\n }\n }\n\n // Public interface\n var _API = {\n /**\n * @description This function sends an event for a successful 'Contact us' or 'Write to us' form submission\n * @param {const} contactUsPosition - contactUsPosition - is a const object holding the appropriate values for the position that the event was called from (e.g. 'contactUsPosition.footer' or 'contactUsPosition.inPage')\n */\n contactUsSubmit: function(contactUsPosition) {\n var parameters = {\n 'contact_us_position': contactUsPosition,\n }\n _sendGA4Event('contact_us_submit', parameters)\n },\n\n /**\n * @description This function sends an event for a failed 'Contact us' or 'Write to us' form submission\n * @param {const} contactUsPosition - contactUsPosition - is a const object holding the appropriate values for the position that the event was called from (e.g. 'contactUsPosition.footer' or 'contactUsPosition.inPage')\n */\n contactUsFail: function(contactUsPosition) {\n var parameters = {\n 'contact_us_position': contactUsPosition,\n }\n _sendGA4Event('contact_us_fail', parameters)\n },\n\n /**\n * @description This function sends an event when a contact us menu is displayed\n * @param {const} contactUsPosition - contactUsPosition - is a const object holding the appropriate values for the position that the event was called from (e.g. 'contactUsPosition.footer' or 'contactUsPosition.inPage')\n */\n contactUsMenuDisplay: function(contactUsPosition) {\n var parameters = {\n 'contact_us_position': contactUsPosition,\n }\n _sendGA4Event('contact_us_menu_display', parameters);\n },\n\n /**\n * @description This function sends an event when a 'Contact us' or a 'Write to us' form is displayed\n * @param {const} contactUsPosition - contactUsPosition - is a const object holding the appropriate values for the position that the event was called from (e.g. 'contactUsPosition.footer' or 'contactUsPosition.inPage')\n */\n contactUsFormDisplay: function(contactUsPosition) {\n var parameters = {\n 'contact_us_position': contactUsPosition,\n }\n _sendGA4Event('contact_us_form_display', parameters);\n },\n\n /**\n * @description This function sends an event when the license request page is viewed\n * @param {const} licenseType - The type of license being requested\n * @param {string} nServiceBusVersion - The version of NServiceBus being used\n * @param {string} dotnetFrameworkVersion - The .NET version being used\n * @param {string} platform - The OS platform being used\n */\n licenseRequest: function (licenseType, nServiceBusVersion, dotnetFrameworkVersion, platform) {\n var parameters = {\n 'license_type': licenseType,\n 'nservicebus_version': nServiceBusVersion,\n 'dotnet_framework': dotnetFrameworkVersion,\n 'customer_platform': platform\n }\n _sendGA4Event('license_request', parameters);\n },\n\n /**\n * @description This function sends an event when the license request page is viewed\n * @param {const} licenseType - The type of license being requested\n * @param {string} nServiceBusVersion - The version of NServiceBus being used\n * @param {string} dotnetFrameworkVersion - The .NET version being used\n * @param {string} platform - The OS platform being used\n * @param {bool} businessEmail - Indicates whether a business email address was provided (i.e. not gmail, hotmail, etc)\n */\n licenseRequestSubmit: function (licenseType, nServiceBusVersion, dotnetFrameworkVersion, platform, businessEmail) {\n var parameters = {\n 'license_type': licenseType,\n 'nservicebus_version': nServiceBusVersion,\n 'dotnet_framework': dotnetFrameworkVersion,\n 'customer_platform': platform,\n 'business_email': businessEmail\n }\n _sendGA4Event('license_request_submit', parameters);\n },\n\n /**\n * @description This function sends an event when the license request page is viewed\n * @param {const} licenseType - The type of license being requested\n * @param {string} nServiceBusVersion - The version of NServiceBus being used\n * @param {string} dotnetFrameworkVersion - The .NET version being used\n * @param {string} platform - The OS platform being used\n * @param {bool} businessEmail - Indicates whether a business email address was provided (i.e. not gmail, hotmail, etc)\n */\n licenseRequestFail: function (licenseType, nServiceBusVersion, dotnetFrameworkVersion, platform, businessEmail) {\n var parameters = {\n 'license_type': licenseType,\n 'nservicebus_version': nServiceBusVersion,\n 'dotnet_framework': dotnetFrameworkVersion,\n 'customer_platform': platform,\n 'business_email': businessEmail\n }\n _sendGA4Event('license_request_fail', parameters);\n },\n\n /**\n * @description This function sends an event a related link on a blog post is clicked\n * @param {string} index - index - the index in the list of related links\n * @param {string} linkPosition - linkPosition - values for the position that the event was called from (e.g. 'top' or 'bottom')\n * @param {string} linkUrl - linkUrl - the URL of the related link\n */\n blogRelatedLinkClick: function(index, linkPosition, linkUrl) {\n var parameters = {\n 'index': index,\n 'link_position': linkPosition,\n 'link_url': linkUrl,\n }\n _sendGA4Event('blog_related_link_click', parameters);\n },\n\n /**\n * @description This function sends an event when the blog promotion banner is clicked\n * @param {string} linkUrl - linkUrl - the URL of the promo link\n */\n blogPromoClick: function(linkUrl) {\n var parameters = {\n 'link_url': linkUrl,\n }\n _sendGA4Event('blog_promo_clicked', parameters);\n },\n\n /**\n * @description This function sends an event indicating that the blog post has been fully read\n */\n blogArticleRead: function() {\n _sendGA4Event('blog_article_read');\n },\n\n /**\n * @description This function sends an event indicating that ServiceInsight executable was downloaded\n * @param {string} fileName - fileName - The name of the file that is being downloaded\n * @param {string} linkUrl - linkUrl - The full URL for the file being downloaded\n */\n serviceInsightDownload: function(fileName, linkUrl) {\n var parameters = {\n 'file_name': fileName,\n 'link_url': linkUrl,\n }\n _sendGA4Event('service_insight_download', parameters);\n },\n /**\n * @description This function sends an event indicating that ServiceControl executable was downloaded\n * @param {string} fileName - fileName - The name of the file that is being downloaded\n * @param {string} linkUrl - linkUrl - The full URL for the file being downloaded\n */\n serviceControlDownload: function(fileName, linkUrl) {\n var parameters = {\n 'file_name': fileName,\n 'link_url': linkUrl,\n }\n _sendGA4Event('service_control_download', parameters);\n },\n /**\n * @description This function sends an event indicating that ServicePulse executable was downloaded\n * @param {string} fileName - fileName - The name of the file that is being downloaded\n * @param {string} linkUrl - linkUrl - The full URL for the file being downloaded\n */\n servicePulseDownload: function(fileName, linkUrl) {\n var parameters = {\n 'file_name': fileName,\n 'link_url': linkUrl,\n }\n _sendGA4Event('service_pulse_download', parameters);\n },\n\n /**\n * @description This function sends an event when a link is clicked on a solution page\n * @param {string} linkUrl - linkUrl - The full URL of the link\n * @param {string} linkType - linkType - The type of link that is clicked on a solution page (e.g. Toc, Cta, Related)\n * @param {string} index - index - the index in the list of related links\n */\n solutionPageLinkClick: function(linkUrl, linkType, index) {\n var parameters = {\n 'link_url': linkUrl,\n 'link_type': linkType,\n 'index': index,\n }\n _sendGA4Event('solution_page_link_click', parameters);\n },\n /**\n * @description This function sends an event when a user scrolls to a section header of the article and have it in the top portion of the screen\n * @param {string} anchorName - anchorName - The section header anchor tag name\n */\n solutionPageSectionRead: function(anchorName) {\n var parameters = {\n 'anchor_name': anchorName,\n }\n _sendGA4Event('solution_page_section_read', parameters);\n },\n /**\n * @description This functions sends an event indicating that a link from any of the pages of learning path was clicked\n * it sends the link text, the link href(target). The page_location is passed automatically by GA4, which contains the URL of the page the user was on.\n * @param {string} linkText - linkText - The text of the link that that is clicked\n * @param {string} linkUrl - linkUrl - The full URL of the link that is being clicked\n */\n learningPathClick: function(linkText,linkUrl) {\n var parameters = {\n 'link_text': linkText,\n 'link_url': linkUrl,\n }\n _sendGA4Event('learning_path_click', parameters);\n },\n /**\n * @description tracks when users click the “Get Started” button at the bottom of the Particular home page\n * @param {string} position - the position where the CTA button to getstarted is, like the home page bottom or the service pulse page.\n */\n getStartedCTA: function(position) {\n\n var parameters = {\n 'getting_started_position': position\n }\n\n _sendGA4Event('get_started_cta', parameters);\n }\n }\n\n return _API;\n}();"],"names":["window","cookieConsent","localStorage","consent","getCookieConsent","result","analyticsEnabled","enableAnalyticsCookies","functionalEnabled","enableFunctionalCookies","cookieNoticeAccepted","applySettings","confirmCookieNotice","JSON","parse","getItem","setCookieConsent","setItem","stringify","analyticsCookiesEnabled","functionalCookiesEnabled","psw","storage","document","navigator","$","storageKey","data","Read","kmCallbacks","msWaited","waitDuration","doNotTrack","onKM","callback","push","waitForKM","KM","i","length","remove","setTimeout","ABTest","testName","variants","location","hostname","variant","ab","variantChosen","Store","cookieMatch","cookie","match","cookieIdentity","decodeURIComponent","value","storedData","abi","jQuery","jQueryAjax","sessionStorage","sessionKey","tokenRequestPath","SendWithJwt","settings","jsonWebToken","headers","Authorization","done","pswDeferred","resolve","RequestToken","url","api","type","success","exp","Date","getTime","json","token","error","jqXHR","textStatus","errorThrown","AjaxWithJsonWebToken","Deferred","oldErrorHandler","reject","storedTokenJson","storedToken","now","ajax","alerts","dismiss","ShowAlert","message","durationMS","undefined","alert","append","isNaN","show","ShowSuccess","warning","ShowWarning","danger","ShowDanger","forceUrlKey","GetFullApiUrl","apiPath","Error","storageUrl","host","ForceApiUrl","substr","console","log","ResetApiUrl","removeItem","force","reset","w","each","code","$code","$replacement","text","parent","replaceWith","mermaidInit","mermaid","initialize","startOnLoad","sequence","mirrorActors","this","submit","e","checkValidity","preventDefault","stopPropagation","addClass","generateSuccessErrorBox","regEx","replace","box","click","hide","html","css","background-color","fadeIn","delay","fadeOut","GA4Event","contactUsMenuDisplay","contactUsPosition","footer","ga","create","pathname","contactUsFormDisplay","$this","form","find","is","d","postData","_","chain","serializeArray","keyBy","mapValues","templateid","Context","Message","href","toString","timeStamp","X-Alt-Referer","xhr","_kmq","contactUsSubmit","status","err","contactUsFail","fn","fixorphan","options","children","$el","charCount","words","split","wordCount","numLastWords","fixOrphan","newWords","l","splice","join","on","ev","hash","tab","target","newHash","history","replaceState","activePage","substring","lastIndexOf","linkPage","toLowerCase","wrap","bigfoot","numberResetSelector","buttonMarkup","GoogleAnalyticsObject","q","arguments","cookieDomain","disableScrollDepthTracking","maxScrollMetricIndex","events","shouldTrackOutboundLink","link","parseUrl","getAttribute","isExternal","protocol","slice","dataLayer","gtag","loadScript","f","getElementsByTagName","s","createElement","async","src","parentNode","insertBefore","_kmk","piAId","piCId","async_load","c","attachEvent","addEventListener","URLSearchParams","query","search","medium","get","campaign","trackOutboundLink","self","name","trackGetStartedCTAClick","transport","hitCallback","getStartedCTA","gettingStartedCTAPosition","bottom","header","inPage","licenseType","initialDeveloperLicense","renewal90Day","_sendGA4Event","eventName","parameters","_API","contact_us_position","licenseRequest","nServiceBusVersion","dotnetFrameworkVersion","platform","license_type","nservicebus_version","dotnet_framework","customer_platform","licenseRequestSubmit","businessEmail","business_email","licenseRequestFail","blogRelatedLinkClick","index","linkPosition","linkUrl","link_position","link_url","blogPromoClick","blogArticleRead","serviceInsightDownload","fileName","file_name","serviceControlDownload","servicePulseDownload","solutionPageLinkClick","linkType","link_type","solutionPageSectionRead","anchorName","anchor_name","learningPathClick","linkText","link_text","position","getting_started_position"],"mappings":"AAAAA,OAAOC,cAAgB,SAAWC,GAC9B,aAEA,IAAIC,EAAUC,EAAiB,EAC/B,IAAIC,EAAS,CACTC,iBAAkBH,EAAQI,uBAC1BC,kBAAmBL,EAAQM,wBAC3BC,qBAAsBP,EAAQO,qBAC9BC,cAAeA,EACfC,oBAAqBA,CACzB,EAEA,SAASR,IACL,IAAIH,EAAgBY,KAAKC,MAAMZ,EAAaa,QAAQ,eAAe,CAAC,EACpE,GAAId,IAAkB,KAAM,CACxB,MAAO,CACHS,qBAAsB,MACtBH,uBAAwB,KACxBE,wBAAyB,IAC7B,CACJ,CACA,OAAOR,CACX,CAEA,SAASe,EAAiBb,GACtBD,EAAae,QAAQ,gBAAiBJ,KAAKK,UAAUf,CAAO,CAAC,EAC7DE,EAAOC,iBAAmBH,EAAQI,uBAClCF,EAAOG,kBAAoBL,EAAQM,wBACnCJ,EAAOK,qBAAuBP,EAAQO,oBAC1C,CAEA,SAASE,IACLT,EAAQO,qBAAuB,KAC/BM,EAAiBb,CAAO,CAC5B,CAEA,SAASQ,EAAcQ,EAAyBC,GAC5CjB,EAAQI,uBAAyBY,EACjChB,EAAQM,wBAA0BW,EAClCJ,EAAiBb,CAAO,CAC5B,CAEA,OAAOE,CACV,EAAEH,YAAY,GACd,WACG,aACAF,OAAOqB,IAAM,EACjB,GAAG,GACF,SAAUA,EAAKC,EAAStB,EAAQuB,EAAUC,EAAWC,EAAGxB,GACrD,aAEA,IAAIyB,EAAa,SACjB,IAAIC,EAAOC,EAAK,EAEhB,IAAIC,EAAc,GAClB,IAAIC,EAAW,EACf,IAAIC,EAAe,GACnB,IAAIC,EAAahC,EAAOgC,YAAc,KAAOR,EAAUQ,YAAc,OAASR,EAAUQ,YAAc,KAAO,CAAC/B,EAAcK,iBAE5H,IAAI2B,EAAO,SAAUC,GACjBL,EAAYM,KAAKD,CAAQ,CAC7B,EAEA,IAAIE,EAAY,WACZ,GAAGpC,EAAOqC,IAAMP,GAAY,KAAQE,EAAY,CAG5CC,EAAO,SAAUC,GACbA,EAAS,CACb,EAEA,IAAI,IAAII,EAAE,EAAGA,EAAET,EAAYU,OAAQD,CAAC,GAAI,CACpCT,EAAYS,GAAG,CACnB,CAGAb,EAAE,cAAc,EAAEe,OAAO,EAEzB,MACJ,CACAV,GAAYC,EACZU,WAAWL,EAAWL,CAAY,CACtC,EAEAU,WAAWL,EAAWL,CAAY,EAElC,SAASW,EAAOC,EAAUC,EAAUV,GAEhC,GAAGlC,EAAO6C,SAASC,WAAa,iBAAkB,CAC9CH,EAAWA,EAAW,UAC1B,CAEA,IAAII,EAAUpB,GAAQA,EAAKgB,GAC3B,GAAGI,EAAS,CACRb,EAASa,CAAO,EAChB,MACJ,CAEAd,EAAK,WACD,GAAGjC,EAAOqC,GAAI,CACVA,GAAGW,GAAGL,EAAUC,EAAU,SAAUK,GAChCtB,EAAKgB,GAAYM,EACjBC,EAAM,EACNhB,EAASe,CAAa,CAC1B,CAAC,CACL,KAAO,CACHf,EAASU,EAAS,EAAE,CACxB,CACJ,CAAC,CACL,CAEA,SAAShB,IACL,GAAGN,EAAS,CAER,IAAI6B,EAAc5B,EAAS6B,OAAOC,MAAM,uBAAuB,EAC/D,IAAIC,EAAiBH,GAAeI,mBAAmBJ,EAAY,EAAE,EAErE,IAAIK,EAAQlC,EAAQP,QAAQW,CAAU,EACtC,IAAI+B,EAAaD,GAAS3C,KAAKC,MAAM0C,CAAK,EAE1C,GAAGF,GAAkBG,GAAcA,EAAWnB,GAAKgB,IAAmBG,EAAWnB,EAAG,CAChF,OAAOmB,CACX,CACJ,CACA,MAAO,EACX,CAEA,SAASP,IACL,GAAG5B,GAAWtB,EAAOqC,GAAI,CACrB,GAAG,CAACV,EAAKW,EAAG,CACRX,EAAKW,EAAID,GAAGqB,IAAI,CACpB,CACA,IAAIF,EAAQ3C,KAAKK,UAAUS,CAAI,EAC/BL,EAAQL,QAAQS,EAAY8B,CAAK,CACrC,CAEJ,CAEAnC,EAAI2B,GAAKN,CAEb,GAAE1C,OAAOqB,IAAKrB,OAAOE,aAAcF,OAAQuB,SAAUC,UAAWmC,OAAQ1D,aAAc,GACrF,SAAUoB,EAAKI,EAAGmC,EAAYC,EAAgBC,EAAYC,GACvD,aAEA,SAASC,EAAaC,EAAUC,GAC5BD,EAASE,QAAQC,cAAgB,UAAYF,EAC7CN,EAAWK,CAAQ,EACdI,KAAK,WACFJ,EAASK,YAAYC,QAAQ,CACjC,CAAC,CACT,CAEA,SAASC,EAAcP,GACnBL,EAAW,CACPa,IAAKpD,EAAIqD,IAAIX,CAAgB,EAC7BY,KAAM,OACNC,QAAS,SAAUvE,GAEfA,EAAOwE,KAAM,IAAIC,MAAOC,QAAQ,EAAI,KACpC,IAAIC,EAAOnE,KAAKK,UAAUb,CAAM,EAChCwD,EAAe5C,QAAQ6C,EAAYkB,CAAI,EACvChB,EAAYC,EAAU5D,EAAO4E,KAAK,CACtC,EACAC,MAAO,SAAUC,EAAOC,EAAYC,GAChCpB,EAASiB,MAAMC,EAAOC,EAAYC,CAAW,CACjD,CACJ,CAAC,CACL,CAEA,SAASC,EAAsBrB,GAM3BA,EAASE,QAAUF,EAASE,SAAW,GACvCF,EAASK,YAAc7C,EAAE8D,SAAS,EAElC,IAAIC,EAAkBvB,EAASiB,MAE/BjB,EAASiB,MAAQ,SAAUC,EAAOC,EAAYC,GAC1C,GAAGA,GAAe,eAAgB,CAE9Bb,EAAaP,CAAQ,CACzB,KAAO,CACH,GAAIuB,EAAiB,CACjBA,EAAgBL,EAAOC,EAAYC,CAAW,CAClD,CACApB,EAASK,YAAYmB,OAAON,EAAOC,EAAYC,CAAW,CAC9D,CACJ,EAEA,IAAIK,EAAkB7B,EAAe9C,QAAQ+C,CAAU,EACvD,IAAI6B,EAAcD,GAAmB7E,KAAKC,MAAM4E,CAAe,EAC/D,IAAIE,GAAM,IAAId,MAAOC,QAAQ,EAC7B,GAAG,CAACY,GAAeA,EAAYd,IAAMe,EAAK,CACtCpB,EAAaP,CAAQ,CACzB,KAAO,CACHD,EAAYC,EAAU0B,EAAYV,KAAK,CAC3C,CAEA,OAAOhB,EAASK,WACpB,CAEAjD,EAAIwE,KAAOP,CAEf,GAAEtF,OAAOqB,IAAKsC,OAAQA,OAAOkC,KAAMhC,eAAgB,cAAe,gBAAiB,GAClF,SAAUxC,GACP,aAEA,IAAIyE,EAASzE,EAAIyE,OAAS,GAE1B,IAAIC,EAAU,kIAEd,SAASC,EAAWrB,EAAMsB,EAASC,GAC/BA,EAAaA,IAAeC,UAAYD,EAAa,IAErD,IAAIE,EAAQ3E,EAAE,2BAA6BkD,EAAO,8CAAgDoB,EAAUE,EAAU,QAAQ,EAE9HxE,EAAE,kBAAkB,EAAE4E,OAAOD,CAAK,EAElC,GAAG,CAACE,MAAMJ,CAAU,GAAKA,EAAa,EAAG,CACrCzD,WAAW,WACP2D,EAAMA,MAAM,OAAO,CACvB,EAAGF,CAAU,CACjB,CACJ,CAEAJ,EAAOS,KAAOP,EAEdF,EAAOlB,QAAU,SAAS4B,EAAaP,EAASC,GAC5CF,EAAU,UAAWC,EAASC,CAAU,CAC5C,EAEAJ,EAAOW,QAAU,SAASC,EAAaT,EAASC,GAC5CF,EAAU,UAAWC,EAASC,CAAU,CAC5C,EAEAJ,EAAOa,OAAS,SAASC,EAAYX,EAASC,GAC1CF,EAAU,SAAUC,EAASC,CAAU,CAC3C,EAEAJ,EAAOZ,MAAQY,EAAOa,MAE1B,GAAE3G,OAAOqB,GAAI,GACZ,SAAUA,EAAKC,EAASC,GACrB,aAEA,IAAIsF,EAAc,mBAElB,SAASC,EAAeC,GAEpB,GAAG,CAACA,GAAWA,EAAQ,KAAO,IAAK,CAC/B,MAAM,IAAIC,MAAM,2CAA2C,CAC/D,CAEA,IAAIC,EAAa3F,GAAWA,EAAQP,QAAQ8F,CAAW,EAEvD,GAAGI,EAAY,CACX,OAAOA,EAAaF,CACxB,CAEA,IAAIG,EAAO3F,EAASsB,SAASC,SAC7B,GAAGoE,IAAS,iBAAkB,CAC1B,MAAO,6BAA+BH,CAC1C,CAEA,MAAO,qCAAuCA,CAClD,CAEA,SAASI,EAAa1C,GAClB,GAAGA,EAAIA,EAAIlC,OAAO,KAAO,IAAK,CAC1BkC,EAAMA,EAAI2C,OAAO,EAAG3C,EAAIlC,OAAO,CAAC,CACpC,CACAjB,EAAQL,QAAQ4F,EAAapC,CAAG,EAChC4C,QAAQC,IAAI,mBAAqB7C,EAAM,oCAAoC,CAC/E,CAEA,SAAS8C,IACLjG,EAAQkG,WAAWX,CAAW,EAC9BQ,QAAQC,IAAI,2BAA2B,CAC3C,CAEAjG,EAAIqD,IAAMoC,EACVzF,EAAIqD,IAAI+C,MAAQN,EAChB9F,EAAIqD,IAAIgD,MAAQH,CAEpB,GAAEvH,OAAOqB,IAAKrB,OAAO6D,eAAgBtC,QAAS,GAG7C,SAAUoG,EAAGtG,GACV,aAEAI,EAAE,2BAA2B,EAAEmG,KAAK,SAAUtF,EAAGuF,GAC7C,IAAIC,EAAQrG,EAAEoG,CAAI,EACdE,EAAetG,EAAE,6BAA6B,EAAEuG,KAAKF,EAAME,KAAK,CAAC,EAErEF,EAAMG,OAAO,EAAEC,YAAYH,CAAY,CAC3C,CAAC,EAED1G,EAAI8G,YAAc,SAAUC,GACxBf,QAAQC,IAAI,aAAa,EACzBc,EAAQC,WAAW,CACfC,YAAa,KACbC,SAAU,CACNC,aAAc,KAClB,CACJ,CAAC,CACL,CAEJ,GAAExI,OAAQA,OAAOqB,GAAI,EACrBI,EAAE,WACE,aAGAA,EAAE,mBAAmB,EAAEmG,KAAK,WACxBnG,EAAEgH,IAAI,EAAEC,OAAO,SAAUC,GACrB,GAAIF,KAAKG,cAAc,IAAM,MAAO,CAChCD,EAAEE,eAAe,EACjBF,EAAEG,gBAAgB,CACtB,CACArH,EAAEgH,IAAI,EAAEM,SAAS,eAAe,CACpC,CAAC,CACL,CAAC,CACL,CAAC,GACA,WACG,aAEA/I,OAAOgJ,wBAA0B,SAAUhB,EAAKrD,GAC5C,IAAIsE,EAAQ,iDACZjB,EAAKA,EAAKkB,QAAQD,EAAO,4BAA8B,EACvD,GAAIxH,EAAE,+BAA+B,EAAEc,QAAU,EAAG,CAEhD,IAAI4G,EAAM1H,EAAE,0CAA4CuG,EAAO,QAAQ,EACvEmB,EAAIC,MAAM,WACN3H,EAAEgH,IAAI,EAAEY,KAAK,CACjB,CAAC,EACD5H,EAAE,MAAM,EAAE4E,OAAO8C,CAAG,CAExB,KACK,CACD1H,EAAE,+BAA+B,EAAE6H,KAAKtB,CAAI,CAChD,CAEAvG,EAAE,+BAA+B,EAAE8H,IAAI,CACnCC,mBAAoB,CAAC,UAAU,WAAW7E,EAC9C,CAAC,EACDlD,EAAE,+BAA+B,EAAEgI,OAAO,GAAG,EAE7ChI,EAAE,+BAA+B,EAAEiI,MAAM,CAAC,IAAM,KAAO/E,EAAK,EAAEgF,QAAQ,GAAG,CAE7E,CAEJ,GAAG,EACHlI,EAAE,WACE,aACAA,EAAE,qBAAqB,EAAE2H,MAAM,WAC3BQ,SAASC,qBAAqBC,kBAAkBC,MAAM,EAEtD,GAAI,OAAOC,KAAO,aAAeA,GAAGC,OAAQ,CACxCD,GAAG,OAAQ,QAAS,mBAAoB,2BAA4BhK,OAAO6C,SAASqH,QAAQ,CAChG,CACJ,CAAC,EACDzI,EAAE,mBAAmB,EAAE2H,MAAM,WACzBQ,SAASO,qBAAqBL,kBAAkBC,MAAM,EAEtD,GAAI,OAAOC,KAAO,aAAeA,GAAGC,OAAQ,CACxCD,GAAG,OAAQ,QAAS,mBAAoB,uBAAwBhK,OAAO6C,SAASqH,QAAQ,CAC5F,CACJ,CAAC,EAEDzI,EAAE,cAAc,EAAEiH,OAAO,SAAUC,GAC/BA,EAAEE,eAAe,EAEjB,IAAIuB,EAAQ3I,EAAEgH,IAAI,EAClB,IAAI4B,EAAOD,EAAME,KAAK,MAAM,EAE5B,GAAID,EAAKE,GAAG,UAAU,EAAG,CACrB,MACJ,CAEA,IAAI3F,EAAUwF,EAAME,KAAK,cAAc,EACvC,IAAIlE,EAAQgE,EAAME,KAAK,QAAQ,EAC/B,IAAIE,EAAI,IAAI1F,KACZ,IAAI2F,EAAWC,EAAEC,MAAMN,EAAKO,eAAe,CAAC,EACvCC,MAAM,MAAM,EACZC,UAAU,OAAO,EACjBtH,MAAM,EAEXiH,EAASM,WAAa,GACtBN,EAASO,QAAU,QAAUP,EAASQ,QAClC,4BAA8BjL,OAAO6C,SAASqI,KAC9C,kBAAoBV,EAAEW,SAAS,EACnCV,EAASW,UAAYZ,EAErB,OAAOC,EAASQ,QAEhB5J,IAAIwE,KAAK,CACLpB,IAAKpD,IAAIqD,IAAI,YAAY,EACzBC,KAAM,OACNhD,KAAM8I,EACNtG,QAAS,CAACkH,gBAAiBxI,SAASqI,IAAK,EACzCtG,QAAS,SAAUjD,EAAMyD,EAAYkG,GACjCjB,EAAKhB,KAAK,EACVzE,EAAQ2B,KAAK,EACb,GAAItG,cAAcK,iBAAkB,CAChC0J,GAAG,OAAQ,QAAS,mBAAoB,wBAAyBzI,SAASsB,SAASqI,IAAI,EACvFlB,GAAG,OAAQ,QAAS,mBAAoB,iBAAkBzI,SAASsB,SAASqI,IAAI,EAChFK,KAAKpJ,KAAK,CAAC,SAAU,eAAe,EACpCyH,SAAS4B,gBAAgB1B,kBAAkBC,MAAM,CACrD,CACJ,EACA7E,MAAO,SAAUoG,EAAKG,EAAQC,GAC1BtF,EAAMG,KAAK,EACN+C,KAAK,qbAAqb,EAC/bM,SAAS+B,cAAc7B,kBAAkBC,MAAM,CACnD,CACJ,CAAC,CACL,CAAC,CAEL,CAAC,GAGA,SAAStI,GACN,aAEAA,EAAEmK,GAAGC,UAAY,SAASC,GAEtB,OAAOrD,KAAKb,KAAK,WAEb,GAAGnG,EAAEgH,IAAI,EAAEsD,SAAS,EAAExJ,QAAU,EAAG,CAE/B,MACJ,CAEA,IAAIyJ,EAAM,GAGVA,EAAIvD,KAAOhH,EAAEgH,IAAI,EACjBuD,EAAIhE,KAAOgE,EAAIvD,KAAKT,KAAK,EACzBgE,EAAIC,UAAYD,EAAIhE,KAAKzF,OACzByJ,EAAIE,MAAQF,EAAIhE,KAAKmE,MAAM,GAAG,EAC9BH,EAAII,UAAYJ,EAAIE,MAAM3J,OAC1ByJ,EAAIF,QAAWA,IAAY3F,UAAa2F,EAAU,CAACO,aAAa,CAAC,EAEjE,IAAIC,EAAY,WAEZ,IAAIC,EAAWP,EAAIE,MAEnB,IAAK,IAAI5J,EAAE,EAAGkK,EAAIR,EAAII,UAAW9J,EAAIkK,EAAGlK,CAAC,GAAI,CAEzC,GAAIA,GAAK0J,EAAII,UAAYJ,EAAIF,QAAQO,aAAc,CAC/CE,EAASE,OAAOnK,EAAG,EAAG,uBAAuB,CACjD,CAEA,GAAKA,GAAK0J,EAAII,UAAY,CACtBG,EAASpK,KAAK,SAAS,CAC3B,CAEJ,CAEA,OAAOoK,EAASG,KAAK,GAAG,CAE5B,EAEAV,EAAIvD,KAAKa,KAAMgD,EAAU,CAAE,CAE/B,CAAC,CAEL,EAEA7K,EAAE,iBAAiB,EAAEoK,UAAU,CAC3BQ,aAAc,CAClB,CAAC,CAEL,GAAE1I,MAAO,EAETlC,EAAE,QAAQ,EAAEkL,GAAG,QAAS,SAASC,GAC7BA,EAAG/D,eAAe,CACtB,CAAC,GACA,SAAUpH,GACP,aAEA,IAAIoL,EAAO7M,OAAO6C,SAASgK,KAC3B,GAAGA,GAAQA,EAAKtK,OAAS,EAAG,CACxB,IAAIuK,EAAMrL,EAAE,0BAA4BoL,EAAO,IAAI,EAEnD,GAAGC,EAAIvK,QAAU,EAAG,CAChBuK,EAAIA,IAAI,MAAM,CAClB,CACJ,CAEArL,EAAE,iBAAiB,EAAEkL,GAAG,eAAgB,SAAUhE,GAC9C,IAAIoE,EAASpE,EAAEoE,OACf,IAAIC,EAAUD,EAAOF,KACrB,GAAGI,QAAQC,aAAc,CACrBD,QAAQC,aAAa,KAAM,KAAMF,CAAO,CAC5C,CACJ,CAAC,CAEL,GAAErJ,MAAO,EACTlC,EAAE,WACA,aAEA,IAAIgD,EAAMzE,OAAO6C,SAASqH,SAC1B,IAAIiD,EAAa1I,EAAI2I,UAAU3I,EAAI4I,YAAY,GAAG,EAAI,CAAC,EACnD5L,EAAE,iBAAiB,EAAEmG,KAAK,WACtB,IAAI0F,EAAW7E,KAAKyC,KAAKkC,UAAU3E,KAAKyC,KAAKmC,YAAY,GAAG,EAAI,CAAC,EAEjE,GAAIF,EAAWI,YAAY,GAAKD,EAASC,YAAY,EAAG,CACpD9L,EAAEgH,IAAI,EAAEM,SAAS,QAAQ,CAC7B,CACJ,CAAC,CACP,CAAC,GACA,SAAUtH,GACP,aAEAA,EAAE,WACEA,EAAE,sBAAsB,EAAE+L,KAAK,qCAAqC,CACxE,CAAC,CAEL,GAAE7J,MAAO,GACR,SAAUlC,GACP,aAEAA,EAAEgM,QAAQ,CACNC,oBAAqB,UACrBC,aACF,4CACE,2DACG,+CACA,0CACA,6CACA,sCACA,+CACA,6CACA,0JACA,0JACA,0JACH,YACF,QACF,CAAC,CACL,GAAEhK,MAAO,EAET3D,OAAO4N,sBAAwB,KAC/B5N,OAAOgK,GAAKhK,OAAOgK,IAAM,YAAeA,GAAG6D,EAAI7D,GAAG6D,GAAK,IAAI1L,KAAK2L,SAAS,CAAG,EAAG9D,GAAGwC,EAAI,CAAC,IAAI1H,KAC3FkF,GAAG,SAAU,gBAAiB,OAAQ,CAAE+D,aAAgB,gBAAiB,CAAC,EAC1E/D,GAAG,MAAO,sBAAuB,IAAI,EAErC,GAAG,CAAChK,OAAOgO,2BAA4B,CACnChE,GAAG,UAAW,mBAAoB,CAAEiE,qBAAsB,CAAE,CAAC,CACjE,CAEAjE,GAAG,UAAW,sBAAuB,CACjCkE,OAAQ,CAAC,QAAS,eAClBC,wBAAyB,SAAUC,EAAMC,GACrC,IAAInD,EAAOkD,EAAKE,aAAa,MAAM,GAAKF,EAAKE,aAAa,YAAY,EACtE,IAAI7J,EAAM4J,EAASnD,CAAI,EACvB,IAAIqD,EAAa,CAAC9J,EAAI3B,SAASO,MAAM,4BAA4B,EACjE,OAAOoB,EAAI3B,UAAYD,SAASC,UAAY2B,EAAI+J,SAASC,MAAM,EAAG,CAAC,GAAK,QAAUF,CACtF,CACJ,CAAC,EACDvE,GAAG,MAAO,YAAa,QAAQ,EAC/BA,GAAG,OAAQ,UAAU,EAIrBhK,OAAO0O,UAAY1O,OAAO0O,WAAa,GACvC,SAASC,OAAOD,UAAUvM,KAAK2L,SAAS,CAAE,CAC1Ca,KAAK,KAAM,IAAI7J,IAAM,EAErB6J,KAAK,SAAU,cAAc,EAE7B,GAAG1O,cAAcK,iBAAiB,CAE9B,IAAIsO,WAAa,SAAUnK,GACvBhC,WAAW,WACP,IAAI+H,EAAIjJ,SAAUsN,EAAIrE,EAAEsE,qBAAqB,QAAQ,EAAE,GACnDC,EAAIvE,EAAEwE,cAAc,QAAQ,EAChCD,EAAEpK,KAAO,kBAAmBoK,EAAEE,MAAQ,KAAMF,EAAEG,IAAMzK,EACpDoK,EAAEM,WAAWC,aAAaL,EAAGF,CAAC,CAClC,EAAG,CAAC,CACR,EAIAD,WAAW,yCAAyC,EACpDA,WAAW,+DAA+D,EAI1EA,WAAW,oDAAoD,EAG/D5O,OAAOuL,KAAOvL,OAAOuL,MAAQ,GAC7BvL,OAAOqP,KAAOrP,OAAOqP,MAAQ,2CAC7BT,WAAW,0BAA0B,EACrCA,WAAW,6BAA+BS,KAAO,OAAO,EAExDrP,OAAOsP,MAAQ,QACftP,OAAOuP,MAAQ,SACf,WACI,SAASC,IACL,IAAIT,EAAIxN,SAASyN,cAAc,QAAQ,EAAGD,EAAEpK,KAAO,kBACnDoK,EAAEG,KAAO,UAAY3N,SAASsB,SAAS2L,SAAW,aAAe,cAAgB,oBACjF,IAAIiB,EAAIlO,SAASuN,qBAAqB,QAAQ,EAAE,GAAIW,EAAEN,WAAWC,aAAaL,EAAGU,CAAC,CACtF,CACA,GAAIzP,OAAO0P,YAAa,CAAE1P,OAAO0P,YAAY,SAAUF,CAAU,CAAG,KAC/D,CAAExP,OAAO2P,iBAAiB,OAAQH,EAAY,KAAK,CAAG,CAC9D,GAAE,EAEH,GAAIxP,OAAO4P,gBAAiB,CACxB,IAAIC,MAAQ,IAAID,gBAAgBrO,SAASsB,SAASiN,MAAM,EACxD,IAAIC,OAASF,MAAMG,IAAI,YAAY,EACnC,GAAID,SAAW,QAAUA,SAAW,MAAO,CACvC,IAAIb,IAAMW,MAAMG,IAAI,YAAY,EAChC,IAAIC,SAAWJ,MAAMG,IAAI,cAAc,EACvCd,KAAO3D,KAAKpJ,KAAK,CAAC,SAAU4N,OAAS,WAAab,IAAI,EACtDe,UAAY1E,KAAKpJ,KAAK,CAAC,SAAU4N,OAAS,aAAeE,SAAS,CACtE,CACJ,CACJ,CAGA,IAAIC,kBAAoB,SAAUC,EAAMC,GACpCC,wBAAwBD,CAAI,EAC5B,GAAI,OAAOpG,KAAO,aAAeA,GAAGC,OAAQ,CACxCD,GAAG,OAAQ,QAAS,mBAAoBoG,EAAM,CAC1CE,UAAa,SACbC,YAAe,WAAchP,SAASsB,SAAWsN,EAAKjF,IAAM,CAChE,CAAC,CACL,KAAO,CACH3J,SAASsB,SAAWsN,EAAKjF,IAC7B,CACJ,EAEA,IAAImF,wBAA0B,SAASD,GACnC,OAAQA,GACJ,IAAK,4CACL,IAAK,2CACL,IAAK,2CACL,IAAK,iEACDxG,SAAS4G,cAAcC,0BAA0BC,MAAM,EACvD,MACJ,IAAK,mCACD9G,SAAS4G,cAAcC,0BAA0BE,MAAM,EACvD,KACN,CACN,EAGA,MAAM7G,kBAAoB,CACtBC,OAAQ,SACR6G,OAAQ,SACZ,EAEA,MAAMH,0BAA4B,CAC9BE,OAAQ,SACRD,OAAQ,QACZ,EAEA,MAAMG,YAAc,CAChBC,wBAAyB,4BACzBC,aAAc,gBAClB,EAGA,IAAInH,SAAW,WAGV,IAAIoH,EAAgB,SAAUC,EAAWC,GACtC,GAAGjR,cAAcK,iBAAiB,CAC9BqO,KAAK,QAASsC,EAAWC,CAAU,CACvC,CACH,EAGA,IAAIC,EAAO,CAKR3F,gBAAiB,SAAS1B,GACtB,IAAIoH,EAAa,CACbE,oBAAuBtH,CAC3B,EACAkH,EAAc,oBAAqBE,CAAU,CACjD,EAMAvF,cAAe,SAAS7B,GACpB,IAAIoH,EAAa,CACbE,oBAAuBtH,CAC3B,EACAkH,EAAc,kBAAmBE,CAAU,CAC/C,EAMArH,qBAAsB,SAASC,GAC3B,IAAIoH,EAAa,CACbE,oBAAuBtH,CAC3B,EACAkH,EAAc,0BAA2BE,CAAU,CACvD,EAMA/G,qBAAsB,SAASL,GAC3B,IAAIoH,EAAa,CACbE,oBAAuBtH,CAC3B,EACAkH,EAAc,0BAA2BE,CAAU,CACtD,EASAG,eAAgB,SAAUR,EAAaS,EAAoBC,EAAwBC,GAC/E,IAAIN,EAAa,CACbO,aAAgBZ,EAChBa,oBAAuBJ,EACvBK,iBAAoBJ,EACpBK,kBAAqBJ,CACzB,EACAR,EAAc,kBAAmBE,CAAU,CAC/C,EAUAW,qBAAsB,SAAUhB,EAAaS,EAAoBC,EAAwBC,EAAUM,GAC/F,IAAIZ,EAAa,CACbO,aAAgBZ,EAChBa,oBAAuBJ,EACvBK,iBAAoBJ,EACpBK,kBAAqBJ,EACrBO,eAAkBD,CACtB,EACAd,EAAc,yBAA0BE,CAAU,CACtD,EAUAc,mBAAoB,SAAUnB,EAAaS,EAAoBC,EAAwBC,EAAUM,GAC7F,IAAIZ,EAAa,CACbO,aAAgBZ,EAChBa,oBAAuBJ,EACvBK,iBAAoBJ,EACpBK,kBAAqBJ,EACrBO,eAAkBD,CACtB,EACAd,EAAc,uBAAwBE,CAAU,CACpD,EAQDe,qBAAsB,SAASC,EAAOC,EAAcC,GAChD,IAAIlB,EAAa,CACbgB,MAASA,EACTG,cAAiBF,EACjBG,SAAYF,CAChB,EACApB,EAAc,0BAA2BE,CAAU,CACvD,EAMAqB,eAAgB,SAASH,GACrB,IAAIlB,EAAa,CACboB,SAAYF,CAChB,EACApB,EAAc,qBAAsBE,CAAU,CAClD,EAKAsB,gBAAiB,WACbxB,EAAc,mBAAmB,CACrC,EAOAyB,uBAAwB,SAASC,EAAUN,GACvC,IAAIlB,EAAa,CACbyB,UAAaD,EACbJ,SAAYF,CAChB,EACApB,EAAc,2BAA4BE,CAAU,CACxD,EAMA0B,uBAAwB,SAASF,EAAUN,GACvC,IAAIlB,EAAa,CACbyB,UAAaD,EACbJ,SAAYF,CAChB,EACApB,EAAc,2BAA4BE,CAAU,CACxD,EAMA2B,qBAAsB,SAASH,EAAUN,GACrC,IAAIlB,EAAa,CACbyB,UAAaD,EACbJ,SAAYF,CAChB,EACApB,EAAc,yBAA0BE,CAAU,CACtD,EAQA4B,sBAAuB,SAASV,EAASW,EAAUb,GAC/C,IAAIhB,EAAa,CACboB,SAAYF,EACZY,UAAaD,EACbb,MAASA,CACb,EACAlB,EAAc,2BAA4BE,CAAU,CACxD,EAKA+B,wBAAyB,SAASC,GAC9B,IAAIhC,EAAa,CACbiC,YAAeD,CACnB,EACAlC,EAAc,6BAA8BE,CAAU,CAC1D,EAOAkC,kBAAmB,SAASC,EAASjB,GACjC,IAAIlB,EAAa,CACboC,UAAaD,EACbf,SAAYF,CAChB,EACApB,EAAc,sBAAuBE,CAAU,CACnD,EAKAV,cAAe,SAAS+C,GAEpB,IAAIrC,EAAa,CACbsC,yBAA4BD,CAChC,EAEAvC,EAAc,kBAAmBE,CAAU,CAC/C,CACH,EAEA,OAAOC,CACZ,EAAE"}