CINXE.COM

Configuring custom database maintenance | Invicti

<!doctype html> <html lang="en-US"> <head> <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="zd-site-verification" content="zbchuxl9kjemdkdydvjh49" /> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> <title>Configuring custom database maintenance | Invicti</title> <meta name="description" content="Learn how to disable automatic database maintenance and configure your own custom database schedule using the SQL Server Agent." /> <link rel="canonical" href="https://www.invicti.com/support/custom-db-maintenance/" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Configuring custom database maintenance | Invicti" /> <meta property="og:description" content="Learn how to disable automatic database maintenance and configure your own custom database schedule using the SQL Server Agent." /> <meta property="og:url" content="https://www.invicti.com/support/custom-db-maintenance/" /> <meta property="og:site_name" content="Invicti" /> <meta property="article:published_time" content="2023-10-27T14:07:56+00:00" /> <meta property="article:modified_time" content="2024-10-23T13:01:53+00:00" /> <meta property="og:image" content="https://lh7-us.googleusercontent.com/JMJXEKW8rs1EgfXb6kMKIe9dfTEMSdKWhNmIsMtrSGgaVn31M7SEjQRXMt87-SglhAFexTkZta4n9ZIIC6YtUVziKVgqTwnLpFDGk0Sa3qW_ZWj4MQHSUk8dM8ykzW33xo0_3kceqQO_wg85mSvS6FI" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:label1" content="Est. reading time" /> <meta name="twitter:data1" content="3 minutes" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://www.invicti.com/support/custom-db-maintenance/","url":"https://www.invicti.com/support/custom-db-maintenance/","name":"Configuring custom database maintenance | Invicti","isPartOf":{"@id":"https://www.invicti.com/#website"},"primaryImageOfPage":{"@id":"https://www.invicti.com/support/custom-db-maintenance/#primaryimage"},"image":{"@id":"https://www.invicti.com/support/custom-db-maintenance/#primaryimage"},"thumbnailUrl":"https://lh7-us.googleusercontent.com/JMJXEKW8rs1EgfXb6kMKIe9dfTEMSdKWhNmIsMtrSGgaVn31M7SEjQRXMt87-SglhAFexTkZta4n9ZIIC6YtUVziKVgqTwnLpFDGk0Sa3qW_ZWj4MQHSUk8dM8ykzW33xo0_3kceqQO_wg85mSvS6FI","datePublished":"2023-10-27T14:07:56+00:00","dateModified":"2024-10-23T13:01:53+00:00","description":"Learn how to disable automatic database maintenance and configure your own custom database schedule using the SQL Server Agent.","breadcrumb":{"@id":"https://www.invicti.com/support/custom-db-maintenance/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://www.invicti.com/support/custom-db-maintenance/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://www.invicti.com/support/custom-db-maintenance/#primaryimage","url":"https://lh7-us.googleusercontent.com/JMJXEKW8rs1EgfXb6kMKIe9dfTEMSdKWhNmIsMtrSGgaVn31M7SEjQRXMt87-SglhAFexTkZta4n9ZIIC6YtUVziKVgqTwnLpFDGk0Sa3qW_ZWj4MQHSUk8dM8ykzW33xo0_3kceqQO_wg85mSvS6FI","contentUrl":"https://lh7-us.googleusercontent.com/JMJXEKW8rs1EgfXb6kMKIe9dfTEMSdKWhNmIsMtrSGgaVn31M7SEjQRXMt87-SglhAFexTkZta4n9ZIIC6YtUVziKVgqTwnLpFDGk0Sa3qW_ZWj4MQHSUk8dM8ykzW33xo0_3kceqQO_wg85mSvS6FI"},{"@type":"BreadcrumbList","@id":"https://www.invicti.com/support/custom-db-maintenance/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.invicti.com/"},{"@type":"ListItem","position":2,"name":"Support","item":"https://www.invicti.com/support/"},{"@type":"ListItem","position":3,"name":"Settings","item":"https://www.invicti.com/support/category/settings/"},{"@type":"ListItem","position":4,"name":"Configuring custom database maintenance"}]},{"@type":"WebSite","@id":"https://www.invicti.com/#website","url":"https://www.invicti.com/","name":"Invicti","description":"Web Application and API Security For Enterprise","publisher":{"@id":"https://www.invicti.com/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://www.invicti.com/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@context":"http://schema.org","@type":"Organization","name":"Invicti","logo":"https://cdn.invicti.com/branding/invicti-logo-black.svg","image":"https://cdn.invicti.com/branding/invicti-logo-black.svg","telephone":["+1 737-263-3333"],"email":"contact@invicti.com","url":"https://www.invicti.com","sameAs":["https://facebook.com/Invicti-Security-100090617259790/","https://twitter.com/InvictiSecurity","https://www.linkedin.com/company/invicti-security"],"address":{"@type":"PostalAddress","streetAddress":"1000 N Lamar Blvd Suite 300","addressLocality":"Austin","addressRegion":"Texas","addressCountry":"United States","postalCode":"78703"}}]}</script> <link rel='dns-prefetch' href='//www.invicti.com' /> <link rel='dns-prefetch' href='//www.googletagmanager.com' /> <link rel='stylesheet' id='docembdr-css' href='https://www.invicti.com/app/plugins/docembdr/css/docembdr.css?ver=1739374547' type='text/css' media='all' /> <style id='classic-theme-styles-inline-css' type='text/css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css' type='text/css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <meta name="generator" content="Site Kit by Google 1.136.0" /><meta name="google-site-verification" content="ceMUxhM6CVvCVJcqefKlgIRfKWEkgktxWLDpqhgSIkM"> <!-- Google Tag Manager snippet added by Site Kit --> <script type="text/javascript"> /* <![CDATA[ */ ( function( w, d, s, l, i ) { w[l] = w[l] || []; w[l].push( {'gtm.start': new Date().getTime(), event: 'gtm.js'} ); var f = d.getElementsByTagName( s )[0], j = d.createElement( s ), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore( j, f ); } )( window, document, 'script', 'dataLayer', 'GTM-M7R7MXJ' ); /* ]]> */ </script> <!-- End Google Tag Manager snippet added by Site Kit --> <link rel="icon" href="https://cdn.invicti.com/app/uploads/2022/03/08125959/cropped-favicon-32x32.png" sizes="32x32" /> <link rel="icon" href="https://cdn.invicti.com/app/uploads/2022/03/08125959/cropped-favicon-192x192.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://cdn.invicti.com/app/uploads/2022/03/08125959/cropped-favicon-180x180.png" /> <meta name="msapplication-TileImage" content="https://cdn.invicti.com/app/uploads/2022/03/08125959/cropped-favicon-270x270.png" /> <style id="theme-css-assets">/*! tailwindcss v3.0.18 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e5e5;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#a3a3a3;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}.container-small{margin-left:auto;margin-right:auto}@media (min-width:1200px){.container-small{margin-top:6.25rem;padding-left:375px;padding-right:375px;width:100%}@media (min-width:992px){.container-small{margin-top:0;padding-left:5rem;padding-right:5rem}}.container-small{max-width:1100px!important}}*,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{margin-left:auto;margin-right:auto;padding-left:25px;padding-right:25px;width:100%}@media (min-width:100%){.container{max-width:100%;padding-left:25px;padding-right:25px}}@media (min-width:1380px){.container{max-width:1380px;padding-left:30px;padding-right:30px}}@media (min-width:1460px){.container{max-width:1460px;padding-left:30px;padding-right:30px}}@media (min-width:1560px){.container{max-width:1560px;padding-left:30px;padding-right:30px}}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.top-10{top:.625rem}.left-10{left:.625rem}.isolate{isolation:isolate}.z-\[99\]{z-index:99}.order-2{order:2}.col-span-9{grid-column:span 9/span 9}.mb-10{margin-bottom:.625rem}.mb-60{margin-bottom:3.75rem}.mt-6{margin-top:.375rem}.mt-32{margin-top:2rem}.mb-32{margin-bottom:2rem}.mt-20{margin-top:1.25rem}.mt-15{margin-top:.9375rem}.mb-34{margin-bottom:2.125rem}.mt-10{margin-top:.625rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-\[36px\]{height:36px}.h-48{height:3rem}.min-h-screen{min-height:100vh}.w-1\/5{width:20%}.w-1\/4{width:25%}.w-1\/3{width:33.333333%}.w-2\/5{width:40%}.w-2\/4{width:50%}.w-3\/5{width:60%}.w-2\/3{width:66.666667%}.w-3\/4{width:75%}.w-4\/5{width:80%}.w-10\/12{width:83.333333%}.w-11\/12{width:91.666667%}.w-full{width:100%}.w-48{width:3rem}.w-1\/2{width:50%}.grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-4{gap:.25rem}.gap-20{gap:1.25rem}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.3125rem*var(--tw-space-y-reverse));margin-top:calc(.3125rem*(1 - var(--tw-space-y-reverse)))}.self-center{align-self:center}.overflow-hidden{overflow:hidden}.rounded-sm{border-radius:.125rem}.rounded{border-radius:.25rem}.rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.border{border-width:1px}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 229 229/var(--tw-border-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-primary-invictipurple{--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity))}.bg-secondary-darkpurple{--tw-bg-opacity:1;background-color:rgb(60 16 83/var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 229 229/var(--tw-bg-opacity))}.bg-neutral-bone,.bg-sky{--tw-bg-opacity:1;background-color:rgb(250 249 247/var(--tw-bg-opacity))}.bg-dark{--tw-bg-opacity:1;background-color:rgb(16 24 32/var(--tw-bg-opacity))}.bg-nsgray{--tw-bg-opacity:1;background-color:rgb(99 101 105/var(--tw-bg-opacity))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.fill-dark{fill:#101820}.p-10{padding:.625rem}.px-16{padding-left:1rem;padding-right:1rem}.px-0{padding-left:0;padding-right:0}.px-15{padding-left:.9375rem;padding-right:.9375rem}.py-18{padding-bottom:1.125rem;padding-top:1.125rem}.pt-20{padding-top:1.25rem}.pb-10{padding-bottom:.625rem}.pt-40{padding-top:2.5rem}.text-center{text-align:center}.font-circular{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif}.text-\[13px\]{font-size:13px}.text-h-xs{font-size:2rem}.text-h-sm{font-size:2.125rem}.text-h-md{font-size:2.25rem}.text-h-lg{font-size:2.375rem}.text-h-xl{font-size:2.5rem}.text-h-2xl{font-size:2.625rem}.text-h-3xl{font-size:2.75rem}.text-h-4xl{font-size:2.875rem}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.375rem}.text-3xl{font-size:1.5rem}.text-4xl{font-size:1.625rem}.text-5xl{font-size:1.75rem}.text-6xl{font-size:1.875rem}.font-medium{font-weight:500}.font-bold{font-weight:700}.lowercase{text-transform:lowercase}.italic{font-style:italic}.text-gray-500{--tw-text-opacity:1;color:rgb(115 115 115/var(--tw-text-opacity))}.text-red-900{--tw-text-opacity:1;color:rgb(136 19 55/var(--tw-text-opacity))}.text-primary-invictipurple{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity))}.text-dark{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity))}.text-nsgray{--tw-text-opacity:1;color:rgb(99 101 105/var(--tw-text-opacity))}.text-customcolors-32{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.opacity-80{opacity:.8}.shadow-sm{--tw-shadow:0 0.0625rem 0.125rem 0 rgba(0,0,0,0.05);--tw-shadow-colored:0 0.0625rem 0.125rem 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.blur{--tw-blur:blur(8px)}.blur,.grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale:grayscale(100%)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-500{transition-duration:.5s}.hover\:border-secondary-darkpurple:hover{--tw-border-opacity:1;border-color:rgb(60 16 83/var(--tw-border-opacity))}.hover\:text-secondary-darkpurple:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.hover\:text-dark:hover{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.hover\:opacity-80:hover{opacity:.8}.hover\:transition-opacity:hover{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (min-width:576px){.sm\:block{display:block}.sm\:hidden{display:none}.sm\:w-full{width:100%}}@media (min-width:767px){.md\:ml-15{margin-left:.9375rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-1\/5{width:20%}.md\:w-1\/4{width:25%}.md\:w-1\/3{width:33.333333%}.md\:w-2\/5{width:40%}.md\:w-2\/4{width:50%}.md\:w-3\/5{width:60%}.md\:w-2\/3{width:66.666667%}.md\:w-3\/4{width:75%}.md\:w-4\/5{width:80%}.md\:w-10\/12{width:83.333333%}.md\:w-11\/12{width:91.666667%}.md\:w-full{width:100%}.md\:w-6\/12{width:50%}.md\:flex-row{flex-direction:row}.md\:px-25{padding-left:1.5625rem;padding-right:1.5625rem}.md\:pr-15{padding-right:.9375rem}.md\:pl-15{padding-left:.9375rem}.md\:text-sm{font-size:.875rem}}@media (min-width:769px){.md2\:block{display:block}.md2\:hidden{display:none}}@media (min-width:992px){.lg\:order-2{order:2}.lg\:mt-60{margin-top:3.75rem}.lg\:mb-60{margin-bottom:3.75rem}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:w-1\/5{width:20%}.lg\:w-1\/4{width:25%}.lg\:w-1\/3{width:33.333333%}.lg\:w-2\/5{width:40%}.lg\:w-2\/4{width:50%}.lg\:w-3\/5{width:60%}.lg\:w-2\/3{width:66.666667%}.lg\:w-3\/4{width:75%}.lg\:w-4\/5{width:80%}.lg\:w-10\/12{width:83.333333%}.lg\:w-11\/12{width:91.666667%}.lg\:w-full{width:100%}.lg\:w-7\/12{width:58.333333%}.lg\:w-5\/12{width:41.666667%}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:gap-10{gap:.625rem}.lg\:px-0{padding-left:0;padding-right:0}}@media (min-width:1200px){.xl\:block{display:block}.xl\:hidden{display:none}.xl\:pt-60{padding-top:3.75rem}}@media (min-width:1400px){.\32xl\:block{display:block}.\32xl\:hidden{display:none}}@media (min-width:1620px){.\33xl\:block{display:block}.\33xl\:hidden{display:none}} :root{--color-nsblue-default:#591769;--color-nsblue-dark:#3c1053;--color-nsblue-lightest:#faf9f7;--color-sky-default:#faf9f7;--color-sky-light:#faf9f7;--color-sky-lightest:#faf9f7;--color-nsgray-default:#636569;--color-nsgray-lightest:#faf9f7;--color-nsdark:#101820;--color-acunetix:#fa4216;--color-blue:#591769;--color-dark-blue:#3c1053;--color-dark:#101820;--body-font:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;--heading-font:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;--box-shadow-1:0 3px 15px 0 rgb(0 0 0/10%);--box-shadow-2:0 5px 50px -1px rgb(0 0 0/5%);--color-entrycontent-default:#636569;--color-entrycontent-heading:#101820;--color-entrycontent-light:#636569;--color-sky-more:#cc8bdb;--color-nsblue-medium:#7a2582;--color-customcolors-1:#d9d8d6;--color-customcolors-2:#fff;--color-customcolors-3:#3c1053;--color-customcolors-4:#636569;--color-customcolors-5:#3c1053;--color-customcolors-6:#faf9f7;--color-customcolors-7:#636569;--color-customcolors-8:#b1b1b2;--color-customcolors-9:#636569;--color-customcolors-10:#b1b1b2;--color-customcolors-11:#b1b1b2;--color-customcolors-12:#faf9f7;--color-customcolors-13:#d73829;--color-customcolors-14:#faf9f7;--color-customcolors-15:#b1b1b2;--color-customcolors-16:#f15d2a;--color-customcolors-17:#636569;--color-customcolors-18:#f15d2a;--color-customcolors-19:#faf9f7;--color-customcolors-20:#cc8bdb;--color-customcolors-21:#ff8001;--color-customcolors-22:#cc8bdb;--color-customcolors-23:#f15d2a;--color-customcolors-24:#636569;--color-customcolors-25:#d9d8d6;--color-customcolors-26:#b1b1b2;--color-customcolors-27:#636569;--color-customcolors-28:#d9d8d6;--color-customcolors-29:#b1b1b2;--color-customcolors-30:rgba(8,49,126,0);--color-customcolors-31:#fff;--color-customcolors-32:#fff;--color-customcolors-33:#cc8bdb;--color-customcolors-34:#636569;--color-customcolors-35:#b1b1b2;--color-customcolors-36:#faf9f7;--color-customcolors-37:invert(43%) sepia(32%) saturate(1361%) hue-rotate(245deg) brightness(91%) contrast(67%);--color-customcolors-38:#faf9f7;--color-customcolors-39:#faf9f7;--color-customcolors-40:#faf9f7;--color-customcolors-41:#faf9f7;--color-customcolors-42:#3c1053;--color-customcolors-43:#2c51bd;--color-customcolors-44:#636569;--color-customcolors-45:#101820;--color-customcolors-46:rgba(204,139,219,0.05);--color-primary-invictipurple:#591769;--color-secondary-darkpurple:#3c1053;--color-secondary-mediumpurple:#7a2582;--color-secondary-mauve:#a35eb4;--color-secondary-lightmauve:#cc8bdb;--color-secondary-magenta:#c554d0;--color-secondary-grape:#422991;--color-secondary-softpurple:#fdfafe;--color-secondary-periwinkle:#5d40bd;--color-neutral-invictiblack:#101820;--color-neutral-darkgray:#636569;--color-neutral-mediumgray:#b1b1b2;--color-neutral-lightgray:#d9d8d6;--color-neutral-bone:#faf9f7;--color-accent-darkred:#910710;--color-accent-darkorange:#d73829;--color-accent-brightorange:#f15d2a;--color-accent-lightorange:#ff8001;--color-accent-darkblue:#202b7b;--color-accent-mediumblue:#2c51bd;--color-accent-brightblue:#06aeef;--color-accent-lightblue:#05d5ff;--color-gradient-purple:linear-gradient(90deg,#3c1053,#7a2582);--color-gradient-purple-reverse:linear-gradient(90deg,#7a2582,#3c1053);--color-gradient-purple-radial:radial-gradient(circle,#3c1053 0%,#7a2582 100%);--color-gradient-purple-radial-reverse:radial-gradient(circle,#7a2582 0%,#3c1053 100%);--color-gradient-darksteel:linear-gradient(90deg,#101820,#636569);--color-gradient-darksteel-reverse:linear-gradient(90deg,#636569,#101820);--color-gradient-darksteel-radial:radial-gradient(circle,#101820 0%,#636569 100%);--color-gradient-darksteel-radial-reverse:radial-gradient(circle,#636569 0%,#101820 100%);--font-weight-thin:100;--font-weight-extralight:200;--font-weight-light:300;--font-weight-regular:400;--font-weight-book:450;--font-weight-medium:500;--font-weight-semibold:500;--font-weight-bold:700;--font-weight-extrabold:900;--font-weight-black:900;--font-weight-extrablack:950}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:normal;font-weight:950;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-ExtraBlack.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:italic;font-weight:950;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-ExtraBlackItalic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:normal;font-weight:900;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-Black.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:italic;font-weight:900;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-BlackItalic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:normal;font-weight:700;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-Bold.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:italic;font-weight:700;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-BoldItalic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:normal;font-weight:500;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-Medium.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:italic;font-weight:500;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-MediumItalic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:normal;font-weight:450;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-Book.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:italic;font-weight:450;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-BookItalic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:normal;font-weight:400;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-Regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:italic;font-weight:400;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-Italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:normal;font-weight:300;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-Light.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:italic;font-weight:300;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-LightItalic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:normal;font-weight:100;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-Thin.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:italic;font-weight:100;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-ThinItalic.woff2) format("woff2")}*,:after,:before{word-wrap:break-word;box-sizing:border-box;overflow-wrap:break-word}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;scroll-behavior:smooth}body{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));font-weight:400;min-height:100vh}@media (min-width:576px){body{font-size:1rem}}@media (min-width:769px){body{font-size:1.25rem}}pre{overflow:auto}img,video{min-width:1px}.block-editor-writing-flow{font-size:1rem;line-height:1.5}.site-main{margin-bottom:3rem;margin-top:3rem}.content{min-height:calc(100vh - var(--add-height, 50vh));overflow-x:clip}.content .wp-block-quote.is-style-default{--tw-border-opacity:1;border-color:rgb(204 139 219/var(--tw-border-opacity))}address,blockquote,dl,iframe,ol,pre,table,ul{margin-bottom:1rem}a{--tw-text-opacity:1;color:rgb(122 37 130/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif}a.sm{font-size:.75rem}a.md{font-size:16px}a.xl{font-size:1.25rem;font-weight:700}@media (min-width:767px){a.xl{font-size:1.5rem}}a svg{display:inline-block}a:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.block-padding-large{padding-bottom:3.125rem;padding-top:3.125rem}@media (min-width:769px){.block-padding-large{padding-bottom:6.25rem;padding-top:6.25rem}}.block-bg-light-gary,.block-bg-sk{--tw-bg-opacity:1;background-color:rgb(250 249 247/var(--tw-bg-opacity))}.block-bg-nsblue,.block-bg-primary-invictipurple{--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity))}.block-bg-secondary-darkpurple{--tw-bg-opacity:1;background-color:rgb(60 16 83/var(--tw-bg-opacity))}.block-bg-secondary-mediumpurple{--tw-bg-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity))}.block-bg-secondary-mauve{--tw-bg-opacity:1;background-color:rgb(163 94 180/var(--tw-bg-opacity))}.block-bg-secondary-lightmauve{--tw-bg-opacity:1;background-color:rgb(204 139 219/var(--tw-bg-opacity))}.block-bg-secondary-magenta{--tw-bg-opacity:1;background-color:rgb(197 84 208/var(--tw-bg-opacity))}.block-bg-secondary-grape{--tw-bg-opacity:1;background-color:rgb(66 41 145/var(--tw-bg-opacity))}.block-bg-secondary-periwinkle{--tw-bg-opacity:1;background-color:rgb(93 64 189/var(--tw-bg-opacity))}.block-bg-secondary-softpurple{--tw-bg-opacity:1;background-color:rgb(253 250 254/var(--tw-bg-opacity))}.block-bg-neutral-invictiblack{--tw-bg-opacity:1;background-color:rgb(16 24 32/var(--tw-bg-opacity))}.block-bg-neutral-darkgray{--tw-bg-opacity:1;background-color:rgb(99 101 105/var(--tw-bg-opacity))}.block-bg-neutral-mediumgray{--tw-bg-opacity:1;background-color:rgb(177 177 178/var(--tw-bg-opacity))}.block-bg-neutral-lightgray{--tw-bg-opacity:1;background-color:rgb(217 216 214/var(--tw-bg-opacity))}.block-bg-neutral-bone{--tw-bg-opacity:1;background-color:rgb(250 249 247/var(--tw-bg-opacity))}.block-bg-accent-darkred{--tw-bg-opacity:1;background-color:rgb(145 7 16/var(--tw-bg-opacity))}.block-bg-accent-darkorange{--tw-bg-opacity:1;background-color:rgb(215 56 41/var(--tw-bg-opacity))}.block-bg-accent-brightorange{--tw-bg-opacity:1;background-color:rgb(241 93 42/var(--tw-bg-opacity))}.block-bg-accent-lightorange{--tw-bg-opacity:1;background-color:rgb(255 128 1/var(--tw-bg-opacity))}.block-bg-accent-darkblue{--tw-bg-opacity:1;background-color:rgb(32 43 123/var(--tw-bg-opacity))}.block-bg-accent-mediumblue{--tw-bg-opacity:1;background-color:rgb(44 81 189/var(--tw-bg-opacity))}.block-bg-accent-brightblue{--tw-bg-opacity:1;background-color:rgb(6 174 239/var(--tw-bg-opacity))}.block-bg-accent-lightblue{--tw-bg-opacity:1;background-color:rgb(5 213 255/var(--tw-bg-opacity))}.screen-reader-text{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.smaller-container{max-width:1024px}.small-container{max-width:1280px}.full-container{max-width:100%}.stretch-wrapper{left:50%;margin-left:-50vw;position:relative;width:100vw}.normal-vspace{padding-bottom:37px;padding-top:37px}@media (min-width:992px){.normal-vspace{padding-bottom:75px;padding-top:75px}}.small-vspace{padding-bottom:25px;padding-top:25px}@media (min-width:992px){.small-vspace{padding-bottom:50px;padding-top:50px}}.large-vspace{padding-bottom:50px;padding-top:50px}@media (min-width:992px){.large-vspace{padding-bottom:150px;padding-top:150px}}.lg-hidden{display:none}@media (min-width:992px){.lg-hidden{display:block}}.md-hidden{display:none}@media (min-width:767px){.md-hidden{display:block}}.sm-hidden{display:none}@media (min-width:576px){.sm-hidden{display:block}}.lg-break-hidden br{display:none}@media (min-width:992px){.lg-break-hidden br{display:block}}.md-break-hidden br{display:none}@media (min-width:767px){.md-break-hidden br{display:block}}.sm-break-hidden br{display:none}@media (min-width:576px){.sm-break-hidden br{display:block}}.lg-visible{display:block}@media (min-width:992px){.lg-visible{display:none}}.md-visible{display:block}@media (min-width:767px){.md-visible{display:none}}.sm-visible{display:block}@media (min-width:576px){.sm-visible{display:none}}.wp-block-image.is-style-rounded img{border-radius:50%}.alignleft{float:left;margin-bottom:1rem;margin-right:1rem}.alignright{float:right;margin-bottom:1rem;margin-left:1rem}.aligncenter{margin:1rem auto}.alignnone{margin-bottom:1rem}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;line-height:1.16}.h1,h1{font-size:1.75rem;font-weight:700;margin-bottom:2rem}@media (min-width:767px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:1.75rem;font-weight:700;margin-bottom:1.5rem}@media (min-width:769px){.h2,h2{font-size:2.25rem}}.h3,h3{font-size:1.375rem;margin-bottom:1rem}@media (min-width:767px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:1.375rem;margin-bottom:.75rem}.h5,h5{font-size:.875rem}.svg-sprite-wrapper{display:none}.btn{border-radius:.25rem;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:500;line-height:1.5rem;padding:.625rem 1.75rem;text-align:center}.btn--primary{background-color:rgb(122 37 130/var(--tw-bg-opacity));border-color:rgb(122 37 130/var(--tw-border-opacity));border-width:2px}.btn--primary,.btn--primary:hover{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.btn--primary:hover{background-color:rgb(89 23 105/var(--tw-bg-opacity));border-color:rgb(89 23 105/var(--tw-border-opacity))}.btn--primary-light{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-color:rgb(255 255 255/var(--tw-border-opacity));border-width:2px;color:rgb(16 24 32/var(--tw-text-opacity))}.btn--primary-light:hover{--tw-text-opacity:1;color:rgb(122 37 130/var(--tw-text-opacity))}.btn--secondary{background-color:rgb(255 255 255/var(--tw-bg-opacity));border-width:2px;color:rgb(89 23 105/var(--tw-text-opacity));display:inline-block}.btn--secondary,.btn--secondary:hover{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;border-color:rgb(122 37 130/var(--tw-border-opacity))}.btn--secondary:hover{background-color:rgb(122 37 130/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity))}.btn--border{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgb(122 37 130/var(--tw-border-opacity));border-width:2px;color:rgb(122 37 130/var(--tw-text-opacity))}.btn--border:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity))}.btn--border-light{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity));border-width:2px;color:rgb(255 255 255/var(--tw-text-opacity))}.btn--border-light:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));color:rgb(122 37 130/var(--tw-text-opacity))}.btn--full{display:block;width:100%}.btn--hero{display:inline-block;margin-top:1.875rem}.button{padding:1rem}input:not(.button),textarea{padding:.5rem .75rem}@media (min-width:767px){input:not(.button),textarea{padding-bottom:.625rem;padding-top:.625rem}}label{display:block;font-weight:500;margin-bottom:1rem}.search-form{position:relative;width:100%}.search-form .search-field{--tw-text-opacity:1;background-color:transparent;border-radius:.5rem;border-width:1px;color:rgb(0 0 0/var(--tw-text-opacity));padding:.75rem;width:100%}.search-form button{height:100%;padding-left:1rem;padding-right:1rem;position:absolute;right:0;text-align:center;top:0}.search-form button svg{font-size:1rem;height:1rem}.content-form{--tw-bg-opacity:1;--tw-shadow:rgb(0 0 0/15%) 0 7px 29px 0;--tw-shadow-colored:0 7px 29px 0 var(--tw-shadow-color);background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:.25rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);margin-left:auto;margin-right:auto;padding:1.75rem}@media (min-width:767px){.content-form{padding-bottom:2.875rem;padding-left:38px;padding-right:38px;padding-top:2.875rem}}@media (min-width:992px){.content-form{margin-left:0;margin-right:0;max-width:500px}}.content-form__heading{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1.25rem;font-weight:300;margin-bottom:1.875rem;text-align:center}@media (min-width:767px){.content-form__heading{font-size:2.25rem}}.ns-form>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.25rem*var(--tw-space-y-reverse));margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)))}.ns-form{text-align:center}.form-group .iti{font-size:1rem;width:100%}@media (max-width:500px){.form-group .iti .iti__country-list{min-width:80vw}}.form-group .iti__flag-container:focus{--tw-border-opacity:1;border-color:rgb(16 24 32/var(--tw-border-opacity));outline:2px solid transparent;outline-offset:2px}.form-group.optin{align-items:flex-start;display:flex;gap:.5rem;justify-content:center;margin-top:1.25rem}@media (min-width:767px){.form-group.optin{align-items:center}}.form-group.optin input{-webkit-appearance:none;appearance:none;background-color:rgb(255 255 255/var(--tw-bg-opacity));background-position:50%;background-repeat:no-repeat;background-size:contain;border-color:rgb(212 212 212/var(--tw-border-opacity));border-radius:.125rem;border-width:1px;cursor:pointer;flex:none;height:12px;margin-right:.125rem;margin-top:.1875rem;padding:0;transition-duration:.2s;transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);vertical-align:top;width:12px}.form-group.optin input,.form-group.optin input:checked{--tw-border-opacity:1;--tw-bg-opacity:1}.form-group.optin input:checked{background-color:rgb(89 23 105/var(--tw-bg-opacity));border-color:rgb(89 23 105/var(--tw-border-opacity))}.form-group.optin input:focus{outline:2px solid transparent;outline-offset:2px}@media (min-width:767px){.form-group.optin input{margin-top:.25rem}}.form-group.optin input:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3E%3C/svg%3E")}.form-group.optin label{font-size:13px!important;margin-bottom:0!important;text-align:center!important}input[type=email],input[type=number],input[type=tel],input[type=text],select,textarea{--tw-border-opacity:1;border:1px solid rgb(212 212 212/var(--tw-border-opacity));border-radius:.25rem;font-size:.875rem;font-weight:400;height:3.125rem;outline:2px solid transparent;outline-offset:2px;width:100%}input[type=email]:focus,input[type=number]:focus,input[type=tel]:focus,input[type=text]:focus,select:focus,textarea:focus{--tw-border-opacity:1;border-color:rgb(16 24 32/var(--tw-border-opacity))}input[type=email]:focus::placeholder,input[type=number]:focus::placeholder,input[type=tel]:focus::placeholder,input[type=text]:focus::placeholder,select:focus::placeholder,textarea:focus::placeholder{--tw-placeholder-opacity:1;color:rgb(163 163 163/var(--tw-placeholder-opacity))}@media (min-width:767px){input[type=email],input[type=number],input[type=tel],input[type=text],select,textarea{font-size:1rem}}textarea{height:auto}select{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));background-image:none;cursor:default;display:block;font-size:1rem;line-height:48px;margin:0;padding:0 .75rem;text-transform:none;white-space:pre;width:100%}select:focus{outline:2px solid transparent;outline-offset:2px}form .btn{padding-bottom:13px;padding-top:13px}form label.error{--tw-text-opacity:1;color:rgb(244 63 94/var(--tw-text-opacity));font-size:13.6px;font-weight:500;margin-top:.3125rem;text-align:left}form .error:not(label){--tw-border-opacity:1;--tw-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #1665fb;--tw-shadow-colored:inset 0 1px 1px var(--tw-shadow-color),0 0 6px var(--tw-shadow-color);border-color:rgb(89 23 105/var(--tw-border-opacity));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.page-pricing-data .content-form .btn{margin-left:auto;margin-right:auto;margin-top:3rem;width:auto}#pardot-err{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity));border-radius:.125rem;color:rgb(255 255 255/var(--tw-text-opacity));padding:1.25rem;text-align:left}#pardot-err h5{display:flex;font-size:.875rem;font-weight:500;gap:.3125rem;margin-bottom:.4375rem}#pardot-err p{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));font-size:.875rem;margin-bottom:.125rem}.modal{bottom:0;display:none;left:0;overflow:hidden;position:fixed;right:0;top:0;z-index:1050}.modal.modal-open{display:block;overflow-x:hidden;overflow-y:auto}.modal .modal-dialog{--tw-translate-x:-50%;--tw-translate-y:-50%;left:50%;position:absolute;top:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:auto}.modal .modal-content{--tw-bg-opacity:1;background-clip:padding-box;background-color:rgb(255 255 255/var(--tw-bg-opacity));outline:2px solid transparent;outline-offset:2px;padding:1.5rem;position:relative}.modal .modal-content .modal-header{text-align:center}.modal .modal-content .modal-body,.modal .modal-content .modal-footer{position:relative}.modal .fluid-embed embed,.modal .fluid-embed iframe,.modal .fluid-embed object{border-style:none}.close{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity));cursor:pointer;display:block;margin-top:.5rem;outline:2px solid transparent;outline-offset:2px;padding:.5rem}.site-header{--tw-bg-opacity:1;align-items:center;background-color:rgb(255 255 255/var(--tw-bg-opacity));display:flex;font-size:1.125rem;left:0;padding-bottom:.9375rem;padding-top:.9375rem;position:sticky;right:0;top:0;transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%;z-index:50}@media (min-width:767px){.site-header{padding-bottom:1.375rem;padding-top:1.375rem}}@media (min-width:992px){.site-header{font-size:1rem;padding-bottom:1.125rem;padding-top:1.125rem}}@media (min-width:1400px){.site-header{font-size:1.125rem}}@media (min-width:992px){.site-header{height:100px}.site-header>.container{align-items:center;display:flex;justify-content:space-between}}.site-header .btn-get-demo{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity));border-radius:.25rem;color:rgb(255 255 255/var(--tw-text-opacity));display:none;float:right;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1rem;font-weight:700;margin-left:.9375rem;padding:.375rem 1.125rem}.site-header .btn-get-demo:hover{--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity))}@media (min-width:767px){.site-header .btn-get-demo{display:block}}.site-header .btn-get-demo{letter-spacing:.3px}@media (min-width:992px){.site-header .btn-get-demo{height:max-content;order:3}}.site-header .mobile-logo,.site-header .sticky-logo{display:none}.site-header.no-sticky,.site-header.no-sticky .top-slogan{position:relative}.site-header.centered-logo .navigation-header{align-items:center;display:flex;flex-direction:column;justify-content:center;width:100%}.site-header.centered-logo .navigation-header .logo{height:auto;margin-left:auto;margin-right:auto;width:6.25rem}@media (min-width:767px){.site-header.centered-logo .navigation-header .logo{width:120px}}@media (min-width:992px){.site-header.centered-logo .navigation-header .logo{width:150px}}.site-header.centered-logo .navigation-header .top-slogan{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:9px;font-weight:300;text-align:center}@media (min-width:767px){.site-header.centered-logo .navigation-header .top-slogan{font-size:11px}}@media (min-width:992px){.site-header.centered-logo .navigation-header .top-slogan{font-size:14px}}.site-header.centered-logo .top-slogan{display:block}.site-header.purple-header .navigation-header .navbar-toggle-open path[fill],.site-header.transparent-header .navigation-header .navbar-toggle-open path[fill]{fill:#faf9f7}.site-header.purple-header .navigation-header .top-slogan,.site-header.purple-header .primary-menu-wrapper .primary-menu>li>a,.site-header.transparent-header .navigation-header .top-slogan,.site-header.transparent-header .primary-menu-wrapper .primary-menu>li>a{--tw-text-opacity:1;color:rgb(250 249 247/var(--tw-text-opacity))}.site-header.purple-header .primary-menu-wrapper .primary-menu>li>a:after,.site-header.transparent-header .primary-menu-wrapper .primary-menu>li>a:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%23FAF9F7'/%3E%3C/svg%3E")}.site-header.purple-header .primary-menu-wrapper .primary-menu>li:hover>a,.site-header.transparent-header .primary-menu-wrapper .primary-menu>li:hover>a{--tw-text-opacity:1;color:rgb(204 139 219/var(--tw-text-opacity))}.site-header.purple-header .primary-menu-wrapper .primary-menu>li:hover>a:after,.site-header.transparent-header .primary-menu-wrapper .primary-menu>li:hover>a:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%23CC8BDB'/%3E%3C/svg%3E")}.site-header.purple-header .btn-get-demo,.site-header.transparent-header .btn-get-demo{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(250 249 247/var(--tw-bg-opacity));color:rgb(16 24 32/var(--tw-text-opacity));transition-duration:.2s}.site-header.purple-header .btn-get-demo:hover,.site-header.transparent-header .btn-get-demo:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity));color:rgb(250 249 247/var(--tw-text-opacity))}.site-header.transparent-header{background-color:transparent;position:absolute}.site-header.purple-header{--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity))}.site-header.white-header .navbar-toggle-open path[fill]{fill:#101820}body.sticky-header:not(.mobile-menu-active) .site-header .top-logo{display:none}@media (min-width:767px){body.sticky-header:not(.mobile-menu-active) .site-header .sticky-logo{display:block}}body.sticky-header:not(.mobile-menu-active) .site-header.white-sticky-header{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}body.sticky-header:not(.mobile-menu-active) .site-header.white-sticky-header .navigation-header .navbar-toggle-open path[fill]{fill:#101820}body.sticky-header:not(.mobile-menu-active) .site-header.white-sticky-header .primary-menu-wrapper .primary-menu>li>a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity))}body.sticky-header:not(.mobile-menu-active) .site-header.white-sticky-header .primary-menu-wrapper .primary-menu>li>a:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%23101820'/%3E%3C/svg%3E")}body.sticky-header:not(.mobile-menu-active) .site-header.white-sticky-header .primary-menu-wrapper .primary-menu>li:hover>a{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity))}body.sticky-header:not(.mobile-menu-active) .site-header.white-sticky-header .primary-menu-wrapper .primary-menu>li:hover>a:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%23591769'/%3E%3C/svg%3E")}body.sticky-header:not(.mobile-menu-active) .site-header.white-sticky-header .btn-get-demo{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity));color:rgb(250 249 247/var(--tw-text-opacity));transition-duration:.2s}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header,body.sticky-header:not(.mobile-menu-active) .site-header.white-sticky-header .btn-get-demo:hover{--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity))}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header .navigation-header .sticky-header-btn{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(250 249 247/var(--tw-bg-opacity));color:rgb(89 23 105/var(--tw-text-opacity))}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header .navigation-header .navbar-toggle-open path[fill]{fill:#faf9f7}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header .primary-menu-wrapper .primary-menu>li>a{--tw-text-opacity:1;color:rgb(250 249 247/var(--tw-text-opacity))}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header .primary-menu-wrapper .primary-menu>li>a:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%23FAF9F7'/%3E%3C/svg%3E")}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header .primary-menu-wrapper .primary-menu>li:hover>a{--tw-text-opacity:1;color:rgb(163 94 180/var(--tw-text-opacity))}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header .primary-menu-wrapper .primary-menu>li:hover>a:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%23A35EB4'/%3E%3C/svg%3E")}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header .btn-get-demo{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(250 249 247/var(--tw-bg-opacity));color:rgb(16 24 32/var(--tw-text-opacity));transition-duration:.2s}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header .btn-get-demo:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity));color:rgb(250 249 247/var(--tw-text-opacity))}body:not(.sticky-header) .site-header:not(.centered-logo) .logo{margin-top:-.4375rem}body:not(.sticky-header) .site-header.transparent-header+.content>main>:first-child{padding-top:71px}@media (min-width:767px){body:not(.sticky-header) .site-header.transparent-header+.content>main>:first-child{padding-top:5rem}}@media (min-width:992px){body:not(.sticky-header) .site-header.transparent-header+.content>main>:first-child{padding-top:6.25rem}}.sticky-header-enabled .site-header{padding-bottom:1.25rem}@media (min-width:767px){.sticky-header-enabled .site-header{padding-bottom:1.875rem}}.sticky-header-enabled.sticky-header .site-header{--tw-shadow:0 1px 6px rgb(0 0 0/15%);--tw-shadow-colored:0 1px 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);padding-bottom:.625rem;padding-top:.625rem;transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (min-width:767px){.sticky-header-enabled.sticky-header .site-header{padding-bottom:.9375rem;padding-top:.9375rem}}@media (min-width:992px){.sticky-header-enabled.sticky-header .site-header{height:63px}}.sticky-header-enabled.sticky-header .site-header.transparent-header{position:fixed}.sticky-header-enabled.sticky-header .site-header .navigation-header,.sticky-header-enabled.sticky-header .site-header .primary-menu-wrapper .primary-menu li a{transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}body.pricing .site-header{border-bottom:1px solid #e8e8e9}.invicti-bar{display:none;position:relative;z-index:1}.invicti-bar .bar-close{--tw-text-opacity:1;align-items:center;color:rgb(255 255 255/var(--tw-text-opacity));cursor:pointer;display:flex;height:1.25rem;justify-content:center;position:absolute;right:1.5rem;width:1.25rem}.invicti-bar .bar-close:hover{opacity:.5}.invicti-bar .bar-close svg{height:1.125rem;width:1.125rem}.invicti-bar .transition-message{--tw-bg-opacity:1;align-items:center;background-color:rgb(122 37 130/var(--tw-bg-opacity));display:flex;flex-wrap:wrap;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1rem;font-weight:500;gap:.125rem;height:45px;justify-content:center;padding-left:1.25rem;padding-right:1.25rem}.invicti-bar .transition-message,.invicti-bar a{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));width:100%}.invicti-bar a{text-align:center}.invicti-bar a:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));-webkit-text-decoration-line:underline;text-decoration-line:underline}body.invicti-bar-active .invicti-bar{display:block}.transparent-header-active:not(.mobile-menu-active){margin-top:2.8125rem}.transparent-header-active:not(.mobile-menu-active) .invicti-bar{margin-top:-2.8125rem}.transparent-header-active:not(.mobile-menu-active) .transparent-header{top:2.8125rem}.transparent-header-active:not(.mobile-menu-active).sticky-header,.transparent-header-active:not(.mobile-menu-active).sticky-header .invicti-bar{margin-top:0}.transparent-header-active:not(.mobile-menu-active).sticky-header .transparent-header{top:0}.site-footer{--tw-bg-opacity:1;background-color:rgb(250 249 247/var(--tw-bg-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.9375rem;padding-bottom:1.25rem;padding-top:1.25rem}.site-footer .copyright-mobile{margin-bottom:.625rem}@media (min-width:767px){.site-footer .copyright-mobile{display:none;margin-left:.9375rem;margin-right:.9375rem}}.site-footer .company-info-wrapper .footerlogo{margin-bottom:.9375rem}@media (min-width:992px){.site-footer .company-info-wrapper .company-info{line-height:21.4286px}}.site-footer .company-info-wrapper .copyright{display:none}@media (min-width:767px){.site-footer .company-info-wrapper .copyright{display:block;margin-top:1.25rem}}@media (min-width:992px){.site-footer .company-info-wrapper .copyright{display:none}}@media (min-width:1200px){.site-footer .company-info-wrapper .copyright{display:block}}.site-footer .company-info-wrapper br{display:none}@media (min-width:767px){.site-footer .company-info-wrapper br{display:block}}.site-footer .company-info-wrapper .social-icons{margin-bottom:1.375rem}.site-footer .company-info-wrapper .social-icons>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.25rem*var(--tw-space-x-reverse))}.site-footer .company-info-wrapper .social-icons{zoom:.9}.site-footer .company-info-wrapper .social-icons a{transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.site-footer .company-info-wrapper .social-icons a:hover{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity))}.site-footer .primary-footer{display:grid;gap:1.875rem;justify-content:space-between;padding-bottom:1.5625rem;padding-top:1.5625rem}@media (min-width:767px){.site-footer .primary-footer{gap:3.75rem;grid-template-columns:max-content minmax(min-content,540px)}}@media (min-width:992px){.site-footer .primary-footer{grid-template-columns:max-content minmax(min-content,1140px)}}.site-footer .footer-primary-menu{display:grid;gap:1.875rem;grid-template-columns:repeat(1,minmax(0,1fr));grid-template-columns:repeat(1,1fr);grid-template-rows:auto;justify-content:space-between;margin:0;padding:0}@media (min-width:610px){.site-footer .footer-primary-menu{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,auto)}}@media (min-width:992px){.site-footer .footer-primary-menu{grid-template-columns:repeat(5,auto);grid-template-rows:auto}}.site-footer .footer-primary-menu>li>a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));display:block;font-size:.75rem;font-weight:700;margin-bottom:.625rem}.site-footer .footer-primary-menu .sub-menu{font-size:14px;margin:0}@media (min-width:992px){.site-footer .footer-primary-menu .sub-menu{margin-top:.375rem}}.site-footer .footer-primary-menu .sub-menu li{line-height:1.25rem;margin-bottom:.4375rem}@media (min-width:992px){.site-footer .footer-primary-menu .sub-menu li{margin-bottom:.3125rem}}.site-footer .footer-primary-menu .sub-menu li:last-child{margin-bottom:0}.site-footer .footer-primary-menu .sub-menu li a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));font-weight:400;letter-spacing:.5px}.site-footer .footer-primary-menu .sub-menu li a:hover{--tw-border-opacity:1;border-bottom-width:1px;border-color:rgb(16 24 32/var(--tw-border-opacity))}.site-footer .footer-bottom-menu{display:flex;flex-wrap:wrap;margin-bottom:0;padding:0}@media (min-width:767px){.site-footer .footer-bottom-menu{display:inline-flex;line-height:1rem}}.site-footer .footer-bottom-menu li{width:100%}@media (min-width:767px){.site-footer .footer-bottom-menu li{margin-right:.625rem;width:auto}}@media (min-width:992px){.site-footer .footer-bottom-menu li{margin-right:1.75rem}}.site-footer .footer-bottom-menu li a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));font-size:.75rem;font-weight:700;letter-spacing:.5px}.site-footer .footer-bottom-menu li a:hover{--tw-border-opacity:1;border-bottom-width:1px;border-color:rgb(16 24 32/var(--tw-border-opacity))}.landing-page .site-footer{padding-bottom:0;padding-top:0}.gallery-caption figcaption,.wp-caption-text{font-size:.875rem}ul.checkmark-bullets{list-style:none!important;padding-left:2.5rem}ul.checkmark-bullets li{position:relative}ul.checkmark-bullets li:not(:last-child){margin-bottom:.3125rem}ul.checkmark-bullets li:before{background-repeat:no-repeat;background-size:contain;content:"";display:block;float:left;height:14px;left:-38px;position:absolute;top:8px;width:19px}ul.checkmark-bullets--blue li:before{background-image:url(https://cdn.invicti.com/app/uploads/2024/01/29150338/checkmark-blue.svg)}ul.general-list>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.9375rem*var(--tw-space-y-reverse));margin-top:calc(.9375rem*(1 - var(--tw-space-y-reverse)))}ul.general-list{padding-left:31px}ul.general-list li{position:relative}.fas-li{--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity));border-radius:9999px;height:.5rem;left:-1.5em;position:absolute;text-align:center;top:9px;width:.5rem}.main ul{list-style-position:outside;list-style-type:disc;overflow-wrap:break-word;padding-left:2.5rem}.main ul ul{list-style-type:circle}.main ul ul ul{list-style-type:square}.main ol{list-style-position:outside;list-style-type:decimal;overflow-wrap:break-word;padding-left:2.5rem}.main ol ol{list-style:lower-alpha}.main ol ol ol{list-style-type:lower-roman}.main ol,.main ul{overflow-wrap:break-word}.main ol ol,.main ol ul,.main ul ol,.main ul ul{margin-top:1rem}.main ol li,.main ul li{margin-bottom:.5rem}.cookie-notice{--tw-border-opacity:1;--tw-bg-opacity:1;align-items:center;background-color:rgb(251 251 251/var(--tw-bg-opacity));border-color:rgb(235 235 235/var(--tw-border-opacity));border-top-width:1px;bottom:0;display:none;font-size:.75rem;justify-content:center;padding:.9375rem;position:fixed;width:100%;z-index:999}@media (min-width:767px){.cookie-notice{font-size:.875rem}}.cookie-notice.active{display:flex}.cookie-notice p a{--tw-text-opacity:1;color:rgb(44 81 189/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:500}.cookie-notice p a:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.cookie-notice .cookie-notice-button{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity));border-radius:.25rem;color:rgb(255 255 255/var(--tw-text-opacity));cursor:pointer;font-weight:700;margin-bottom:-.625rem;margin-left:.625rem;margin-top:-.625rem;padding:.4375rem 1.5625rem}.cookie-notice .cookie-notice-button:hover{--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity))}.entry-content>*{font-size:1.125rem}.entry-content>h1,.entry-content>h2,.entry-content>h3,.entry-content>h4,.entry-content>h5,.entry-content>h6{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:500}.entry-content>h1:first-child,.entry-content>h2:first-child,.entry-content>h3:first-child,.entry-content>h4:first-child,.entry-content>h5:first-child,.entry-content>h6:first-child{margin-top:0}.entry-content>h1,.entry-content>h2{font-weight:700;margin-bottom:1.875rem;margin-top:3.125rem}.entry-content>h3,.entry-content>h4,.entry-content>h5,.entry-content>h6{margin-bottom:1.125rem;margin-top:2rem}.entry-content>h1{font-size:1.75rem}@media (min-width:767px){.entry-content>h1{font-size:2.25rem}}.entry-content>h2{font-size:1.625rem}@media (min-width:767px){.entry-content>h2{font-size:2rem}}.entry-content>h3{font-size:1.5rem}@media (min-width:767px){.entry-content>h3{font-size:1.75rem}}.entry-content>h4{font-size:1.375rem}.entry-content>h5{font-size:1.25rem}.entry-content>h6{font-size:1.125rem}.entry-content>address,.entry-content>dl,.entry-content>figure,.entry-content>iframe,.entry-content>img,.entry-content>p,.entry-content>pre,.entry-content>table{margin-bottom:1.5625rem}.entry-content>figure,.entry-content>iframe,.entry-content>img{margin-bottom:3rem;margin-top:3rem}.entry-content>blockquote.wp-block-quote{margin-bottom:3.125rem;margin-top:3.125rem}.entry-content>.wp-block-quote.is-style-default{--tw-border-opacity:1;border-color:rgb(204 139 219/var(--tw-border-opacity))}.entry-content>.wp-block-table{margin-top:2rem}.entry-content a{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:500}.entry-content code{--tw-bg-opacity:1;--tw-text-opacity:1;color:rgb(215 56 41/var(--tw-text-opacity));font-size:90%;padding:.125rem .25rem;white-space:pre-wrap}.entry-content code,.entry-content pre{background-color:rgb(250 249 247/var(--tw-bg-opacity));border-radius:.25rem}.entry-content pre{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;border-color:rgb(177 177 178/var(--tw-border-opacity));border-width:1px;color:rgb(16 24 32/var(--tw-text-opacity));font-size:13px;line-height:1.42857143;padding:.625rem}.entry-content pre>code{--tw-text-opacity:1;background-color:transparent;border-style:none;color:rgb(16 24 32/var(--tw-text-opacity));font-size:14px;margin:0;padding:0;white-space:pre-wrap}.entry-content>p a{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:500}.entry-content .wp-block-table thead{border-style:none}.entry-content .wp-block-table thead th{border-bottom-width:2px}.entry-content .wp-block-table tbody td,.entry-content .wp-block-table thead th{--tw-border-opacity:1;border-color:rgb(99 101 105/var(--tw-border-opacity))}.entry-content .image-block,.entry-content .wp-block-image{margin-bottom:3rem;margin-top:3rem}.entry-content .image-block img,.entry-content .wp-block-image img{margin-bottom:0;margin-top:0}.archive-description{margin-bottom:1.5rem}.page-template-template-sidebar-right .site-main{display:grid;gap:5rem;grid-template-columns:repeat(1,minmax(0,1fr))}@media (min-width:992px){.page-template-template-sidebar-right .site-main{grid-template-columns:repeat(3,minmax(0,1fr))}.page-template-template-sidebar-right .content-container{grid-column:span 2/span 2}} </style> <!-- TrenDemon Code --> <script type="text/javascript" id="trd-flame-load"> TRD_ACC_ID = 2632; (function (w, d) { function go() { var trdti = setInterval(function () { if (document.readyState === "complete") { var bi = document.createElement("script"); bi.type = "text/javascript"; bi.async = true; bi.src = "https://assets.trendemon.com/tag/trends.min.js"; bi.id = "trdflame"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bi, s); clearInterval(trdti); } }, 500); }; go(); }(window, document)); </script> <!-- End of TrenDemon Code --> <style id="page-dynamic-css">.single-support .content>.container{flex-wrap:wrap}@media (min-width:1200px){.single-support .content>.container{flex-wrap:nowrap}}.single-support .article-cat a{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:700;margin-bottom:.25rem;text-transform:uppercase}.single-support .article-heading{margin-bottom:.9375rem}.single-support .article-heading h1{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:36px;letter-spacing:-.01em;margin-bottom:0}.single-support .article-coverage{--tw-border-opacity:1;align-items:flex-start;border-color:rgb(250 249 247/var(--tw-border-opacity));border-radius:.25rem;border-width:1px;display:flex;flex-direction:column;flex-wrap:wrap;margin-bottom:1.875rem;padding:14px 1.25rem}@media (min-width:767px){.single-support .article-coverage{align-items:center;flex-direction:row}}.single-support .article-coverage span{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:13px;font-weight:500;text-transform:uppercase}@media (min-width:767px){.single-support .article-coverage span{margin-right:.3125rem}}.single-support .article-coverage .products{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem;margin-top:-.0625rem}.single-support aside.sidebar{order:1}.single-support .entry-content{flex-basis:auto;flex-grow:1;order:2;padding-bottom:40px;padding-right:0;padding-top:40px}@media (min-width:992px){.single-support .entry-content{flex-basis:0;padding-bottom:45px;padding-left:60px;padding-right:60px;padding-top:45px}}@media (min-width:1200px){.single-support .entry-content{flex-basis:auto;flex-grow:0}}.single-support .entry-content .open-ticket-sidebar a,.single-support .entry-content .open-ticket-sidebar a:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.single-support aside.toc{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));flex:none;flex-basis:100%;order:-1}@media (min-width:992px){.single-support aside.toc{width:260px}}@media (min-width:1200px){.single-support aside.toc{flex-basis:auto;order:3;padding-top:38px}}.single-support aside.toc .open-ticket-sidebar{--tw-border-opacity:1;align-items:center;border-bottom:1px;border-color:rgb(217 216 214/var(--tw-border-opacity));border-style:solid;display:block;justify-content:space-between;padding-bottom:1.25rem;padding-top:1.25rem}@media (min-width:767px){.single-support aside.toc .open-ticket-sidebar{display:flex}}@media (min-width:1200px){.single-support aside.toc .open-ticket-sidebar{display:block;margin-bottom:1.25rem;padding-left:1.5625rem}}@media (min-width:767px){.single-support aside.toc .open-ticket-sidebar div:first-child{padding-right:1.875rem;width:50%}}@media (min-width:992px){.single-support aside.toc .open-ticket-sidebar div:first-child{padding-right:0;width:100%}}@media (min-width:767px){.single-support aside.toc .open-ticket-sidebar div:last-child{text-align:right;width:50%}}@media (min-width:992px){.single-support aside.toc .open-ticket-sidebar div:last-child{width:100%}}@media (min-width:1200px){.single-support aside.toc .open-ticket-sidebar div:last-child{text-align:left}}.single-support aside.toc .open-ticket-sidebar h3{font-size:1.25rem;font-weight:700;margin-bottom:.625rem}.single-support aside.toc .open-ticket-sidebar p{font-size:1rem;margin-bottom:.625rem}.single-support aside.toc .open-ticket-sidebar a{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity));border-radius:.25rem;color:rgb(255 255 255/var(--tw-text-opacity));display:inline-block;font-size:.875rem;font-weight:700;padding:.375rem 1.125rem}.single-support aside.toc .open-ticket-sidebar a:hover{--tw-bg-opacity:1;background-color:rgb(60 16 83/var(--tw-bg-opacity))}.single-support aside.toc .open-ticket-sidebar small{display:block;font-size:.875rem;margin-top:.625rem}.single-support aside.toc .toc-sticky{display:none;padding-bottom:1.875rem;padding-top:1.25rem}@media (min-width:1200px){.single-support aside.toc .toc-sticky{display:block}}.single-support aside.toc .toc-sticky .toc-box{--tw-border-opacity:1;border-color:rgb(250 249 247/var(--tw-border-opacity));border-left-width:1px}.single-support aside.toc .toc-sticky .toc-title{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:13px;font-weight:500;margin-bottom:1.25rem;padding-left:1.5625rem;text-transform:uppercase}.single-support aside.toc .toc-sticky .toc-list{display:flex;flex-direction:column;gap:.9375rem}.single-support aside.toc .toc-sticky .toc-list .toc-list-item{display:flex}.single-support aside.toc .toc-sticky .toc-list .toc-list-item a{--tw-text-opacity:1;border-color:transparent;border-left-width:1px;color:rgb(99 101 105/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem;line-height:1.625;margin-left:-1px;padding-left:1.5625rem}.single-support aside.toc .toc-sticky .toc-list .toc-list-item .is-active-link{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgb(44 81 189/var(--tw-border-opacity));color:rgb(44 81 189/var(--tw-text-opacity))}.single-support aside.toc .toc-sticky .toc-list .toc-list-item .is-active-link:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.single-support aside.toc .toc-sticky .is-collapsible{max-height:1000px;overflow:hidden;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.single-support aside.toc .toc-sticky .is-collapsed{margin:0!important;max-height:0}.single-support .article-share{--tw-border-opacity:1;border-bottom-width:1px;border-color:rgb(250 249 247/var(--tw-border-opacity));border-top-width:1px;display:flex;flex-direction:column;gap:.4375rem;padding-bottom:1.875rem;padding-top:1.875rem}@media (min-width:767px){.single-support .article-share{flex-direction:row;gap:1rem}}.single-support .article-share .share-button{--tw-bg-opacity:1;--tw-text-opacity:1;align-items:center;background-color:rgb(0 0 0/var(--tw-bg-opacity));border-radius:.25rem;color:rgb(255 255 255/var(--tw-text-opacity));display:flex;flex:1 1 auto;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:16px;font-weight:500;gap:.375rem;height:42px;justify-content:center;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.single-support .article-share .share-button.share-facebook{--tw-bg-opacity:1;background-color:rgb(24 119 242/var(--tw-bg-opacity))}.single-support .article-share .share-button.share-facebook:hover{--tw-bg-opacity:1;background-color:rgb(24 100 199/var(--tw-bg-opacity))}.single-support .article-share .share-button.share-twitter{--tw-bg-opacity:1;background-color:rgb(29 161 242/var(--tw-bg-opacity))}.single-support .article-share .share-button.share-twitter:hover{--tw-bg-opacity:1;background-color:rgb(37 143 210/var(--tw-bg-opacity))}.single-support .article-share .share-button.share-linkedin{--tw-bg-opacity:1;background-color:rgb(0 119 181/var(--tw-bg-opacity))}.single-support .article-share .share-button.share-linkedin:hover{--tw-bg-opacity:1;background-color:rgb(20 106 152/var(--tw-bg-opacity))}.single-support .article-share .share-button.share-mail{--tw-bg-opacity:1;background-color:rgb(16 24 32/var(--tw-bg-opacity))}.single-support .article-share .share-button.share-mail:hover{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.single-support .article-widgets{display:grid;gap:1.5625rem;grid-template-columns:repeat(1,minmax(0,1fr));margin-top:1.875rem}@media (min-width:767px){.single-support .article-widgets{grid-template-columns:repeat(2,minmax(0,1fr))}}.single-support .article-widgets .aw-box{--tw-border-opacity:1;border-color:rgb(217 216 214/var(--tw-border-opacity));border-radius:.25rem;border-width:1px;display:flex;flex-direction:column;justify-content:space-between;min-height:230px;padding-bottom:1.25rem;padding-left:1.25rem;padding-right:1.25rem}.single-support .article-widgets .aw-box .widget-title{--tw-border-opacity:1;--tw-text-opacity:1;align-items:center;border-bottom-width:1px;border-color:rgb(217 216 214/var(--tw-border-opacity));color:rgb(16 24 32/var(--tw-text-opacity));display:flex;flex:none;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:13px;font-weight:500;height:50px;margin-bottom:.9375rem;text-transform:uppercase}.single-support .article-widgets .aw-box .widget-content{display:flex;flex-direction:column;flex-grow:1;justify-content:space-between}.single-support .article-widgets .aw-box.top-articles{grid-column:1/span 3}@media (min-width:767px){.single-support .article-widgets .aw-box.top-articles{grid-column:1/span 1}}.single-support .article-widgets .aw-box.top-articles a{--tw-text-opacity:1;color:rgb(44 81 189/var(--tw-text-opacity));font-size:1rem;font-weight:600;padding-bottom:.3125rem;padding-top:.3125rem}.single-support .article-widgets .aw-box.top-articles a:hover{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity))}.single-support .article-widgets .aw-box.article-share{grid-column:1/span 3}@media (min-width:767px){.single-support .article-widgets .aw-box.article-share{grid-column:2/span 2}}.sticky-header aside.toc .toc-sticky{top:70px}.single-support .single-support-entry img{display:inherit;margin:0 auto}.single-support .single-support-entry a.btn{display:inline-block}.single-support .single-support-entry a{--tw-text-opacity:1;color:rgb(44 81 189/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:500}.single-support .single-support-entry a:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.single-support .single-support-entry img,.single-support .single-support-entry pre{border-radius:0;float:none;max-width:100%}.single-support .single-support-entry pre{margin-bottom:.9375rem;margin-top:.9375rem}.single-support .single-support-entry h2{scroll-margin-top:120px;scroll-padding-top:120px}.single-support .single-support-entry>ol,.single-support .single-support-entry>p,.single-support .single-support-entry>table,.single-support .single-support-entry>table>td,.single-support .single-support-entry>table>tr,.single-support .single-support-entry>ul,.single-support .single-support-entry table p{font-size:1.125rem}.single-support .single-support-entry>ol iframe,.single-support .single-support-entry>p iframe,.single-support .single-support-entry>table>td iframe,.single-support .single-support-entry>table>tr iframe,.single-support .single-support-entry>table iframe,.single-support .single-support-entry>ul iframe,.single-support .single-support-entry table p iframe{margin-top:.625rem;max-width:100%}.single-support .single-support-entry table.table-bordered{--tw-border-opacity:1;border-color:rgb(217 216 214/var(--tw-border-opacity));border-width:1px}.single-support .single-support-entry table ul{padding-left:2.5rem}.single-support .single-support-entry table img{display:block}.single-support .single-support-entry blockquote ul{margin-bottom:0}.single-support .single-support-entry img.inline-img{display:inline}.single-support .text-center{text-align:center}.single-support blockquote{border-left:5px solid #eee;font-size:17.5px;margin:0 0 20px;padding:10px 20px}.single-support blockquote.info,.single-support blockquote.tips,.single-support blockquote.warning{font-size:14px!important;margin:20px 0 30px;padding:20px 25px 20px 65px;position:relative;text-align:left!important}.single-support blockquote.info{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 254 250/var(--tw-bg-opacity));border-color:rgb(255 243 204/var(--tw-border-opacity));border-width:1px;color:rgb(121 108 16/var(--tw-text-opacity));font-size:1rem;padding:1.25rem 1.5625rem 1.25rem 4rem;position:relative}.single-support blockquote.info:before{--tw-bg-opacity:1;background-color:rgb(255 196 0/var(--tw-bg-opacity));content:"";height:100%;left:23px;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1536'%3E%3Cpath d='M736 448q0 13-9.5 22.5T704 480t-22.5-9.5T672 448q0-46-54-71t-106-25q-13 0-22.5-9.5T480 320t9.5-22.5T512 288q50 0 99.5 16t87 54 37.5 90zm160 0q0-72-34.5-134t-90-101.5-123-62T512 128t-136.5 22.5-123 62-90 101.5T128 448q0 101 68 180 10 11 30.5 33t30.5 33q128 153 141 298h228q13-145 141-298 10-11 30.5-33t30.5-33q68-79 68-180zm128 0q0 155-103 268-45 49-74.5 87T787 898.5 753 1006q47 28 47 82 0 37-25 64 25 27 25 64 0 52-45 81 13 23 13 47 0 46-31.5 71t-77.5 25q-20 44-60 70t-87 26-87-26-60-70q-46 0-77.5-25t-31.5-71q0-24 13-47-45-29-45-81 0-37 25-64-25-27-25-64 0-54 47-82-4-50-34-107.5T177.5 803 103 716Q0 603 0 448q0-99 44.5-184.5t117-142 164-89T512 0t186.5 32.5 164 89 117 142T1024 448z'/%3E%3C/svg%3E") top/contain no-repeat;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1536'%3E%3Cpath d='M736 448q0 13-9.5 22.5T704 480t-22.5-9.5T672 448q0-46-54-71t-106-25q-13 0-22.5-9.5T480 320t9.5-22.5T512 288q50 0 99.5 16t87 54 37.5 90zm160 0q0-72-34.5-134t-90-101.5-123-62T512 128t-136.5 22.5-123 62-90 101.5T128 448q0 101 68 180 10 11 30.5 33t30.5 33q128 153 141 298h228q13-145 141-298 10-11 30.5-33t30.5-33q68-79 68-180zm128 0q0 155-103 268-45 49-74.5 87T787 898.5 753 1006q47 28 47 82 0 37-25 64 25 27 25 64 0 52-45 81 13 23 13 47 0 46-31.5 71t-77.5 25q-20 44-60 70t-87 26-87-26-60-70q-46 0-77.5-25t-31.5-71q0-24 13-47-45-29-45-81 0-37 25-64-25-27-25-64 0-54 47-82-4-50-34-107.5T177.5 803 103 716Q0 603 0 448q0-99 44.5-184.5t117-142 164-89T512 0t186.5 32.5 164 89 117 142T1024 448z'/%3E%3C/svg%3E") top/contain no-repeat;-webkit-mask-position:top;mask-position:top;position:absolute;top:1.125rem;width:17px}.single-support blockquote.tips{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(217 237 247/var(--tw-bg-opacity));border-color:rgb(188 232 241/var(--tw-border-opacity));border-width:1px;color:rgb(49 112 143/var(--tw-text-opacity));font-size:1rem;padding:1.25rem 1.5625rem 1.25rem 4rem;position:relative}.single-support blockquote.tips:before{--tw-bg-opacity:1;background-color:rgb(49 112 143/var(--tw-bg-opacity));content:"";height:100%;left:20px;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='%2331708f'%3E%3Cpath d='M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 128c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.3-32-32 14.3-32 32-32zm40 256h-80c-13.2 0-24-10.7-24-24s10.75-24 24-24h16v-64h-8c-13.25 0-24-10.75-24-24s10.8-24 24-24h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24s-10.7 24-24 24z'/%3E%3C/svg%3E") top/contain no-repeat;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='%2331708f'%3E%3Cpath d='M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 128c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.3-32-32 14.3-32 32-32zm40 256h-80c-13.2 0-24-10.7-24-24s10.75-24 24-24h16v-64h-8c-13.25 0-24-10.75-24-24s10.8-24 24-24h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24s-10.7 24-24 24z'/%3E%3C/svg%3E") top/contain no-repeat;-webkit-mask-position:top;mask-position:top;position:absolute;top:1.25rem;width:23px}.single-support blockquote.warning{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(242 222 222/var(--tw-bg-opacity));border-color:rgb(235 204 209/var(--tw-border-opacity));border-width:1px;color:rgb(169 68 66/var(--tw-text-opacity));font-size:1rem;padding:1.25rem 1.5625rem 1.25rem 4rem;position:relative}.single-support blockquote.warning:before{--tw-bg-opacity:1;background-color:rgb(169 68 66/var(--tw-bg-opacity));content:"";height:100%;left:17px;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-2 -3 24 24'%3E%3Cpath fill='currentColor' d='m12.8 1.613 6.701 11.161c.963 1.603.49 3.712-1.057 4.71a3.213 3.213 0 0 1-1.743.516H3.298C1.477 18 0 16.47 0 14.581c0-.639.173-1.264.498-1.807L7.2 1.613C8.162.01 10.196-.481 11.743.517c.428.276.79.651 1.057 1.096zm-2.22.839a1.077 1.077 0 0 0-1.514.365L2.365 13.98a1.17 1.17 0 0 0-.166.602c0 .63.492 1.14 1.1 1.14H16.7c.206 0 .407-.06.581-.172a1.164 1.164 0 0 0 .353-1.57L10.933 2.817a1.12 1.12 0 0 0-.352-.365zM10 14a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm0-9a1 1 0 0 1 1 1v4a1 1 0 0 1-2 0V6a1 1 0 0 1 1-1z'/%3E%3C/svg%3E") top/contain no-repeat;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-2 -3 24 24'%3E%3Cpath fill='currentColor' d='m12.8 1.613 6.701 11.161c.963 1.603.49 3.712-1.057 4.71a3.213 3.213 0 0 1-1.743.516H3.298C1.477 18 0 16.47 0 14.581c0-.639.173-1.264.498-1.807L7.2 1.613C8.162.01 10.196-.481 11.743.517c.428.276.79.651 1.057 1.096zm-2.22.839a1.077 1.077 0 0 0-1.514.365L2.365 13.98a1.17 1.17 0 0 0-.166.602c0 .63.492 1.14 1.1 1.14H16.7c.206 0 .407-.06.581-.172a1.164 1.164 0 0 0 .353-1.57L10.933 2.817a1.12 1.12 0 0 0-.352-.365zM10 14a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm0-9a1 1 0 0 1 1 1v4a1 1 0 0 1-2 0V6a1 1 0 0 1 1-1z'/%3E%3C/svg%3E") top/contain no-repeat;-webkit-mask-position:top;mask-position:top;position:absolute;top:1.375rem;width:30px}.single-support blockquote.info p{color:#796c10}.single-support blockquote.warning p{color:#a94442}.single-support blockquote.tips p{color:#31708f}.single-support blockquote.info a,.single-support blockquote.tips a,.single-support blockquote.warning a{color:inherit}.single-support blockquote.info a:hover{color:#13455f}.single-support blockquote.warning a:hover{color:#6d2423}.single-support blockquote.tips a:hover{color:#4d460e}.single-support blockquote ul{margin-bottom:0}.single-support table{background-color:transparent;border-collapse:collapse;border-spacing:0;max-width:100%;overflow:auto;width:100%!important}.single-support tr td,.single-support tr th{border-top:1px solid #ddd;font-size:1rem;line-height:1.42857143;padding:10px;text-align:left;vertical-align:top}.single-support .table-classification{border:1px solid #ddd;border-collapse:separate;border-radius:4px;border-spacing:0}.single-support .table-classification>thead>tr>th{background-color:#f5f5f5;border-bottom:2px solid #c00!important;font-size:16px;padding:10px 15px;text-align:left}.single-support .table-classification>tbody>tr>td{padding:8px 15px}.single-support td.classification-subtitle{background-color:#f1f1f1;font-weight:var(--font-weight-medium)}.single-support .table-responsive{margin-bottom:15px;overflow-y:auto;width:100%}.single-support .table-responsive .table-classification{border:none}.single-support .table-bordered>tbody>tr>td,.single-support .table-bordered>tbody>tr>th,.single-support .table-bordered>tfoot>tr>td,.single-support .table-bordered>tfoot>tr>th,.single-support .table-bordered>thead>tr>td,.single-support .table-bordered>thead>tr>th{border:1px solid #ddd}@media (max-width:550px){.single-support table:not(.table-responsive){display:inline-block;overflow-y:scroll}}.single-support .outline-ddd{outline-color:#ddd!important;outline-style:solid!important;outline-width:thin!important}.single-support .bbold{font-weight:var(--font-weight-bold)}.single-support .iitalic{font-style:italic}.single-support .mt10{margin-top:10px!important}.single-support .mt30{margin-top:30px!important}.single-support .mb0{margin-bottom:0!important}.single-support .mr5{margin-right:5px!important}.single-support .ml0{margin-left:0!important}.single-support .mb20{margin-bottom:20px!important}.single-support .mt40{margin-top:40px!important}.single-support .shadow-ddd{box-shadow:0 0 1px 0 #ddd}.single-support .shadow-3e3e3e{box-shadow:0 0 1px 0 #3e3e3e}.single-support .border-ddd{border:1px solid #ddd}.single-support .y20{width:20%}.single-support .y50{width:50%}.single-support .nolrpad{padding-left:0!important;padding-right:0!important}.single-support .entry-content{overflow:hidden}.single-support .entry-content ol{list-style-type:decimal;margin-bottom:1.875rem;padding-left:1.25rem}.single-support .entry-content ol li{margin-bottom:.3125rem;margin-top:.3125rem}.single-support .entry-content ul{list-style-type:disc;margin-bottom:1.875rem;padding-left:1.25rem}.single-support .entry-content ul li{margin-bottom:.625rem;margin-top:.625rem}[open-in-lb] img{cursor:zoom-in}body.invicti-lightbox-active:after{content:"";height:100%;left:0;position:fixed;top:0;width:100%;z-index:555}.invicti-lightbox{--tw-translate-x:-50%;--tw-translate-y:-50%;--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:.375rem;left:50%;max-height:100vh;opacity:0;padding:.9375rem;position:fixed;top:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:auto;z-index:9999}@media (min-width:767px){.invicti-lightbox{max-height:95vh}}.invicti-lightbox{box-shadow:0 0 0 100vw #000000d1;max-width:calc(100vw - 30px);transition:opacity .3s ease}.invicti-lightbox img{margin:0;-o-object-fit:contain;object-fit:contain}.invicti-lightbox iframe,.invicti-lightbox img{max-height:calc(95vh - 30px);max-width:calc(100vw - 60px)}.invicti-lightbox iframe{aspect-ratio:16/9;height:auto;margin:0}.invicti-lightbox figure.video{aspect-ratio:16/9;height:auto;width:100%}.invicti-lightbox.active{opacity:1}.invicti-lightbox .lightbox-close{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(16 24 32/var(--tw-bg-opacity));border-color:rgb(255 255 255/var(--tw-border-opacity));border-radius:9999px;border-width:2px;color:rgb(255 255 255/var(--tw-text-opacity));padding:.625rem;position:absolute;right:-8px;top:-8px}.invicti-lightbox .lightbox-close:not(:hover){box-shadow:0 0 10px #00000085}.invicti-lightbox .lightbox-close svg{height:auto;max-width:15px}.invicti-lightbox .lightbox-close path{fill:currentColor}.invicti-lightbox .loading{--tw-border-opacity:1;animation:spin 1s ease-in-out infinite;border-color:transparent;border-bottom-color:rgb(89 23 105/var(--tw-border-opacity));border-radius:9999px;border-top-color:rgb(89 23 105/var(--tw-border-opacity));border-width:2px;display:inline-block;height:3.125rem;margin:3.125rem;width:3.125rem}@keyframes spin{to{-webkit-transform:rotate(1turn)}}.splide__container{box-sizing:border-box;position:relative}.splide__list{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important;transform-style:preserve-3d}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide__progress__bar{width:0}.splide{outline:0;position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0;list-style-type:none!important;margin:0;outline:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__slider{position:relative}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__track{overflow:hidden;position:relative;z-index:0}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide--draggable>.splide__slider>.splide__track,.splide--draggable>.splide__track{-webkit-user-select:none;-ms-user-select:none;user-select:none}.splide--fade>.splide__slider>.splide__track>.splide__list,.splide--fade>.splide__track>.splide__list{display:block}.splide--fade>.splide__slider>.splide__track>.splide__list>.splide__slide,.splide--fade>.splide__track>.splide__list>.splide__slide{left:0;opacity:0;position:absolute;top:0;z-index:0}.splide--fade>.splide__slider>.splide__track>.splide__list>.splide__slide.is-active,.splide--fade>.splide__track>.splide__list>.splide__slide.is-active{opacity:1;position:relative;z-index:1}.splide--rtl{direction:rtl}.splide--ttb.is-active>.splide__slider>.splide__track>.splide__list,.splide--ttb.is-active>.splide__track>.splide__list{display:block}.splide__arrow{-ms-flex-align:center;align-items:center;background:#ccc;border:0;border-radius:50%;cursor:pointer;display:-ms-flexbox;display:flex;height:2em;-ms-flex-pack:center;justify-content:center;opacity:.7;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:2em;z-index:1}.splide__arrow svg{fill:#000;height:1.2em;width:1.2em}.splide__arrow:hover{opacity:.9}.splide__arrow:focus{outline:0}.splide__arrow--prev{left:1em}.splide__arrow--prev svg{transform:scaleX(-1)}.splide__arrow--next{right:1em}.splide__pagination{bottom:.5em;left:0;padding:0 1em;position:absolute;right:0;z-index:1}.splide__pagination__page{background:#ccc;border:0;border-radius:50%;display:inline-block;height:8px;margin:3px;opacity:.7;padding:0;transition:transform .2s linear;width:8px}.splide__pagination__page.is-active{background:#fff;transform:scale(1.4)}.splide__pagination__page:hover{cursor:pointer;opacity:.9}.splide__pagination__page:focus{outline:0}.splide__progress__bar{background:#ccc;height:3px}.splide--nav>.splide__slider>.splide__track>.splide__list>.splide__slide,.splide--nav>.splide__track>.splide__list>.splide__slide{border:3px solid transparent;cursor:pointer}.splide--nav>.splide__slider>.splide__track>.splide__list>.splide__slide.is-active,.splide--nav>.splide__track>.splide__list>.splide__slide.is-active{border:3px solid #000}.splide--nav>.splide__slider>.splide__track>.splide__list>.splide__slide:focus,.splide--nav>.splide__track>.splide__list>.splide__slide:focus{outline:0}.splide--rtl>.splide__arrows .splide__arrow--prev,.splide--rtl>.splide__slider>.splide__track>.splide__arrows .splide__arrow--prev,.splide--rtl>.splide__track>.splide__arrows .splide__arrow--prev{left:auto;right:1em}.splide--rtl>.splide__arrows .splide__arrow--prev svg,.splide--rtl>.splide__slider>.splide__track>.splide__arrows .splide__arrow--prev svg,.splide--rtl>.splide__track>.splide__arrows .splide__arrow--prev svg{transform:scaleX(1)}.splide--rtl>.splide__arrows .splide__arrow--next,.splide--rtl>.splide__slider>.splide__track>.splide__arrows .splide__arrow--next,.splide--rtl>.splide__track>.splide__arrows .splide__arrow--next{left:1em;right:auto}.splide--rtl>.splide__arrows .splide__arrow--next svg,.splide--rtl>.splide__slider>.splide__track>.splide__arrows .splide__arrow--next svg,.splide--rtl>.splide__track>.splide__arrows .splide__arrow--next svg{transform:scaleX(-1)}.splide--ttb>.splide__arrows .splide__arrow,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow,.splide--ttb>.splide__track>.splide__arrows .splide__arrow{left:50%;transform:translate(-50%)}.splide--ttb>.splide__arrows .splide__arrow--prev,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow--prev,.splide--ttb>.splide__track>.splide__arrows .splide__arrow--prev{top:1em}.splide--ttb>.splide__arrows .splide__arrow--prev svg,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow--prev svg,.splide--ttb>.splide__track>.splide__arrows .splide__arrow--prev svg{transform:rotate(-90deg)}.splide--ttb>.splide__arrows .splide__arrow--next,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow--next,.splide--ttb>.splide__track>.splide__arrows .splide__arrow--next{bottom:1em;top:auto}.splide--ttb>.splide__arrows .splide__arrow--next svg,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow--next svg,.splide--ttb>.splide__track>.splide__arrows .splide__arrow--next svg{transform:rotate(90deg)}.splide--ttb>.splide__pagination,.splide--ttb>.splide__slider>.splide__pagination{bottom:0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;left:auto;padding:1em 0;right:.5em;top:0}.invicti-block.accordion{align-items:center;display:flex;flex-direction:column}.invicti-block.accordion .accordion-section{width:100%}.invicti-block.accordion.style-one .accordion-heading{align-items:baseline;cursor:pointer;display:flex;justify-content:space-between;margin:0;padding-bottom:1.25rem;padding-top:1.25rem}.invicti-block.accordion.style-one .accordion-heading:hover{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity))}.invicti-block.accordion.style-one .accordion-heading{font-family:revert;font-size:revert;font-weight:revert;line-height:revert}.invicti-block.accordion.style-one .accordion-heading:after{background-image:url(/app/themes/netsparker/public/images/icons/purple-plus.svg);background-position:50%;background-repeat:no-repeat;background-size:contain;content:"";display:block;height:1em;margin-left:1.25rem;min-width:1em;position:relative;top:.1875em;width:1em}.invicti-block.accordion.style-one .accordion-text-holder{height:0;overflow:hidden;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}.invicti-block.accordion.style-one .accordion-text{--tw-border-opacity:1;border-bottom-width:1px;border-color:rgb(99 101 105/var(--tw-border-opacity));margin-bottom:1.25rem;padding:.3125rem 0 2.5rem}@media (min-width:767px){.invicti-block.accordion.style-one .accordion-text{padding-left:2.5rem;padding-right:2.5rem}}.invicti-block.accordion.style-one .accordion-text a{--tw-text-opacity:1;color:rgb(44 81 189/var(--tw-text-opacity))}.invicti-block.accordion.style-one .accordion-text a:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.invicti-block.accordion.style-one .active.accordion-section .accordion-heading{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity))}.invicti-block.accordion.style-one .active.accordion-section .accordion-heading:after{background-image:url(/app/themes/netsparker/public/images/icons/purple-minus.svg)}.invicti-block.accordion.style-one .active.accordion-section .accordion-text-holder{height:var(--accordion-height)}#accordion_67b3637a48537{font-family:var(--body-font);}#accordion_67b3637a498e2{font-family:var(--body-font);}.navigation-header{align-items:center;display:flex;justify-content:space-between;min-height:36px}.navigation-header .logo{transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:79px}@media (min-width:1200px){.navigation-header .logo{width:6.25rem}}.navigation-header .mobile-logo-icon{display:none;height:2rem;margin-left:auto;margin-right:auto}.navigation-header .top-slogan{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));display:block;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:7.5px;font-weight:300;position:absolute;transition-delay:.2s;transition-duration:.2s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:linear}@media (min-width:1200px){.navigation-header .top-slogan{font-size:9.4px}}.navigation-header .sticky-header-btn{--tw-translate-x:-50%;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity));border-radius:.25rem;color:rgb(250 249 247/var(--tw-text-opacity));display:none;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1rem;font-weight:700;left:50%;line-height:1.25rem;padding:.375rem 1.125rem;position:absolute;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (min-width:767px){.navigation-header .sticky-header-btn{padding-left:2.5rem;padding-right:2.5rem}}.navigation-header .navbar-toggle{cursor:pointer;margin-bottom:0;outline:2px solid transparent;outline-offset:2px;padding:0}@media (min-width:767px){.navigation-header .navbar-toggle{margin-right:.625rem}}@media (min-width:992px){.navigation-header .navbar-toggle{display:none}}.navigation-header .navbar-toggle-close{display:none}.primary-menu-wrapper{height:0;overflow-y:auto;transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (min-width:992px){.primary-menu-wrapper{display:inline-block;height:auto;margin-left:auto;margin-right:0}}.primary-menu-wrapper .btn{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:.25rem;color:rgb(16 24 32/var(--tw-text-opacity));display:none;font-size:1rem;font-weight:700;line-height:1.25rem;padding-bottom:.9375rem;padding-top:.9375rem;position:relative;width:100%;z-index:1}.primary-menu-wrapper .primary-menu{display:flex;flex-direction:column;margin-bottom:0;margin-top:1.25rem;width:100%}.primary-menu-wrapper .primary-menu>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-color:rgb(255 255 255/.2);border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}@media (min-width:992px){.primary-menu-wrapper .primary-menu{display:inline-flex;flex-direction:row;margin-top:0}.primary-menu-wrapper .primary-menu>:not([hidden])~:not([hidden]){border-style:none}@media (min-width:992px){.primary-menu-wrapper .primary-menu{padding-left:0;padding-right:0}}}.primary-menu-wrapper .primary-menu li a{--tw-text-opacity:1;align-items:center;color:rgb(250 249 247/var(--tw-text-opacity));display:flex;font-size:42px;font-weight:300;justify-content:space-between;padding:1.25rem 0;transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (min-width:992px){.primary-menu-wrapper .primary-menu li a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));font-size:.9375rem;font-weight:500;line-height:1.25rem;padding-bottom:1.25rem;padding-left:14px;padding-right:14px;padding-top:1.25rem}}@media (min-width:1200px){.primary-menu-wrapper .primary-menu li a{font-size:1.125rem;padding-left:1.125rem;padding-right:1.125rem}}.primary-menu-wrapper .primary-menu li.partners-custom{position:relative}.primary-menu-wrapper .primary-menu li.partners-custom .sub-menu.level--2{right:100%;top:-.4375rem}.primary-menu-wrapper .primary-menu .menu-item-has-children{backface-visibility:hidden;-webkit-backface-visibility:hidden}.primary-menu-wrapper .primary-menu .menu-item-has-children>a:after{background-size:cover;display:block;height:9px;position:relative;transform-origin:center;transition-duration:.1s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);width:16px}@media (min-width:992px){.primary-menu-wrapper .primary-menu .menu-item-has-children>a:after{background-size:contain;height:.75rem;width:.75rem}}.primary-menu-wrapper .primary-menu .menu-item-has-children>a:after{backface-visibility:hidden;-webkit-backface-visibility:hidden;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%23FAF9F7'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;content:"";-webkit-transform-style:preserve-3d}@media (min-width:992px){.primary-menu-wrapper .primary-menu .menu-item-has-children>a:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%23101820'/%3E%3C/svg%3E");margin-left:.375rem;margin-right:0;top:.0625rem}}.primary-menu-wrapper .primary-menu .menu-item-has-children .active-sub-menu>a:after{--tw-rotate:180deg;position:relative;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (min-width:992px){@media (min-width:992px){.primary-menu-wrapper .primary-menu .menu-item-has-children:hover>a{--tw-text-opacity:1;color:rgb(122 37 130/var(--tw-text-opacity))}}.primary-menu-wrapper .primary-menu .menu-item-has-children:hover>a:after{--tw-rotate:180deg;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%237A2582'/%3E%3C/svg%3E");transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.primary-menu-wrapper .primary-menu .menu-item-has-children:hover>.sub-menu{display:block}@media (min-width:992px){.primary-menu-wrapper .primary-menu .menu-item-has-children:hover.has-3rd-level>.sub-menu{display:flex;left:100%;padding-bottom:5px;top:0}.primary-menu-wrapper .primary-menu .menu-item-has-children:hover.has-3rd-level>.sub-menu li a{padding-bottom:.125rem;padding-top:.125rem}}.primary-menu-wrapper .primary-menu .menu-item-has-children:hover.has-3rd-level:hover>a:after{--tw-rotate:-90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.primary-menu-wrapper .primary-menu .menu-item-has-children:hover.has-3rd-level .sub-menu>li>a:after{display:none}}.primary-menu-wrapper .primary-menu .menu-item-has-children.has-3rd-level .sub-menu>li>a:after{display:none}.primary-menu-wrapper .primary-menu .menu-item-has-children.has-3rd-level>.sub-menu .sub-menu{display:block;opacity:.8}@media (min-width:992px){.primary-menu-wrapper .primary-menu .menu-item-has-children.has-3rd-level>.sub-menu .sub-menu{opacity:1}}.primary-menu-wrapper .primary-menu .menu-item-has-children.has-3rd-level>.sub-menu li.menu-item-has-children{padding-left:2.5rem}@media (min-width:992px){.primary-menu-wrapper .primary-menu .menu-item-has-children.has-3rd-level>.sub-menu li.menu-item-has-children{padding-left:0}.primary-menu-wrapper .primary-menu li.menu-item-18>.sub-menu{width:200px}.primary-menu-wrapper .primary-menu li.menu-item-14>.sub-menu{width:260px}}.primary-menu-wrapper .primary-menu .sub-menu{display:none}@media (min-width:992px){.primary-menu-wrapper .primary-menu .sub-menu{--tw-bg-opacity:1;--tw-shadow:0 0.25rem 0.375rem -0.0625rem rgba(0,0,0,0.1),0 0.125rem 0.25rem -0.0625rem rgba(0,0,0,0.06);--tw-shadow-colored:0 0.25rem 0.375rem -0.0625rem var(--tw-shadow-color),0 0.125rem 0.25rem -0.0625rem var(--tw-shadow-color);background-color:rgb(250 249 247/var(--tw-bg-opacity));border-radius:.25rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);padding-bottom:.5rem;padding-top:.5rem;position:absolute;width:auto;z-index:50}.primary-menu-wrapper .primary-menu .sub-menu li.menu-col{width:max-content}}.primary-menu-wrapper .primary-menu .sub-menu li.menu-col>a{--tw-text-opacity:1;color:rgb(122 37 130/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.75rem;font-weight:700;margin-bottom:-.9375rem;margin-left:-.9375rem;margin-right:-.9375rem;text-transform:uppercase}@media (min-width:992px){.primary-menu-wrapper .primary-menu .sub-menu li.menu-col>a{font-weight:700;margin-left:0}}.primary-menu-wrapper .primary-menu .sub-menu li.menu-col .sub-menu{margin-left:-.9375rem;margin-right:-.9375rem}@media (min-width:992px){.primary-menu-wrapper .primary-menu .sub-menu li.menu-col .sub-menu{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);display:block;margin-bottom:0;margin-left:0;margin-right:0;padding-left:0;padding-right:0;position:static}}.primary-menu-wrapper .primary-menu .sub-menu li a{font-weight:500;line-height:1.75rem;padding-bottom:.4375rem;padding-top:.4375rem}@media (min-width:992px){.primary-menu-wrapper .primary-menu .sub-menu li a{padding-bottom:.3125rem;padding-top:.3125rem}.primary-menu-wrapper .primary-menu .sub-menu li a:hover{--tw-text-opacity:1;color:rgb(122 37 130/var(--tw-text-opacity))}}.primary-menu-wrapper .primary-menu .sub-menu li.new-promotion a:after{background:#05d5ff;border-radius:2px;color:#101820;content:"NEW";font-size:12px;font-weight:700;line-height:1;margin-left:5px;padding:2px 3px}@media (max-width:991px){.primary-menu-wrapper .primary-menu .sub-menu li.new-promotion a{display:inline-block}}.mobile-menu-active{overflow:hidden}.mobile-menu-active .site-header{background:radial-gradient(81.5% 67% at 39% 50%,#431658 0,#3f1353 25%,#180427 100%)}.mobile-menu-active .site-header .btn-get-demo{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(250 249 247/var(--tw-bg-opacity));color:rgb(16 24 32/var(--tw-text-opacity));transition-duration:.2s}.mobile-menu-active .site-header .btn-get-demo:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity));color:rgb(250 249 247/var(--tw-text-opacity))}.mobile-menu-active .site-header .navigation-header{min-height:50px}.mobile-menu-active .site-header .navigation-header .logo.mobile-logo{display:block}.mobile-menu-active .site-header .navigation-header .logo.sticky-logo,.mobile-menu-active .site-header .navigation-header .logo.top-logo,.mobile-menu-active .site-header .navigation-header .mobile-logo-icon{display:none}.mobile-menu-active .site-header .navigation-header .navbar-toggle-close path[fill],.mobile-menu-active .site-header .navigation-header .navbar-toggle-open path[fill]{fill:#faf9f7}.mobile-menu-active .site-header .navigation-header .top-slogan{--tw-text-opacity:1;color:rgb(250 249 247/var(--tw-text-opacity))}.mobile-menu-active .site-header .navigation-header .navbar-toggle-open,.mobile-menu-active .site-header .navigation-header .sticky-header-btn{display:none}.mobile-menu-active .site-header .navigation-header .navbar-toggle-close{display:block}.mobile-menu-active .site-header .primary-menu-wrapper{height:100vh;padding-top:3.125rem;position:relative}@media (min-width:992px){.mobile-menu-active .site-header .primary-menu-wrapper{height:auto}}.mobile-menu-active .site-header .primary-menu-wrapper:after{height:150px;left:0;opacity:.2;position:absolute;top:0;width:100%}@media (min-width:767px){.mobile-menu-active .site-header .primary-menu-wrapper:after{display:none}}.mobile-menu-active .site-header .primary-menu-wrapper:after{background:radial-gradient(50% 50% at 50% 50%,#c554d0 0,rgba(63,20,83,0) 100%);content:""}.mobile-menu-active .site-header .primary-menu-wrapper .btn{display:block}@media (min-width:767px){.mobile-menu-active .site-header .primary-menu-wrapper .btn{display:none}}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>a{--tw-text-opacity:1;color:rgb(250 249 247/var(--tw-text-opacity))}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>a:after{--tw-rotate:180deg;position:relative;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>.sub-menu{display:block;padding-left:.9375rem}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>.sub-menu a{font-size:1.125rem;font-weight:700}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>.sub-menu .sub-menu{padding-left:.9375rem}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>.sub-menu .sub-menu li{padding-left:0}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>.sub-menu .sub-menu li>a{padding-left:.9375rem}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>.sub-menu .sub-menu li.menu-col>a{--tw-text-opacity:1;color:rgb(204 139 219/var(--tw-text-opacity))}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>.sub-menu .sub-menu li>.sub-menu{padding-left:0;padding-top:.9375rem}.sticky-header .site-header .logo{display:none}@media (min-width:767px){.sticky-header .site-header .logo{display:block}.sticky-header .site-header .logo.mobile-logo{display:none}}.sticky-header .site-header .top-slogan{opacity:0;transition-delay:0ms;transition-duration:75ms;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.sticky-header .site-header .mobile-logo-icon{display:block}@media (min-width:767px){.sticky-header .site-header .mobile-logo-icon{display:none}}.sticky-header .site-header .sticky-header-btn{display:block;text-align:center}@media (min-width:767px){.sticky-header .site-header .sticky-header-btn{display:none}}.post-type-archive-support .top,.single-support .top,.support-search-template .top,.tax-support-categories .top,body.support .top{--tw-bg-opacity:1;background-color:rgb(60 16 83/var(--tw-bg-opacity));padding-bottom:1.25rem;padding-top:1.25rem}.post-type-archive-support .top>.container,.single-support .top>.container,.support-search-template .top>.container,.tax-support-categories .top>.container,body.support .top>.container{display:flex;flex-direction:column;gap:.9375rem;justify-content:space-between}@media (min-width:767px){.post-type-archive-support .top>.container,.single-support .top>.container,.support-search-template .top>.container,.tax-support-categories .top>.container,body.support .top>.container{flex-direction:row}}@media (min-width:992px){.post-type-archive-support .top>.container,.single-support .top>.container,.support-search-template .top>.container,.tax-support-categories .top>.container,body.support .top>.container{gap:1.25rem}}.post-type-archive-support .top .header #breadcrumbs a,.post-type-archive-support .top .header #breadcrumbs span,.single-support .top .header #breadcrumbs a,.single-support .top .header #breadcrumbs span,.support-search-template .top .header #breadcrumbs a,.support-search-template .top .header #breadcrumbs span,.tax-support-categories .top .header #breadcrumbs a,.tax-support-categories .top .header #breadcrumbs span,body.support .top .header #breadcrumbs a,body.support .top .header #breadcrumbs span{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem;font-weight:500;text-transform:uppercase}.post-type-archive-support .top .header .support-title,.single-support .top .header .support-title,.support-search-template .top .header .support-title,.tax-support-categories .top .header .support-title,body.support .top .header .support-title{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:32px;font-weight:500;letter-spacing:-.01em;line-height:1;margin-bottom:.3125rem;margin-top:.1875rem}.post-type-archive-support .top .search,.single-support .top .search,.support-search-template .top .search,.tax-support-categories .top .search,body.support .top .search{align-items:flex-end;display:flex;flex-grow:1;justify-content:flex-end;padding-bottom:.125rem}.post-type-archive-support .top .search form,.single-support .top .search form,.support-search-template .top .search form,.tax-support-categories .top .search form,body.support .top .search form{align-items:center;display:flex;justify-content:flex-end;position:relative;width:100%}.post-type-archive-support .top .search input[type=text],.single-support .top .search input[type=text],.support-search-template .top .search input[type=text],.tax-support-categories .top .search input[type=text],body.support .top .search input[type=text]{--tw-border-opacity:0.7;--tw-text-opacity:1;background-color:transparent;border-color:rgb(255 255 255/var(--tw-border-opacity));border-width:1px;color:rgb(255 255 255/var(--tw-text-opacity));height:45px;max-width:100%;padding-left:.9375rem;padding-right:1.5625rem;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.post-type-archive-support .top .search input[type=text]::placeholder,.single-support .top .search input[type=text]::placeholder,.support-search-template .top .search input[type=text]::placeholder,.tax-support-categories .top .search input[type=text]::placeholder,body.support .top .search input[type=text]::placeholder{--tw-text-opacity:0.7;color:rgb(255 255 255/var(--tw-text-opacity))}.post-type-archive-support .top .search input[type=text]:hover,.single-support .top .search input[type=text]:hover,.support-search-template .top .search input[type=text]:hover,.tax-support-categories .top .search input[type=text]:hover,body.support .top .search input[type=text]:hover{--tw-border-opacity:1}.post-type-archive-support .top .search input[type=text]:focus,.single-support .top .search input[type=text]:focus,.support-search-template .top .search input[type=text]:focus,.tax-support-categories .top .search input[type=text]:focus,body.support .top .search input[type=text]:focus{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));color:rgb(99 101 105/var(--tw-text-opacity))}.post-type-archive-support .top .search input[type=text]:focus::placeholder,.single-support .top .search input[type=text]:focus::placeholder,.support-search-template .top .search input[type=text]:focus::placeholder,.tax-support-categories .top .search input[type=text]:focus::placeholder,body.support .top .search input[type=text]:focus::placeholder{--tw-text-opacity:0.7;color:rgb(99 101 105/var(--tw-text-opacity))}@media (min-width:767px){.post-type-archive-support .top .search input[type=text],.single-support .top .search input[type=text],.support-search-template .top .search input[type=text],.tax-support-categories .top .search input[type=text],body.support .top .search input[type=text]{max-width:470px}}.post-type-archive-support .top .search input[type=text]:focus~button,.single-support .top .search input[type=text]:focus~button,.support-search-template .top .search input[type=text]:focus~button,.tax-support-categories .top .search input[type=text]:focus~button,body.support .top .search input[type=text]:focus~button{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.post-type-archive-support .top .search button,.single-support .top .search button,.support-search-template .top .search button,.tax-support-categories .top .search button,body.support .top .search button{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));position:absolute;right:.9375rem;top:13px}.post-type-archive-support .content .sidebar,.single-support .content .sidebar,.support-search-template .content .sidebar,.tax-support-categories .content .sidebar,body.support .content .sidebar{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-color:rgb(250 249 247/var(--tw-border-opacity));border-right-width:0;flex:none;left:0;margin-left:-1.5625rem;margin-right:-1.5625rem;position:sticky;right:0;top:0;z-index:10}@media (min-width:992px){.post-type-archive-support .content .sidebar,.single-support .content .sidebar,.support-search-template .content .sidebar,.tax-support-categories .content .sidebar,body.support .content .sidebar{border-right-width:1px;margin-left:0;margin-right:0;padding-top:40px;position:relative;width:300px}}@media (max-width:1500px){.post-type-archive-support .content .sidebar,.single-support .content .sidebar,.support-search-template .content .sidebar,.tax-support-categories .content .sidebar,body.support .content .sidebar{width:250px}}@media (max-width:1200px){.post-type-archive-support .content .sidebar,.single-support .content .sidebar,.support-search-template .content .sidebar,.tax-support-categories .content .sidebar,body.support .content .sidebar{width:220px}}@media (max-width:1000px){.post-type-archive-support .content .sidebar,.single-support .content .sidebar,.support-search-template .content .sidebar,.tax-support-categories .content .sidebar,body.support .content .sidebar{width:200px}}@media (max-width:992px){.post-type-archive-support .content .sidebar,.single-support .content .sidebar,.support-search-template .content .sidebar,.tax-support-categories .content .sidebar,body.support .content .sidebar{width:auto}}.post-type-archive-support .content .sidebar .sidebar-menu,.single-support .content .sidebar .sidebar-menu,.support-search-template .content .sidebar .sidebar-menu,.tax-support-categories .content .sidebar .sidebar-menu,body.support .content .sidebar .sidebar-menu{--tw-bg-opacity:1;--tw-shadow:0px 4px 10px rgba(0,0,0,0.1);--tw-shadow-colored:0px 4px 10px var(--tw-shadow-color);background-color:rgb(248 248 248/var(--tw-bg-opacity));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);display:none}@media (min-width:992px){.post-type-archive-support .content .sidebar .sidebar-menu,.single-support .content .sidebar .sidebar-menu,.support-search-template .content .sidebar .sidebar-menu,.tax-support-categories .content .sidebar .sidebar-menu,body.support .content .sidebar .sidebar-menu{--tw-bg-opacity:1;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;background-color:rgb(255 255 255/var(--tw-bg-opacity));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);display:block}}.post-type-archive-support .content .sidebar .sidebar-menu.active,.single-support .content .sidebar .sidebar-menu.active,.support-search-template .content .sidebar .sidebar-menu.active,.tax-support-categories .content .sidebar .sidebar-menu.active,body.support .content .sidebar .sidebar-menu.active{display:block}.post-type-archive-support .content .sidebar .menu,.single-support .content .sidebar .menu,.support-search-template .content .sidebar .menu,.tax-support-categories .content .sidebar .menu,body.support .content .sidebar .menu{list-style-type:none;margin:0}.post-type-archive-support .content .sidebar .menu>:not([hidden])~:not([hidden]),.single-support .content .sidebar .menu>:not([hidden])~:not([hidden]),.support-search-template .content .sidebar .menu>:not([hidden])~:not([hidden]),.tax-support-categories .content .sidebar .menu>:not([hidden])~:not([hidden]),body.support .content .sidebar .menu>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;--tw-divide-opacity:1;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-color:rgb(250 249 247/var(--tw-divide-opacity));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.post-type-archive-support .content .sidebar .menu,.single-support .content .sidebar .menu,.support-search-template .content .sidebar .menu,.tax-support-categories .content .sidebar .menu,body.support .content .sidebar .menu{border-bottom-width:0;padding-left:1.5625rem;padding-right:1.5625rem}@media (min-width:767px){.post-type-archive-support .content .sidebar .menu,.single-support .content .sidebar .menu,.support-search-template .content .sidebar .menu,.tax-support-categories .content .sidebar .menu,body.support .content .sidebar .menu{--tw-border-opacity:1;border-bottom-width:1px;border-color:rgb(250 249 247/var(--tw-border-opacity))}}@media (min-width:992px){.post-type-archive-support .content .sidebar .menu,.single-support .content .sidebar .menu,.support-search-template .content .sidebar .menu,.tax-support-categories .content .sidebar .menu,body.support .content .sidebar .menu{padding-left:0;padding-right:0}}.post-type-archive-support .content .sidebar .menu a[href="#"],.single-support .content .sidebar .menu a[href="#"],.support-search-template .content .sidebar .menu a[href="#"],.tax-support-categories .content .sidebar .menu a[href="#"],body.support .content .sidebar .menu a[href="#"]{cursor:default}.post-type-archive-support .content .sidebar .menu>.menu-item-has-children>.menu-item-block>a,.single-support .content .sidebar .menu>.menu-item-has-children>.menu-item-block>a,.support-search-template .content .sidebar .menu>.menu-item-has-children>.menu-item-block>a,.tax-support-categories .content .sidebar .menu>.menu-item-has-children>.menu-item-block>a,body.support .content .sidebar .menu>.menu-item-has-children>.menu-item-block>a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));font-size:13px;font-weight:700;text-transform:uppercase;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.post-type-archive-support .content .sidebar .menu>.menu-item-has-children>.menu-item-block>a:hover,.single-support .content .sidebar .menu>.menu-item-has-children>.menu-item-block>a:hover,.support-search-template .content .sidebar .menu>.menu-item-has-children>.menu-item-block>a:hover,.tax-support-categories .content .sidebar .menu>.menu-item-has-children>.menu-item-block>a:hover,body.support .content .sidebar .menu>.menu-item-has-children>.menu-item-block>a:hover{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity))}.post-type-archive-support .content .sidebar .menu>.menu-item-has-children>.menu-item-block:hover span.menu-expander,.single-support .content .sidebar .menu>.menu-item-has-children>.menu-item-block:hover span.menu-expander,.support-search-template .content .sidebar .menu>.menu-item-has-children>.menu-item-block:hover span.menu-expander,.tax-support-categories .content .sidebar .menu>.menu-item-has-children>.menu-item-block:hover span.menu-expander,body.support .content .sidebar .menu>.menu-item-has-children>.menu-item-block:hover span.menu-expander{--tw-text-opacity:0.6}.post-type-archive-support .content .sidebar .menu .menu-item-block,.single-support .content .sidebar .menu .menu-item-block,.support-search-template .content .sidebar .menu .menu-item-block,.tax-support-categories .content .sidebar .menu .menu-item-block,body.support .content .sidebar .menu .menu-item-block{align-items:stretch;cursor:pointer;display:flex;justify-content:space-between}.post-type-archive-support .content .sidebar .menu .menu-item-block>a,.single-support .content .sidebar .menu .menu-item-block>a,.support-search-template .content .sidebar .menu .menu-item-block>a,.tax-support-categories .content .sidebar .menu .menu-item-block>a,body.support .content .sidebar .menu .menu-item-block>a{--tw-text-opacity:1;align-items:center;color:rgb(16 24 32/var(--tw-text-opacity));cursor:pointer;display:flex;flex-grow:1;padding-bottom:.5rem;padding-top:.5rem;position:relative;-webkit-text-decoration-line:none;text-decoration-line:none}.post-type-archive-support .content .sidebar .menu .menu-item-block span.menu-expander,.single-support .content .sidebar .menu .menu-item-block span.menu-expander,.support-search-template .content .sidebar .menu .menu-item-block span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item-block span.menu-expander,body.support .content .sidebar .menu .menu-item-block span.menu-expander{--tw-text-opacity:0.25;align-items:center;color:rgb(16 24 32/var(--tw-text-opacity));display:flex;transition:opacity .15s ease-in-out}.post-type-archive-support .content .sidebar .menu>.menu-item,.single-support .content .sidebar .menu>.menu-item,.support-search-template .content .sidebar .menu>.menu-item,.tax-support-categories .content .sidebar .menu>.menu-item,body.support .content .sidebar .menu>.menu-item{padding-bottom:.625rem;padding-top:.625rem}.post-type-archive-support .content .sidebar .menu>.menu-item>a,.single-support .content .sidebar .menu>.menu-item>a,.support-search-template .content .sidebar .menu>.menu-item>a,.tax-support-categories .content .sidebar .menu>.menu-item>a,body.support .content .sidebar .menu>.menu-item>a{--tw-text-opacity:1;align-items:center;color:rgb(16 24 32/var(--tw-text-opacity));cursor:pointer;display:flex;font-size:16px;font-weight:500;padding-bottom:.5rem;padding-top:.5rem;position:relative;-webkit-text-decoration-line:none;text-decoration-line:none}.post-type-archive-support .content .sidebar .menu .menu-item.menu-item-has-children>.menu-item-block span.menu-expander,.single-support .content .sidebar .menu .menu-item.menu-item-has-children>.menu-item-block span.menu-expander,.support-search-template .content .sidebar .menu .menu-item.menu-item-has-children>.menu-item-block span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item.menu-item-has-children>.menu-item-block span.menu-expander,body.support .content .sidebar .menu .menu-item.menu-item-has-children>.menu-item-block span.menu-expander{justify-content:flex-end;width:50px}@media (min-width:992px){.post-type-archive-support .content .sidebar .menu .menu-item.menu-item-has-children>.menu-item-block span.menu-expander,.single-support .content .sidebar .menu .menu-item.menu-item-has-children>.menu-item-block span.menu-expander,.support-search-template .content .sidebar .menu .menu-item.menu-item-has-children>.menu-item-block span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item.menu-item-has-children>.menu-item-block span.menu-expander,body.support .content .sidebar .menu .menu-item.menu-item-has-children>.menu-item-block span.menu-expander{justify-content:center}}.post-type-archive-support .content .sidebar .menu .menu-item.menu-item-has-children.active>.menu-item-block span.menu-expander,.single-support .content .sidebar .menu .menu-item.menu-item-has-children.active>.menu-item-block span.menu-expander,.support-search-template .content .sidebar .menu .menu-item.menu-item-has-children.active>.menu-item-block span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item.menu-item-has-children.active>.menu-item-block span.menu-expander,body.support .content .sidebar .menu .menu-item.menu-item-has-children.active>.menu-item-block span.menu-expander{--tw-rotate:180deg;justify-content:flex-start;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (min-width:992px){.post-type-archive-support .content .sidebar .menu .menu-item.menu-item-has-children.active>.menu-item-block span.menu-expander,.single-support .content .sidebar .menu .menu-item.menu-item-has-children.active>.menu-item-block span.menu-expander,.support-search-template .content .sidebar .menu .menu-item.menu-item-has-children.active>.menu-item-block span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item.menu-item-has-children.active>.menu-item-block span.menu-expander,body.support .content .sidebar .menu .menu-item.menu-item-has-children.active>.menu-item-block span.menu-expander{justify-content:center}}.post-type-archive-support .content .sidebar .menu .menu-item.menu-item-has-children.active>.sub-menu,.single-support .content .sidebar .menu .menu-item.menu-item-has-children.active>.sub-menu,.support-search-template .content .sidebar .menu .menu-item.menu-item-has-children.active>.sub-menu,.tax-support-categories .content .sidebar .menu .menu-item.menu-item-has-children.active>.sub-menu,body.support .content .sidebar .menu .menu-item.menu-item-has-children.active>.sub-menu{display:block;list-style-type:none;padding-bottom:10px;padding-left:0}.post-type-archive-support .content .sidebar .menu .menu-item.menu-item-has-children.active>.sub-menu.level--2,.single-support .content .sidebar .menu .menu-item.menu-item-has-children.active>.sub-menu.level--2,.support-search-template .content .sidebar .menu .menu-item.menu-item-has-children.active>.sub-menu.level--2,.tax-support-categories .content .sidebar .menu .menu-item.menu-item-has-children.active>.sub-menu.level--2,body.support .content .sidebar .menu .menu-item.menu-item-has-children.active>.sub-menu.level--2{padding-bottom:0}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu,.single-support .content .sidebar .menu .menu-item .sub-menu,.support-search-template .content .sidebar .menu .menu-item .sub-menu,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu,body.support .content .sidebar .menu .menu-item .sub-menu{display:none;list-style-type:none;margin-bottom:0}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu>:not([hidden])~:not([hidden]),.single-support .content .sidebar .menu .menu-item .sub-menu>:not([hidden])~:not([hidden]),.support-search-template .content .sidebar .menu .menu-item .sub-menu>:not([hidden])~:not([hidden]),.tax-support-categories .content .sidebar .menu .menu-item .sub-menu>:not([hidden])~:not([hidden]),body.support .content .sidebar .menu .menu-item .sub-menu>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.625rem*var(--tw-space-y-reverse));margin-top:calc(.625rem*(1 - var(--tw-space-y-reverse)))}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu,.single-support .content .sidebar .menu .menu-item .sub-menu,.support-search-template .content .sidebar .menu .menu-item .sub-menu,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu,body.support .content .sidebar .menu .menu-item .sub-menu{padding-bottom:1.25rem}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu.level--2,.single-support .content .sidebar .menu .menu-item .sub-menu.level--2,.support-search-template .content .sidebar .menu .menu-item .sub-menu.level--2,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu.level--2,body.support .content .sidebar .menu .menu-item .sub-menu.level--2{margin-bottom:.75rem;margin-left:1.25rem;margin-top:.625rem;padding-bottom:0;padding-right:1.25rem}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu.level--3,.single-support .content .sidebar .menu .menu-item .sub-menu.level--3,.support-search-template .content .sidebar .menu .menu-item .sub-menu.level--3,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu.level--3,body.support .content .sidebar .menu .menu-item .sub-menu.level--3{margin-left:.625rem;margin-top:.625rem}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li,.single-support .content .sidebar .menu .menu-item .sub-menu li,.support-search-template .content .sidebar .menu .menu-item .sub-menu li,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li,body.support .content .sidebar .menu .menu-item .sub-menu li{border-style:none;line-height:1}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block span.menu-expander,.single-support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block span.menu-expander,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block span.menu-expander,body.support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block span.menu-expander{flex-shrink:0;justify-content:flex-end;width:50px}@media (min-width:992px){.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block span.menu-expander,.single-support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block span.menu-expander,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block span.menu-expander,body.support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block span.menu-expander{justify-content:center}}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block>a,.single-support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block>a,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block>a,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block>a,body.support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block>a{line-height:1.4;padding-bottom:0;padding-top:0}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children.active>.menu-item-block span.menu-expander,.single-support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children.active>.menu-item-block span.menu-expander,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children.active>.menu-item-block span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children.active>.menu-item-block span.menu-expander,body.support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children.active>.menu-item-block span.menu-expander{--tw-rotate:180deg;justify-content:flex-start;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (min-width:992px){.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children.active>.menu-item-block span.menu-expander,.single-support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children.active>.menu-item-block span.menu-expander,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children.active>.menu-item-block span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children.active>.menu-item-block span.menu-expander,body.support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children.active>.menu-item-block span.menu-expander{justify-content:center}}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block a,.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>a,.single-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block a,.single-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,.single-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>a,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block a,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>a,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block a,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>a,body.support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block a,body.support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,body.support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>a{--tw-text-opacity:1;color:rgb(44 81 189/var(--tw-text-opacity))}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,.single-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,body.support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander{--tw-rotate:180deg;justify-content:flex-start;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (min-width:992px){.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,.single-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,body.support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander{justify-content:center}}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.sub-menu.level--2,.single-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.sub-menu.level--2,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.sub-menu.level--2,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.sub-menu.level--2,body.support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.sub-menu.level--2{display:block;padding-right:1.25rem}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li a,.single-support .content .sidebar .menu .menu-item .sub-menu li a,.support-search-template .content .sidebar .menu .menu-item .sub-menu li a,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li a,body.support .content .sidebar .menu .menu-item .sub-menu li a{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity));cursor:pointer;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.4;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li a:hover,.single-support .content .sidebar .menu .menu-item .sub-menu li a:hover,.support-search-template .content .sidebar .menu .menu-item .sub-menu li a:hover,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li a:hover,body.support .content .sidebar .menu .menu-item .sub-menu li a:hover{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity))}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li:hover span.menu-expander,.single-support .content .sidebar .menu .menu-item .sub-menu li:hover span.menu-expander,.support-search-template .content .sidebar .menu .menu-item .sub-menu li:hover span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li:hover span.menu-expander,body.support .content .sidebar .menu .menu-item .sub-menu li:hover span.menu-expander{--tw-text-opacity:0.6}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item,.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children,.single-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item,.single-support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.current-menu-item,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.current-menu-item,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children,body.support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item,body.support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children{padding-bottom:0;padding-top:0}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li ul,.single-support .content .sidebar .menu .menu-item .sub-menu li ul,.support-search-template .content .sidebar .menu .menu-item .sub-menu li ul,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li ul,body.support .content .sidebar .menu .menu-item .sub-menu li ul{padding-bottom:0}.post-type-archive-support .content .support-menu-trigger,.single-support .content .support-menu-trigger,.support-search-template .content .support-menu-trigger,.tax-support-categories .content .support-menu-trigger,body.support .content .support-menu-trigger{--tw-border-opacity:1;--tw-bg-opacity:0.2;--tw-shadow:0 2px 4px rgba(0,0,0,0.04);--tw-shadow-colored:0 2px 4px var(--tw-shadow-color);align-items:center;background-color:rgb(250 249 247/var(--tw-bg-opacity));border-bottom-width:1px;border-color:rgb(250 249 247/var(--tw-border-opacity));border-radius:.25rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);cursor:pointer;display:flex;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:15px;font-weight:500;gap:1.125rem;height:58px;justify-content:space-between;letter-spacing:-.01em;padding-left:1.5625rem;padding-right:1.5625rem;position:relative}@media (min-width:992px){.post-type-archive-support .content .support-menu-trigger,.single-support .content .support-menu-trigger,.support-search-template .content .support-menu-trigger,.tax-support-categories .content .support-menu-trigger,body.support .content .support-menu-trigger{display:none}}.post-type-archive-support .content .support-menu-trigger:before,.single-support .content .support-menu-trigger:before,.support-search-template .content .support-menu-trigger:before,.tax-support-categories .content .support-menu-trigger:before,body.support .content .support-menu-trigger:before{--tw-translate-y:-50%;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='10' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z' fill='%23C2C9D1'/%3E%3Cpath d='M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z' fill='%23000' fill-opacity='.25'/%3E%3C/svg%3E");content:"";height:.4375rem;position:absolute;right:1.5625rem;top:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:.625rem}.post-type-archive-support .content .page-content,.single-support .content .page-content,.support-search-template .content .page-content,.tax-support-categories .content .page-content,body.support .content .page-content{padding-bottom:60px;padding-left:0;padding-top:40px}@media (min-width:767px){.post-type-archive-support .content .page-content,.single-support .content .page-content,.support-search-template .content .page-content,.tax-support-categories .content .page-content,body.support .content .page-content{padding-bottom:6.25rem}}@media (min-width:992px){.post-type-archive-support .content .page-content,.single-support .content .page-content,.support-search-template .content .page-content,.tax-support-categories .content .page-content,body.support .content .page-content{padding-left:60px;padding-top:55px}}.post-type-archive-support .content .page-content .search,.single-support .content .page-content .search,.support-search-template .content .page-content .search,.tax-support-categories .content .page-content .search,body.support .content .page-content .search{--tw-border-opacity:1;border:1px solid rgb(217 216 214/var(--tw-border-opacity));padding:1.875rem;position:relative}.post-type-archive-support .content .page-content .search h3,.single-support .content .page-content .search h3,.support-search-template .content .page-content .search h3,.tax-support-categories .content .page-content .search h3,body.support .content .page-content .search h3{font-size:1.5rem;font-weight:500;margin-bottom:.625rem}.post-type-archive-support .content .page-content .search form,.single-support .content .page-content .search form,.support-search-template .content .page-content .search form,.tax-support-categories .content .page-content .search form,body.support .content .page-content .search form{margin-bottom:0;position:relative}.post-type-archive-support .content .page-content .search input[type=text],.single-support .content .page-content .search input[type=text],.support-search-template .content .page-content .search input[type=text],.tax-support-categories .content .page-content .search input[type=text],body.support .content .page-content .search input[type=text]{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgb(217 216 214/var(--tw-border-opacity));border-radius:.125rem;border-width:1px;color:rgb(60 16 83/var(--tw-text-opacity));font-size:1rem;height:55px;padding-left:1.25rem;padding-right:3.125rem}.post-type-archive-support .content .page-content .search input[type=text]::placeholder,.single-support .content .page-content .search input[type=text]::placeholder,.support-search-template .content .page-content .search input[type=text]::placeholder,.tax-support-categories .content .page-content .search input[type=text]::placeholder,body.support .content .page-content .search input[type=text]::placeholder{--tw-text-opacity:1;color:rgb(99 101 105/var(--tw-text-opacity))}.post-type-archive-support .content .page-content .search input[type=text]:focus,.single-support .content .page-content .search input[type=text]:focus,.support-search-template .content .page-content .search input[type=text]:focus,.tax-support-categories .content .page-content .search input[type=text]:focus,body.support .content .page-content .search input[type=text]:focus{--tw-border-opacity:1;border-color:rgb(89 23 105/var(--tw-border-opacity))}.post-type-archive-support .content .page-content .search button,.single-support .content .page-content .search button,.support-search-template .content .page-content .search button,.tax-support-categories .content .page-content .search button,body.support .content .page-content .search button{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity));position:absolute;right:1.25rem;top:19px}.post-type-archive-support .content .page-content .top-content,.single-support .content .page-content .top-content,.support-search-template .content .page-content .top-content,.tax-support-categories .content .page-content .top-content,body.support .content .page-content .top-content{--tw-border-opacity:1;border-color:rgb(217 216 214/var(--tw-border-opacity));border-top:1px rgb(217 216 214/var(--tw-border-opacity));border-style:solid;display:flex;flex-direction:column;gap:2.5rem;margin-top:1.875rem;padding-top:2.5rem}@media (min-width:767px){.post-type-archive-support .content .page-content .top-content,.single-support .content .page-content .top-content,.support-search-template .content .page-content .top-content,.tax-support-categories .content .page-content .top-content,body.support .content .page-content .top-content{flex-direction:row}}.post-type-archive-support .content .page-content .top-content>div,.single-support .content .page-content .top-content>div,.support-search-template .content .page-content .top-content>div,.tax-support-categories .content .page-content .top-content>div,body.support .content .page-content .top-content>div{flex:1 1 0%}.post-type-archive-support .content .page-content .top-content .open-ticket,.single-support .content .page-content .top-content .open-ticket,.support-search-template .content .page-content .top-content .open-ticket,.tax-support-categories .content .page-content .top-content .open-ticket,body.support .content .page-content .top-content .open-ticket{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity));padding:1.875rem}.post-type-archive-support .content .page-content .top-content .open-ticket h3,.single-support .content .page-content .top-content .open-ticket h3,.support-search-template .content .page-content .top-content .open-ticket h3,.tax-support-categories .content .page-content .top-content .open-ticket h3,body.support .content .page-content .top-content .open-ticket h3{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));font-size:1.5rem;font-weight:500;margin-bottom:.625rem}.post-type-archive-support .content .page-content .top-content .open-ticket p,.single-support .content .page-content .top-content .open-ticket p,.support-search-template .content .page-content .top-content .open-ticket p,.tax-support-categories .content .page-content .top-content .open-ticket p,body.support .content .page-content .top-content .open-ticket p{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));font-size:1.125rem;margin-bottom:1.875rem}@media (min-width:992px){.post-type-archive-support .content .page-content .top-content .open-ticket p,.single-support .content .page-content .top-content .open-ticket p,.support-search-template .content .page-content .top-content .open-ticket p,.tax-support-categories .content .page-content .top-content .open-ticket p,body.support .content .page-content .top-content .open-ticket p{max-width:80%}}.post-type-archive-support .content .page-content .top-content .open-ticket .open-ticket-btn,.single-support .content .page-content .top-content .open-ticket .open-ticket-btn,.support-search-template .content .page-content .top-content .open-ticket .open-ticket-btn,.tax-support-categories .content .page-content .top-content .open-ticket .open-ticket-btn,body.support .content .page-content .top-content .open-ticket .open-ticket-btn{--tw-bg-opacity:1;--tw-text-opacity:1;align-items:center;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:.25rem;border-width:0;color:rgb(89 23 105/var(--tw-text-opacity));display:inline-flex;font-size:1.125rem;font-weight:500;gap:.375rem;justify-content:center;padding:.625rem 1.125rem}.post-type-archive-support .content .page-content .top-content .open-ticket .open-ticket-btn:hover,.single-support .content .page-content .top-content .open-ticket .open-ticket-btn:hover,.support-search-template .content .page-content .top-content .open-ticket .open-ticket-btn:hover,.tax-support-categories .content .page-content .top-content .open-ticket .open-ticket-btn:hover,body.support .content .page-content .top-content .open-ticket .open-ticket-btn:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity))}.post-type-archive-support .content .page-content .top-content .open-ticket .open-ticket-btn.large,.single-support .content .page-content .top-content .open-ticket .open-ticket-btn.large,.support-search-template .content .page-content .top-content .open-ticket .open-ticket-btn.large,.tax-support-categories .content .page-content .top-content .open-ticket .open-ticket-btn.large,body.support .content .page-content .top-content .open-ticket .open-ticket-btn.large{min-width:240px}.post-type-archive-support .content .page-content .top-content .open-ticket .open-ticket-btn.widget,.single-support .content .page-content .top-content .open-ticket .open-ticket-btn.widget,.support-search-template .content .page-content .top-content .open-ticket .open-ticket-btn.widget,.tax-support-categories .content .page-content .top-content .open-ticket .open-ticket-btn.widget,body.support .content .page-content .top-content .open-ticket .open-ticket-btn.widget{width:100%}.post-type-archive-support .content .page-content .top-content .open-ticket .open-ticket-btn svg,.single-support .content .page-content .top-content .open-ticket .open-ticket-btn svg,.support-search-template .content .page-content .top-content .open-ticket .open-ticket-btn svg,.tax-support-categories .content .page-content .top-content .open-ticket .open-ticket-btn svg,body.support .content .page-content .top-content .open-ticket .open-ticket-btn svg{margin-left:.1875rem}.post-type-archive-support .content .page-content .top-content .open-ticket small,.single-support .content .page-content .top-content .open-ticket small,.support-search-template .content .page-content .top-content .open-ticket small,.tax-support-categories .content .page-content .top-content .open-ticket small,body.support .content .page-content .top-content .open-ticket small{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));display:block;font-size:.875rem;margin-top:.625rem}.post-type-archive-support .content .page-content .popular-searches,.single-support .content .page-content .popular-searches,.support-search-template .content .page-content .popular-searches,.tax-support-categories .content .page-content .popular-searches,body.support .content .page-content .popular-searches{align-items:center;display:flex;flex-wrap:wrap;gap:.9375rem;margin-top:17px}.post-type-archive-support .content .page-content .popular-searches p,.single-support .content .page-content .popular-searches p,.support-search-template .content .page-content .popular-searches p,.tax-support-categories .content .page-content .popular-searches p,body.support .content .page-content .popular-searches p{flex:none}@media (min-width:992px){.post-type-archive-support .content .page-content .popular-searches p,.single-support .content .page-content .popular-searches p,.support-search-template .content .page-content .popular-searches p,.tax-support-categories .content .page-content .popular-searches p,body.support .content .page-content .popular-searches p{flex:1 1 auto}}.post-type-archive-support .content .page-content .popular-searches a,.single-support .content .page-content .popular-searches a,.support-search-template .content .page-content .popular-searches a,.tax-support-categories .content .page-content .popular-searches a,body.support .content .page-content .popular-searches a{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;align-items:center;background-color:rgb(250 249 247/var(--tw-bg-opacity));border-color:rgb(250 249 247/var(--tw-border-opacity));border-radius:.25rem;border-width:1px;color:rgb(99 101 105/var(--tw-text-opacity));display:flex;flex:none;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem;font-weight:500;justify-content:center;padding:8px 1rem;text-align:center;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%}.post-type-archive-support .content .page-content .popular-searches a:hover,.single-support .content .page-content .popular-searches a:hover,.support-search-template .content .page-content .popular-searches a:hover,.tax-support-categories .content .page-content .popular-searches a:hover,body.support .content .page-content .popular-searches a:hover{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity))}@media (min-width:992px){.post-type-archive-support .content .page-content .popular-searches a,.single-support .content .page-content .popular-searches a,.support-search-template .content .page-content .popular-searches a,.tax-support-categories .content .page-content .popular-searches a,body.support .content .page-content .popular-searches a{flex:1 1 auto}}.post-type-archive-support .content .page-content .support-section,.single-support .content .page-content .support-section,.support-search-template .content .page-content .support-section,.tax-support-categories .content .page-content .support-section,body.support .content .page-content .support-section{--tw-border-opacity:1;border-color:rgb(217 216 214/var(--tw-border-opacity));border-top-width:1px;margin-top:2.5rem}.post-type-archive-support .content .page-content .support-section .support-section-title,.single-support .content .page-content .support-section .support-section-title,.support-search-template .content .page-content .support-section .support-section-title,.tax-support-categories .content .page-content .support-section .support-section-title,body.support .content .page-content .support-section .support-section-title{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem;font-weight:500;margin-bottom:1.5625rem;margin-top:2.5rem;text-transform:uppercase}@media (min-width:767px){.post-type-archive-support .content .page-content .support-section .support-section-title,.single-support .content .page-content .support-section .support-section-title,.support-search-template .content .page-content .support-section .support-section-title,.tax-support-categories .content .page-content .support-section .support-section-title,body.support .content .page-content .support-section .support-section-title{font-size:15px}}.post-type-archive-support .content .page-content .support-section .support-categories-loop,.single-support .content .page-content .support-section .support-categories-loop,.support-search-template .content .page-content .support-section .support-categories-loop,.tax-support-categories .content .page-content .support-section .support-categories-loop,body.support .content .page-content .support-section .support-categories-loop{display:grid;gap:1.875rem;grid-template-columns:repeat(1,minmax(0,1fr))}@media (min-width:767px){.post-type-archive-support .content .page-content .support-section .support-categories-loop,.single-support .content .page-content .support-section .support-categories-loop,.support-search-template .content .page-content .support-section .support-categories-loop,.tax-support-categories .content .page-content .support-section .support-categories-loop,body.support .content .page-content .support-section .support-categories-loop{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1200px){.post-type-archive-support .content .page-content .support-section .support-categories-loop,.single-support .content .page-content .support-section .support-categories-loop,.support-search-template .content .page-content .support-section .support-categories-loop,.tax-support-categories .content .page-content .support-section .support-categories-loop,body.support .content .page-content .support-section .support-categories-loop{grid-template-columns:repeat(3,minmax(0,1fr))}}.post-type-archive-support .content .page-content .support-section .support-categories-loop.log-loop,.single-support .content .page-content .support-section .support-categories-loop.log-loop,.support-search-template .content .page-content .support-section .support-categories-loop.log-loop,.tax-support-categories .content .page-content .support-section .support-categories-loop.log-loop,body.support .content .page-content .support-section .support-categories-loop.log-loop{grid-template-columns:repeat(1,minmax(0,1fr))}@media (min-width:767px){.post-type-archive-support .content .page-content .support-section .support-categories-loop.log-loop,.single-support .content .page-content .support-section .support-categories-loop.log-loop,.support-search-template .content .page-content .support-section .support-categories-loop.log-loop,.tax-support-categories .content .page-content .support-section .support-categories-loop.log-loop,body.support .content .page-content .support-section .support-categories-loop.log-loop{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1200px){.post-type-archive-support .content .page-content .support-section .support-categories-loop.log-loop,.single-support .content .page-content .support-section .support-categories-loop.log-loop,.support-search-template .content .page-content .support-section .support-categories-loop.log-loop,.tax-support-categories .content .page-content .support-section .support-categories-loop.log-loop,body.support .content .page-content .support-section .support-categories-loop.log-loop{grid-template-columns:repeat(2,minmax(0,1fr))}}.post-type-archive-support .content .page-content .support-section .cat-box,.single-support .content .page-content .support-section .cat-box,.support-search-template .content .page-content .support-section .cat-box,.tax-support-categories .content .page-content .support-section .cat-box,body.support .content .page-content .support-section .cat-box{--tw-border-opacity:1;--tw-bg-opacity:0.2;--tw-shadow:0 2px 4px rgba(0,0,0,0.04);--tw-shadow-colored:0 2px 4px var(--tw-shadow-color);background-color:rgb(250 249 247/var(--tw-bg-opacity));border-color:rgb(250 249 247/var(--tw-border-opacity));border-radius:.25rem;border-width:1px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);display:flex;gap:1.125rem;padding:1.375rem;position:relative;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.post-type-archive-support .content .page-content .support-section .cat-box:hover,.single-support .content .page-content .support-section .cat-box:hover,.support-search-template .content .page-content .support-section .cat-box:hover,.tax-support-categories .content .page-content .support-section .cat-box:hover,body.support .content .page-content .support-section .cat-box:hover{--tw-shadow:0 4px 8px rgba(0,0,0,0.06);--tw-shadow-colored:0 4px 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.post-type-archive-support .content .page-content .support-section .cat-box.log-box,.single-support .content .page-content .support-section .cat-box.log-box,.support-search-template .content .page-content .support-section .cat-box.log-box,.tax-support-categories .content .page-content .support-section .cat-box.log-box,body.support .content .page-content .support-section .cat-box.log-box{align-items:center;padding:13px 1.25rem}.post-type-archive-support .content .page-content .support-section .cat-box.log-box .cat-icon,.single-support .content .page-content .support-section .cat-box.log-box .cat-icon,.support-search-template .content .page-content .support-section .cat-box.log-box .cat-icon,.tax-support-categories .content .page-content .support-section .cat-box.log-box .cat-icon,body.support .content .page-content .support-section .cat-box.log-box .cat-icon{height:40px;width:40px}.post-type-archive-support .content .page-content .support-section .cat-box.sub-box,.single-support .content .page-content .support-section .cat-box.sub-box,.support-search-template .content .page-content .support-section .cat-box.sub-box,.tax-support-categories .content .page-content .support-section .cat-box.sub-box,body.support .content .page-content .support-section .cat-box.sub-box{align-items:center;gap:.9375rem;padding:12px 1.25rem}.post-type-archive-support .content .page-content .support-section .cat-box.sub-box .cat-icon,.single-support .content .page-content .support-section .cat-box.sub-box .cat-icon,.support-search-template .content .page-content .support-section .cat-box.sub-box .cat-icon,.tax-support-categories .content .page-content .support-section .cat-box.sub-box .cat-icon,body.support .content .page-content .support-section .cat-box.sub-box .cat-icon{height:38px;width:38px}.post-type-archive-support .content .page-content .support-section .cat-box.sub-box .cat-icon svg,.single-support .content .page-content .support-section .cat-box.sub-box .cat-icon svg,.support-search-template .content .page-content .support-section .cat-box.sub-box .cat-icon svg,.tax-support-categories .content .page-content .support-section .cat-box.sub-box .cat-icon svg,body.support .content .page-content .support-section .cat-box.sub-box .cat-icon svg{width:22px}.post-type-archive-support .content .page-content .support-section .cat-box .cat-link,.single-support .content .page-content .support-section .cat-box .cat-link,.support-search-template .content .page-content .support-section .cat-box .cat-link,.tax-support-categories .content .page-content .support-section .cat-box .cat-link,body.support .content .page-content .support-section .cat-box .cat-link{bottom:0;left:0;position:absolute;right:0;top:0}.post-type-archive-support .content .page-content .support-section .cat-box .cat-icon,.single-support .content .page-content .support-section .cat-box .cat-icon,.support-search-template .content .page-content .support-section .cat-box .cat-icon,.tax-support-categories .content .page-content .support-section .cat-box .cat-icon,body.support .content .page-content .support-section .cat-box .cat-icon{--tw-bg-opacity:1;--tw-text-opacity:1;align-items:center;background-color:rgb(250 249 247/var(--tw-bg-opacity));border-radius:9999px;color:rgb(89 23 105/var(--tw-text-opacity));display:flex;flex:none;height:48px;justify-content:center;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:48px}.post-type-archive-support .content .page-content .support-section .cat-box .cat-icon img,.single-support .content .page-content .support-section .cat-box .cat-icon img,.support-search-template .content .page-content .support-section .cat-box .cat-icon img,.tax-support-categories .content .page-content .support-section .cat-box .cat-icon img,body.support .content .page-content .support-section .cat-box .cat-icon img{width:22px}.post-type-archive-support .content .page-content .support-section .cat-box .cat-content h5,.single-support .content .page-content .support-section .cat-box .cat-content h5,.support-search-template .content .page-content .support-section .cat-box .cat-content h5,.tax-support-categories .content .page-content .support-section .cat-box .cat-content h5,body.support .content .page-content .support-section .cat-box .cat-content h5{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:17px;font-weight:500;letter-spacing:-.01em}.post-type-archive-support .content .page-content .support-section .cat-box .cat-content p,.single-support .content .page-content .support-section .cat-box .cat-content p,.support-search-template .content .page-content .support-section .cat-box .cat-content p,.tax-support-categories .content .page-content .support-section .cat-box .cat-content p,body.support .content .page-content .support-section .cat-box .cat-content p{--tw-text-opacity:1;color:rgb(99 101 105/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;letter-spacing:-.005em;margin-top:.4375rem}.post-type-archive-support .content .page-content .support-section .cat-box:hover .cat-icon,.single-support .content .page-content .support-section .cat-box:hover .cat-icon,.support-search-template .content .page-content .support-section .cat-box:hover .cat-icon,.tax-support-categories .content .page-content .support-section .cat-box:hover .cat-icon,body.support .content .page-content .support-section .cat-box:hover .cat-icon{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity))}.post-type-archive-support .content .page-content .support-section small,.single-support .content .page-content .support-section small,.support-search-template .content .page-content .support-section small,.tax-support-categories .content .page-content .support-section small,body.support .content .page-content .support-section small{--tw-text-opacity:1;color:rgb(99 101 105/var(--tw-text-opacity));display:block;font-size:.75rem;margin-top:.625rem}.post-type-archive-support aside.toc,.support-search-template aside.toc,.tax-support-categories aside.toc,body.support aside.toc{display:none}.support-search-template .page-content,.tax-support-categories .page-content{width:100%}.support-search-template .search-results-count,.tax-support-categories .search-results-count{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:15px;font-weight:500;margin-bottom:1.25rem;margin-top:3.125rem;text-transform:uppercase}.support-search-template .search-results,.tax-support-categories .search-results{display:flex;flex-direction:column;gap:1.75rem;margin-bottom:1.875rem}.tax-support-categories .page-content{width:100%}.tax-support-categories .page-content h1{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:-.01em;line-height:1.5;margin:0}.tax-support-categories .page-content p{--tw-text-opacity:1;color:rgb(99 101 105/var(--tw-text-opacity));font-size:1.125rem;line-height:1.5;margin-top:.375rem}.tax-support-categories .page-content .tax-name{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:700;line-height:1.5;text-transform:uppercase}.tax-support-categories .support-post-index{--tw-border-opacity:1;border-color:rgb(250 249 247/var(--tw-border-opacity));border-top-width:1px;margin-bottom:1.875rem;margin-top:1.875rem;padding-bottom:1.875rem}.tax-support-categories .support-post-index a{display:block}.tax-support-categories .support-post-index>li{--tw-border-opacity:1;border-bottom-width:1px;border-color:rgb(250 249 247/var(--tw-border-opacity));padding-bottom:1.875rem;padding-top:1.875rem}.tax-support-categories .support-post-index>li>a{--tw-text-opacity:1;color:rgb(44 81 189/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:15px;font-weight:500;margin-bottom:.625rem;text-transform:uppercase}.tax-support-categories .support-post-index>li>a:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.tax-support-categories .support-post-index>li>ul{margin-bottom:.625rem}.tax-support-categories .support-post-index>li>ul li{margin-bottom:0}.tax-support-categories .support-post-index>li>ul li a{--tw-text-opacity:1;color:rgb(44 81 189/var(--tw-text-opacity));display:flex;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:16px;font-weight:500;padding-bottom:.375rem;padding-top:.375rem;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.tax-support-categories .support-post-index>li>ul li a:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.tax-support-categories .support-post-index>li>ul li:last-child>a{padding-bottom:0}.tax-support-categories .support-post-index>li>ul li:last-child>ul{margin:0}.tax-support-categories .support-post-index>li>ul ul{padding-left:1.25rem}.post-type-archive-support .page-content{width:100%}</style></head> <body class="support-template-default single single-support postid-47319 single-format-standard custom-db-maintenance sticky-header-enabled app-data index-data singular-data single-data single-support-data single-support-custom-db-maintenance-data"> <!-- Google Tag Manager (noscript) snippet added by Site Kit --> <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-M7R7MXJ" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <!-- End Google Tag Manager (noscript) snippet added by Site Kit --> <div class="sticky-header-observer"></div> <div class="invicti-bar" hidden> <div class="transition-message"> <a href="https://www.invicti.com/blog/news/netsparker-is-now-invicti-signaling-a-new-era-for-modern-appsec/" title="Netsparker is now Invicti">Netsparker is now Invicti</a> <button class="bar-close" title="Hello bar close button"> <svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M15 13.5858L1.41422 0L0 1.41422L13.5858 15L0.150757 28.435L1.56497 29.8492L15 16.4142L28.2843 29.6985L29.6985 28.2843L16.4142 15L29.8492 1.56497L28.435 0.150757L15 13.5858Z" fill="currentColor"></path> </svg> </button> </div> </div> <header class="site-header"> <div class="container"> <a href="https://www.invicti.com/get-demo/" class="btn-get-demo">Get a demo</a> <div class="navigation-header"> <a href="https://www.invicti.com/" rel="noreferrer"> <img class="logo-icon logo top-logo" src="https://cdn.invicti.com/branding/invicti-logo-black.svg" alt="Invicti Logo - The Largest Dynamic Application Security Solutions Provider In The World" width="100" height="28" /> <img class="logo-icon logo sticky-logo" src="https://cdn.invicti.com/branding/invicti-logo-black.svg" alt="Invicti Logo - The Largest Dynamic Application Security Solutions Provider In The World" width="100" height="28" /> <img class="logo-icon logo mobile-logo" src="https://cdn.invicti.com/branding/invicti-logo-bone.svg" alt="Invicti Logo - The Largest Dynamic Application Security Solutions Provider In The World" width="100" height="28" /> <span class="top-slogan">AppSec with Zero Noise</span> <img class="logo-icon mobile-logo-icon" src="https://cdn.invicti.com/branding/invicti-logo-icon.svg" alt="Invicti Logo - The Largest Dynamic Application Security Solutions Provider In The World" width="32" height="32" /> </a> <a href="https://www.invicti.com/get-demo/" class="sticky-header-btn">Get a demo</a> <svg class="navbar-toggle navbar-toggle-open" xmlns="http://www.w3.org/2000/svg" width="22" height="13" fill="none"><path fill="black" fill-rule="evenodd" d="M22 0H0v3h22V0Zm0 10H0v3h22v-3Z" clip-rule="evenodd"/></svg> <svg class="navbar-toggle navbar-toggle-close" xmlns="http://www.w3.org/2000/svg" width="17" height="17" fill="none"><path fill="black" fill-rule="evenodd" d="M9 6.718 2.282 0 .162 2.121 6.878 8.84.16 15.556l2.121 2.122L9 10.96l6.717 6.718 2.122-2.122L11.12 8.84 17.84 2.12 15.718 0 9 6.718Z" clip-rule="evenodd"/></svg> </div> <nav id="site-navigation" class="primary-menu-wrapper navigation-menu" aria-label="Main Navigation"> <a href="https://www.invicti.com/get-demo/" class="btn">Get a demo</a> <ul id="primary-menu" class="primary-menu"><li id="menu-item-14" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-14"><a href="#">Product</a> <ul class="sub-menu level--1"> <li id="menu-item-55161" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55161"><a href="https://www.invicti.com/product/">Web Application Security</a></li> <li id="menu-item-15" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-15"><a href="https://www.invicti.com/product/api-security/">API Security</a></li> <li id="menu-item-16" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-16"><a href="https://www.invicti.com/features/">Features</a></li> <li id="menu-item-55889" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55889"><a href="https://www.invicti.com/product/dast/">DAST</a></li> <li id="menu-item-55937" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55937"><a href="https://www.invicti.com/product/sast/">SAST</a></li> <li id="menu-item-100773" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-100773"><a href="https://www.invicti.com/product/sca/">SCA</a></li> <li id="menu-item-100774" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-100774"><a href="https://www.invicti.com/product/container-security/">Container Security</a></li> </ul> </li> <li id="menu-item-18" class="solution menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-18"><a href="#">Why Us?</a> <ul class="sub-menu level--1"> <li id="menu-item-394" class="has-3rd-level menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-394"><a href="#">Solutions</a> <ul class="sub-menu level--2"> <li id="menu-item-48" class="menu-col menu-col1 menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-48"><a href="#">Industries</a> <ul class="sub-menu level--3"> <li id="menu-item-19" class="industries menu-item menu-item-type-custom menu-item-object-custom menu-item-19"><a href="https://www.invicti.com/solutions/it-and-telecom/">IT &#038; Telecom</a></li> <li id="menu-item-20" class="industries menu-item menu-item-type-custom menu-item-object-custom menu-item-20"><a href="https://www.invicti.com/solutions/government/">Government</a></li> <li id="menu-item-21" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-21"><a href="https://www.invicti.com/solutions/financial-services/">Financial Services</a></li> <li id="menu-item-22" class="industries menu-item menu-item-type-custom menu-item-object-custom menu-item-22"><a href="https://www.invicti.com/solutions/higher-education/">Education</a></li> <li id="menu-item-23" class="industries menu-item menu-item-type-custom menu-item-object-custom menu-item-23"><a href="https://www.invicti.com/solutions/healthcare/">Healthcare</a></li> </ul> </li> <li id="menu-item-49" class="menu-col menu-col1 menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-49"><a href="#">Roles</a> <ul class="sub-menu level--3"> <li id="menu-item-24" class="roles menu-item menu-item-type-custom menu-item-object-custom menu-item-24"><a href="https://www.invicti.com/solutions/cto-ciso/">CTO &#038; CISO</a></li> <li id="menu-item-25" class="roles menu-item menu-item-type-custom menu-item-object-custom menu-item-25"><a href="https://www.invicti.com/solutions/engineering-manager/">Engineering Manager</a></li> <li id="menu-item-26" class="roles menu-item menu-item-type-custom menu-item-object-custom menu-item-26"><a href="https://www.invicti.com/solutions/security-engineer/">Security Engineer</a></li> <li id="menu-item-27" class="roles menu-item menu-item-type-custom menu-item-object-custom menu-item-27"><a href="https://www.invicti.com/solutions/devsecops/">DevSecOps</a></li> </ul> </li> </ul> </li> <li id="menu-item-402" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-402"><a href="https://www.invicti.com/vulnerability-scanner-comparison/">Comparison</a></li> <li id="menu-item-401" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-401"><a href="https://www.invicti.com/case-studies/">Case studies</a></li> <li id="menu-item-400" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-400"><a href="https://www.invicti.com/customers/">Customers</a></li> <li id="menu-item-399" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-399"><a href="https://www.invicti.com/testimonials/">Testimonials</a></li> </ul> </li> <li id="menu-item-28" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-28"><a href="https://www.invicti.com/pricing/">Pricing</a></li> <li id="menu-item-29" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-29"><a href="#">About Us</a> <ul class="sub-menu level--1"> <li id="menu-item-395" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-395"><a href="https://www.invicti.com/about/">Our Story</a></li> <li id="menu-item-398" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-398"><a href="https://www.invicti.com/blog/news/">In the news</a></li> <li id="menu-item-397" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-397"><a href="https://www.invicti.com/careers/">Careers</a></li> <li id="menu-item-396" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-396"><a href="https://www.invicti.com/contact/">Contact us</a></li> </ul> </li> <li id="menu-item-30" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-30"><a href="#">Resources</a> <ul class="sub-menu level--1"> <li id="menu-item-31" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-31"><a href="https://www.invicti.com/blog/">Blog</a></li> <li id="menu-item-33" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-33"><a href="https://www.invicti.com/white-papers/">White Papers</a></li> <li id="menu-item-10430" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10430"><a href="https://www.invicti.com/webinars/">Webinars</a></li> <li id="menu-item-56654" class="new-promotion menu-item menu-item-type-post_type menu-item-object-page menu-item-56654"><a href="https://www.invicti.com/podcasts/">Podcasts</a></li> <li id="menu-item-27789" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27789"><a href="https://www.invicti.com/learn/">Invicti Learn</a></li> <li id="menu-item-34" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-34"><a href="https://www.invicti.com/resources/">Resource Library</a></li> <li id="menu-item-37" class="partners-custom menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-37"><a href="#">Partners</a> <ul class="sub-menu level--2"> <li id="menu-item-27215" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-27215"><a href="https://www.invicti.com/partners/">Channel</a></li> <li id="menu-item-27218" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-27218"><a href="https://www.invicti.com/clp/managed-security-service-provider/">MSSP</a></li> </ul> </li> <li id="menu-item-38" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-38"><a href="https://www.invicti.com/support/">Support</a></li> </ul> </li> </ul> </nav><!-- #site-navigation--> </div> </header><!-- .site-header--> <div class="top"> <div class="container"> <div class="header"> <p id="breadcrumbs"><span><span><a href="https://www.invicti.com/">Home</a></span> / <span><a href="https://www.invicti.com/support/">Support</a></span> / <span><a href="https://www.invicti.com/support/category/settings/">Settings</a></span> / <span class="breadcrumb_last" aria-current="page">Configuring custom database maintenance</span></span></p> <div class="support-title">Support</div> </div> <div class="search"> <form role="search" method="get" id="searchform" action="https://www.invicti.com/support/"> <label class="screen-reader-text" for="s">Search in support</label> <input type="text" value="" name="s" id="s" placeholder="Search in support" /> <button type="submit"> <svg width="19" height="19" viewBox="0 0 19 19" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M16.625 16.625L13.0736 13.0673L16.625 16.625ZM15.0416 8.31254C15.0416 10.0972 14.3327 11.8088 13.0707 13.0708C11.8088 14.3327 10.0972 15.0417 8.31248 15.0417C6.52779 15.0417 4.8162 14.3327 3.55424 13.0708C2.29228 11.8088 1.58331 10.0972 1.58331 8.31254C1.58331 6.52785 2.29228 4.81626 3.55424 3.5543C4.8162 2.29234 6.52779 1.58337 8.31248 1.58337C10.0972 1.58337 11.8088 2.29234 13.0707 3.5543C14.3327 4.81626 15.0416 6.52785 15.0416 8.31254V8.31254Z" stroke="currentColor" stroke-width="2.08333" stroke-linecap="round" stroke-linejoin="round" /> </svg> </button> </form> </div> </div> </div> <div class="content"> <div class="container flex flex-col lg:flex-row min-h-screen"> <aside class="sidebar"> <div class="support-menu-trigger"> <span>Support Categories Menu</span> </div> <div class="sidebar-menu"> <ul class="menu support-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Getting Started</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Introduction</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/what-is-invicti/">What is Invicti? | Application Security Scanner</a> </li> <li class="article"> <a href="https://www.invicti.com/support/invicti-editions/">Invicti Editions | Standard, Professional, Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/invicti-licensing/">Invicti Licensing</a> </li> <li class="article"> <a href="https://www.invicti.com/support/how-does-invicti-licensing-work/">Licensing FAQs</a> </li> <li class="article"> <a href="https://www.invicti.com/support/data-retention-data-availability-expired-license/">Data retention and data availability for expired licenses</a> </li> <li class="article"> <a href="https://www.invicti.com/support/data-retention-data-availability-expired-license-invicti-standard/">Data retention and data availability for expired licenses in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/invicti-glossary/">Glossary</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Invicti Enterprise</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/logging-in-invicti/">Logging in to Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/navigation-in-invicti/">Navigation in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/invicti-quick-start-guide/">Quick start guide</a> </li> <li class="article"> <a href="https://www.invicti.com/support/using-filters/">Using filters in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/introduction-dashboards-invicti/">Introduction to Invicti Enterprise dashboards</a> </li> <li class="article"> <a href="https://www.invicti.com/support/the-global-dashboard/">Global Dashboard (Invicti Enterprise)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/exclude-from-antivirus/">Excluding Invicti files from antivirus scans</a> </li> <li class="article"> <a href="https://www.invicti.com/support/downloading-invicti-standard-from-invicti-enterprise/">Downloading Invicti Standard from Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/whitelisting-for-invicti-enterprise-on-demand-us-2/">Whitelisting requirements for Invicti Enterprise On-Demand - US-2: https://ie.invicti.com</a> </li> <li class="article"> <a href="https://www.invicti.com/support/whitelisting-for-invicti-enterprise-on-demand-us/">Whitelisting requirements for Invicti Enterprise On-Demand - US: https://www.netsparkercloud.com</a> </li> <li class="article"> <a href="https://www.invicti.com/support/whitelisting-for-invicti-enterprise-on-demand-eu/">Whitelisting requirements for Invicti Enterprise On-Demand - EU: https://eu.netsparker.cloud</a> </li> <li class="article"> <a href="https://www.invicti.com/support/whitelisting-for-invicti-enterprise-on-demand-ca/">Whitelisting requirements for Invicti Enterprise On-Demand - CA: https://ca.netsparker.cloud</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Invicti Enterprise On-Premises Installation</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/step-1-components-architecture-prerequisites-download/">Step 1: Components and architecture, prerequisites, and download</a> </li> <li class="article"> <a href="https://www.invicti.com/support/step-2-installing-configuring-web-app-av/">Step 2: Installing and configuring the web app server and AV service</a> </li> <li class="article"> <a href="https://www.invicti.com/support/step-3-installing-configuring-agent/">Step 3: Installing and configuring the Agent</a> </li> <li class="article"> <a href="https://www.invicti.com/support/step-4-installing-configuring-auth-verif/">Step 4: Installing and configuring the Authentication Verifier agent</a> </li> <li class="article"> <a href="https://www.invicti.com/support/step-5-installing-iast-bridge/">Step 5: Installing the IAST bridge</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-a-proxy-for-the-invicti-enterprise-web-application/">Configuring a proxy for the Invicti Enterprise Web Application</a> </li> <li class="article"> <a href="https://www.invicti.com/support/security-hardening-invicti-onpremises/">Security Hardening for Invicti Enterprise On-Premises</a> </li> <li class="article"> <a href="https://www.invicti.com/support/updating-invicti-enterprise-onpremises/">Updating Invicti Enterprise On-Premises</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-invicti-enterprise-for-amazon-web-services/">Configuring Invicti Enterprise for Amazon Web Services</a> </li> <li class="article"> <a href="https://www.invicti.com/support/exclude-from-antivirus/">Excluding Invicti files from antivirus scans</a> </li> <li class="article"> <a href="https://www.invicti.com/support/data-migration-invicti-enterprise/">Migrating data in Invicti Enterprise On-Premises</a> </li> <li class="article"> <a href="https://www.invicti.com/support/installing-invicti-enterprise-silent-mode/">Installing Invicti Enterprise On-Premises in Silent Mode</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-invicti-enterprise-for-linux-on-amazon-web-services/">Configuring Invicti Enterprise for Linux on Amazon Web Services (Ubuntu)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/installing-hawk-internally/">Installing Invicti Hawk internally</a> </li> <li class="article"> <a href="https://www.invicti.com/support/whitelisting-for-invicti-enterprise-on-premises/">Whitelisting requirements for Invicti Enterprise On-Premises</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Invicti Standard</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/installing-invicti-standard/">Installing Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/introduction-to-invicti-standard-dashboards/">Introduction to Invicti Standard Dashboards</a> </li> <li class="article"> <a href="https://www.invicti.com/support/navigation-in-invicti-standard/">Navigation in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/invicti-standard-scan-summary-dashboard/">Scan Summary Dashboard (Invicti Standard)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/exclude-from-antivirus/">Excluding Invicti files from antivirus scans</a> </li> <li class="article"> <a href="https://www.invicti.com/support/installing-hawk-internally/">Installing Invicti Hawk internally</a> </li> <li class="article"> <a href="https://www.invicti.com/support/updating-invicti-standard/">Updating Invicti Standard</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Discovery</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Web Asset Discovery</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/application-and-service-discovery/">The Discovery Service - Introduction</a> </li> <li class="article"> <a href="https://www.invicti.com/support/discover-amazon-web-services/">Configuring AWS Connections</a> </li> <li class="article"> <a href="https://www.invicti.com/support/managing-discovery-service/">Configuring the Discovery Service</a> </li> <li class="article"> <a href="https://www.invicti.com/support/managing-discovered-websites/">Managing the Discovered Websites List</a> </li> <li class="article"> <a href="https://www.invicti.com/support/converting-discovered-website-to-target/">Converting a discovered website to a target</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Predictive Risk Scoring</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/introduction-to-predictive-risk-scoring/">Introduction to Predictive Risk Scoring</a> </li> <li class="article"> <a href="https://www.invicti.com/support/utilizing-predictive-risk-scoring/">Utilizing Predictive Risk Scoring</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Targets</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Managing Targets</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/what-is-a-target/">What is a Target?</a> </li> <li class="article"> <a href="https://www.invicti.com/support/websites-and-apis-dashboards/">Targets Dashboard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/adding-website-invicti-enterprise/">Adding a Target</a> </li> <li class="article"> <a href="https://www.invicti.com/support/importing-websites-invicti-enterprise/">Importing Targets</a> </li> <li class="article"> <a href="https://www.invicti.com/support/managing-websites-invicti-enterprise/">Managing Targets</a> </li> <li class="article"> <a href="https://www.invicti.com/support/verifying-website-ownership-invicti-enterprise/">Verifying Target Ownership</a> </li> <li class="article"> <a href="https://www.invicti.com/support/what-are-target-groups/">What are Target Groups?</a> </li> <li class="article"> <a href="https://www.invicti.com/support/website-groups-invicti-enterprise/">Creating and Managing Target Groups</a> </li> <li class="article"> <a href="https://www.invicti.com/support/view-filter-target-groups/">Viewing and Filtering Target Groups</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">API Security</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Introduction</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/install-api-security-on-premises/">Installing Invicti API Security On-Premises</a> </li> <li class="article"> <a href="https://www.invicti.com/support/api-types-formats/">API types and specification formats</a> </li> <li class="article"> <a href="https://www.invicti.com/support/updating-invicti-api-security-on-premises/">Updating Invicti API Security On-Premises</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">API Discovery</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/api-discovery-overview/">API Discovery Overview</a> </li> <li class="article"> <a href="https://www.invicti.com/support/introduction-api-management-integrations/">Introduction to API Discovery Sources</a> </li> <li class="article"> <a href="https://www.invicti.com/support/zero-config-api-discovery/">Getting Started with Zero Configuration API Discovery</a> </li> <li class="article"> <a href="https://www.invicti.com/support/installing-invicti-network-traffic-analyzer/">Installing the Invicti Network Traffic Analyzer</a> </li> <li class="article"> <a href="https://www.invicti.com/support/network-api-discovery-tap-plugin-faqs/">Network Traffic Analyzer: Tap Plugin FAQs</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-amazon-api-gateway/">Integrating with Amazon API Gateway</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-apigee-api-hub/">Integrating with Apigee API hub</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-azure-api-management/">Integrating with Azure API Management</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-kong-konnect/">Integrating with Kong Konnect</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-mulesoft-anypoint-exchange/">Integrating MuleSoft Anypoint Exchange with Invicti Enterprise On-Demand</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-mulesoft-anypoint-exchange-on-premises/">Integrating MuleSoft Anypoint Exchange with Invicti Enterprise On-Premises</a> </li> <li class="article"> <a href="https://www.invicti.com/support/managing-your-api-inventory/">Managing your API Inventory</a> </li> <li class="article"> <a href="https://www.invicti.com/support/linking-unlinking-api-target/">Linking and unlinking discovered APIs to targets</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Scanning APIs</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/overview-scanning-api/">Overview of Scanning APIs</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scanning-grpc-api-web-services-with-invicti-enterprise/">Scanning gRPC API Web Services with Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scanning-grpc-api-web-services-with-invicti-standard/">Scanning gRPC API Web Services with Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scanning-soap-web-services/">Scanning SOAP API Web Services</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scanning-restful-api-web-service/">Scanning a RESTful API Web Service | API Endpoint Scanner</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scanning-graphql-api/">Scanning a GraphQL API for vulnerabilities</a> </li> <li class="article"> <a href="https://www.invicti.com/support/importing-links-api-definitions/">Importing links and API definitions</a> </li> <li class="article"> <a href="https://www.invicti.com/support/imported-links/">Importing links from supported tools</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Scans</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Introduction to Scanning</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/web-application-security-scanning-flow/">Web Application Security Scanning Flow</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scanning-production-environment/">Scanning Production Environments</a> </li> <li class="article"> <a href="https://www.invicti.com/support/stages-scanning/">Stages of Scanning</a> </li> <li class="article"> <a href="https://www.invicti.com/support/overview-scanning-invicti/">Overview of Scanning</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Launching Scans</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/running-informal-pci-dss-compliance-scans/">Running informal PCI DSS Compliance Scans</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scanning-single-tab-target-invicti-standard/">Scanning single-tab targets with Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/running-official-pci-dss-scans-and-group-scans/">Running official PCI DSS Scans and PCI DSS Group Scans</a> </li> <li class="article"> <a href="https://www.invicti.com/support/define-pci-dss-scan-policy-invicti-standard/">Defining PCI DSS scan policy in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/creating-new-scan-invicti/">Creating a New Scan</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scheduling-scans/">Scheduling Scans in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scheduled-scans-best-practices/">Best practices for creating effective scan schedules in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scheduling-scans-in-invicti-standard/">Scheduling Scans in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/setting-up-incremental-scan/">Setting up incremental scans</a> </li> <li class="article"> <a href="https://www.invicti.com/support/retrieve-mend-sast-scan-results/">Retrieving Mend SAST and SCA scan results</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Scan Results</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/recent-scans/">Recent Scans</a> </li> <li class="article"> <a href="https://www.invicti.com/support/reviewing-scan-results/">Reviewing Scan Results</a> </li> <li class="article"> <a href="https://www.invicti.com/support/view-mend-sast-scan-results/">Viewing Mend SAST and SCA scan results in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/viewing-detected-technologies/">Viewing detected technologies</a> </li> <li class="article"> <a href="https://www.invicti.com/support/checking-the-vdb-version-in-invicti-enterprise-on-premises/">Checking the VDB version in Invicti Enterprise On-Premises</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Working with Scans</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/managing-scans/">Suspending, pausing, and resuming scans</a> </li> <li class="article"> <a href="https://www.invicti.com/support/manual-crawling-proxy-mode-invicti/">Manual Crawling in Proxy Mode</a> </li> <li class="article"> <a href="https://www.invicti.com/support/excluding-parts-website-from-scan/">Excluding Parts of a Website From a Scan</a> </li> <li class="article"> <a href="https://www.invicti.com/support/exclude-include-links-sitemap-after-crawling/">Excluding and Including Links from the Sitemap After Crawling</a> </li> <li class="article"> <a href="https://www.invicti.com/support/additional-websites-invicti/">Configuring Additional Websites</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scanning-applications-ip-range/">Scanning Applications in an IP Range</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-url-rewrite-rules-invicti/">Configuring URL Rewrite Rules</a> </li> <li class="article"> <a href="https://www.invicti.com/support/prerequest-scripts/">Pre-Request Scripts</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scan-groups-in-invicti-enterprise/">Scan Groups in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/business-logic-recorder-invicti/">Using the business logic recorder</a> </li> <li class="article"> <a href="https://www.invicti.com/support/importing-and-exporting-scan-sessions/">Importing and Exporting Scan Sessions in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scan-time-window/">Scan Time Window</a> </li> <li class="article"> <a href="https://www.invicti.com/support/performance-analysis-in-invicti/">Performance Analysis in Invicti</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scan-coverage-gaps/">Checking scan coverage and addressing gaps</a> </li> <li class="article"> <a href="https://www.invicti.com/support/factors-leading-to-longer-scan-times/">Factors leading to longer scan times</a> </li> <li class="article"> <a href="https://www.invicti.com/support/reducing-scan-times/">Reducing scan times</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scan-search-in-invicti-standard/">Scan Search in Invicti Standard</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Scan Profiles</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/scan-profiles-invicti/">Overview of Scan Profiles in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-scan-profiles-invicti-enterprise/">Configuring Scan Profiles in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-scan-profiles-invicti-standard/">Configuring Scan Profiles in Invicti Standard</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Security Checks</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/setting-security-check-options/">Security Checks</a> </li> <li class="article"> <a href="https://www.invicti.com/support/waf-identifier/">WAF Identifier</a> </li> <li class="article"> <a href="https://www.invicti.com/support/invicti-graphql-library-detection/">GraphQL Library Detection</a> </li> <li class="article"> <a href="https://www.invicti.com/support/identifying-mongodb-injection-vulnerabilities/">Identifying MongoDB injection vulnerabilities</a> </li> <li class="article"> <a href="https://www.invicti.com/support/breach-attack-detection/">BREACH Attack</a> </li> <li class="article"> <a href="https://www.invicti.com/support/forced-browsing/">Forced Browsing</a> </li> <li class="article"> <a href="https://www.invicti.com/support/login-page-identifier/">Login Page Identifier</a> </li> <li class="article"> <a href="https://www.invicti.com/support/malware-analyzer/">Malware Analyzer</a> </li> <li class="article"> <a href="https://www.invicti.com/support/custom-scripts-security-checks-invicti-enterprise/">Custom Scripts for Security Checks in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/custom-scripts-security-checks/">Custom Scripts for Security Checks in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/custom-security-checks-scripting/">Custom Security Checks via Scripting</a> </li> <li class="article"> <a href="https://www.invicti.com/support/identifying-sensitive-data/">Identifying sensitive data</a> </li> <li class="article"> <a href="https://www.invicti.com/support/how-invicti-reports-vulnerabilities/">How Invicti reports vulnerabilities</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">HTTP Request Builder</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/http-request-builder-invicti/">HTTP Request Builder</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Command Line Interface</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/command-line-interface-invicti-standard/">Command Line Interface</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Authentication</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/authentication/">Overview of Authentication</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-verifying-form-authentication-invicti-enterprise/">Configuring and Verifying Form Authentication in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-form-authentication-with-otp/">Configuring Form Authentication with OTP</a> </li> <li class="article"> <a href="https://www.invicti.com/support/custom-scripts-form-authentication/">Custom Scripts for Form Authentication</a> </li> <li class="article"> <a href="https://www.invicti.com/support/authentication-profiles/">Authentication Profiles</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-basic-digest-ntlm-kerberos-negotiate-authentication/">Configuring Basic, Digest, NTLM/Kerberos and Negotiate Authentication</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-client-certificate-authentication/">Configuring Client Certificate Authentication</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-oauth-authentication/">Configuring OAuth2 Authentication</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-header-authentication/">Configuring Header Authentication</a> </li> <li class="article"> <a href="https://www.invicti.com/support/logout-problems/">Logout Problems</a> </li> <li class="article"> <a href="https://www.invicti.com/support/logout-detection-invicti/">Logout Detection</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-form-authentication-invicti-standard/">Configuring Form Authentication in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/verifying-form-authentication-configuration-invicti-standard/">Verifying the Form Authentication Configuration in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-manual-authentication-invicti-standard/">Manual Authentication in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-smart-card-authentication-invicti-standard/">Configuring Smart Card Authentication in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/hmac-authentication-scripting/">HMAC Authentication via Scripting in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/interactive-logins-invicti-standard/">Interactive Logins in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/form-authentication-api/">Form Authentication API</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Working with Scan Scopes</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/scan-scope/">Scan Scope</a> </li> <li class="article"> <a href="https://www.invicti.com/support/excluding-file-types-scan/">Excluding file types from a scan</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Invicti Shark (IAST and SCA)</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Deploy Invicti Shark</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/configuring-invicti-iast-bridge/">Configuring Invicti IAST Bridge</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-iast-onprem/">Deploying Shark (IAST) in Invicti Enterprise On-Premises</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-iast/">Deploying Shark (IAST) in Invicti Enterprise On-Demand</a> </li> <li class="article"> <a href="https://www.invicti.com/support/how-shark-enriches-vulnerability-reports/">How Invicti Shark enriches vulnerability reports</a> </li> <li class="article"> <a href="https://www.invicti.com/support/software-composition-analysis-invicti/">Analyzing software composition with Invicti Shark (IAST)</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Shark for PHP</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-php/">Deploying Invicti Shark for PHP</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-for-php-docker/">Deploying Invicti Shark for PHP - Docker</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-for-php-aws-elastic-beanstalk/">Deploying Invicti Shark for PHP - AWS Elastic Beanstalk</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Shark for Java</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-for-java/">Installing Invicti Shark for Java websites</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-for-java-windows/">Deploying Invicti Shark for Java - Tomcat (Windows/Linux/Docker)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-for-java-docker-springboot/">Deploying Invicti Shark for Java - Docker (Spring Boot)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-iast-for-java-windows-jboss-7-4-standalone-war-file/">Deploying Invicti Shark for JAVA - Windows/Linux (JBOSS 7.4 Standalone + WAR File)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-iast-for-java-windows-jetty-war-file/">Deploying Invicti Shark for Java - Windows/Linux (Jetty 10.0.10 + WAR file)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-iast-for-java-windows-wildfly-26-1-1-final-standalone-war-file/">Deploying Invicti Shark for Java - Windows/Linux (Wildfly 26.1.1 Final Standalone + WAR file)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-for-java-linux-websphere/">Deploying Invicti Shark for Java - Linux (WebSphere Liberty 19.0.0.9+ with WAR file)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/invicti-shark-scan-aws-java/">Scanning an application in AWS Elastic Beanstalk (Tomcat + WAR File)</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Shark for .NET</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-for-dot-net-supported-scenarios/">Deploying Invicti Shark for .NET - Supported Scenarios</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-net/">Deploying Shark for .NET in Invicti Enterprise On-Demand</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-net-onprem/">Deploying Shark for .NET in Invicti Enterprise On-Premises</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-agent-for-net-core/">Deploying Invicti Shark agent for .NET Core</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-for-net-aws-elastic-beanstalk/">Deploying Invicti Shark for .NET - AWS Elastic Beanstalk</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Shark for Nodejs</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-nodejs/">Deploying Invicti Shark for Node.js</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-nodejs-docker/">Deploying Invicti Shark (IAST) for Node.js - Docker</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-nodejs-aws/">Deploying Invicti Shark agent for Node.js - AWS Elastic Beanstalk</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Reporting</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Introduction to Reports</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/why-do-we-need-reports-invicti/">Overview of Reports</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Types of Reports</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/built-in-reports-invicti/">Built-In Reports</a> </li> <li class="article"> <a href="https://www.invicti.com/support/trend-matrix-report/">Trend Matrix Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/report-templates-invicti/">Report Templates</a> </li> <li class="article"> <a href="https://www.invicti.com/support/detailed-scan-report/">Detailed Scan Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/technical-report/">Technical Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/executive-summary-report/">Executive Summary Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/hipaa-compliance-report/">HIPAA Compliance Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/iso-27001-compliance-report/">ISO 27001 Compliance Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/disa-stig-scan-report/">DISA STIG Compliance Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/nist-sp-scan-report/">NIST SP 800-53 Compliance Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/owasp-top-ten-2021-report/">OWASP Top Ten 2021 Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/owasp-api-top-ten-2019-report/">OWASP API Top Ten 2019 Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/owasp-top-ten-2017-report/">OWASP Top Ten 2017 Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/owasp-top-ten-2013-report/">OWASP Top Ten 2013 Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/owasp-asvs-compliance-report/">ASVS 4.0 Compliance Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/overview-of-official-and-informal-pci-dss-compliance-reports/">Overview of Official and Informal PCI DSS Compliance Reports</a> </li> <li class="article"> <a href="https://www.invicti.com/support/sans-top-25-report/">SANS Top 25 Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/wasc-threat-classification-report/">WASC Threat Classification Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/knowledge-base-report/">Knowledge Base Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/modsecurity-waf-rules-report/">ModSecurity WAF Rules Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/f5-big-ip-asm-waf-rules-report/">F5 BIG-IP ASM WAF Rules Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/lists-invicti/">Lists</a> </li> <li class="article"> <a href="https://www.invicti.com/support/comparison-report/">Comparison Report (Invicti Standard)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/custom-reports-templates-invicti/">Custom Reports (Invicti Standard)</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Web Application Firewall Reports</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/fortiweb-waf-rules/">Generating FortiWeb WAF Rules from Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/imperva-securesphere-waf-rules/">Generating Imperva SecureSphere WAF Rules from Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/cloudflare-waf-rules/">Generating Cloudflare WAF Rules from Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/amazon-web-services-waf-rules/">Generating Amazon Web Services WAF Rules From Invicti</a> </li> <li class="article"> <a href="https://www.invicti.com/support/f5-big-ip-asm-waf-rules/">Generating F5 BIG-IP Application Security Manager WAF Rules From Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/web-application-firewall/">Web Application Firewall Support in Invicti</a> </li> <li class="article"> <a href="https://www.invicti.com/support/modsecurity-waf-rules/">Generating ModSecurity WAF Rules from Invicti Standard</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Working with Reports</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/understanding-informal-pci-dss-compliance-report/">Understanding informal PCI DSS Compliance Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/exporting-informal-pci-dss-compliance-report/">Exporting the informal PCI DSS Compliance Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/exporting-official-pci-dss-compliance-report/">Exporting the official PCI DSS Compliance Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/export-pci-dss-compliance-report-invicti-standard/">Exporting PCI DSS Compliance Report in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/chart-reports-invicti-enterprise/">Chart Reports</a> </li> <li class="article"> <a href="https://www.invicti.com/support/editing-vulnerabilities-and-assigning-security-standards-in-invicti-enterprise/">Editing vulnerabilities and adding security standards in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/inconsistent-web-security-scan-results-invicti/">Troubleshooting Inconsistent Web Security Scan Results</a> </li> <li class="article"> <a href="https://www.invicti.com/support/editing-vulnerabilities-and-assigning-security-standards-in-invicti-standard/">Editing vulnerabilities and adding security standards in Invicti Standard</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Knowledge Base Nodes</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/ajax-xml-http-requests-node/">AJAX/XML HTTP Requests Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/attack-possibilities-node/">Attack Possibilities Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/comments-node/">Comments Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/crawling-performance-node/">Crawling performance node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/view-crawling-performance-node/">View the Crawling Performance node in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/view-crawling-performance-node-invicti-standard/">Viewing the Crawling performance node in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/invicti-shark-node/">Invicti Shark Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/knowledge-base-nodes/">Knowledge Base Nodes</a> </li> <li class="article"> <a href="https://www.invicti.com/support/software-composition-analysis-node/">Software Composition Analysis (SCA) Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/web-services-soap-node/">Web Services (SOAP) Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/web-pages-with-inputs-node/">Web Pages With Inputs Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/url-rewrite-node/">URL Rewrite Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/ssl-node/">SSL Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/site-profile-node/">Site Profile Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/slowest-pages-node/">Slowest Pages Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scan-performance-node/">Scan Performance Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/rest-apis-node/">REST APIs Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/proofs-node/">Proofs Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/out-of-scope-links-node/">Out of Scope Links Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/not-founds-node/">Not Founds Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/mime-types-nodes/">MIME Types Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/javascript-files-node/">JavaScript Files Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/interesting-headers-node/">Interesting Headers Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/incremental-scan-node/">Incremental Scan Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/google-web-toolkit-node/">Google Web Toolkit Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/form-validation-errors-node/">Form Validation Errors Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/file-extensions-node/">File Extensions Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/external-scripts-node/">External Scripts Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/external-frames-node/">External Frames Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/external-css-files-node/">External CSS Files Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/embedded-objects-node/">Embedded Objects Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/css-files-node/">CSS Files Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/email-addresses-node/">Email Addresses Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/cookies-node/">Cookies Node</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Issues</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Working With Issues</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/managing-issues-invicti/">Managing Issues</a> </li> <li class="article"> <a href="https://www.invicti.com/support/viewing-issues-invicti-enterprise/">Viewing issues in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/viewing-issues-invicti-standard/">Viewing Issues in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/generating-exploits-vulnerabilities-invicti-standard/">Generating Exploits for Vulnerabilities in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/vulnerability-severity-levels-invicti/">Vulnerability Severity Levels</a> </li> <li class="article"> <a href="https://www.invicti.com/support/exporting-issues-invicti/">Sending vulnerabilities manually to an issue tracking system</a> </li> <li class="article"> <a href="https://www.invicti.com/support/assigning-issue-another-team-member/">Assigning an Issue to Another Team Member</a> </li> <li class="article"> <a href="https://www.invicti.com/support/disabling-assigning-issues-code-committer/">Disabling the Assigning of Issues in Invicti to the Code Committer</a> </li> <li class="article"> <a href="https://www.invicti.com/support/viewing-http-request-response-issue/">Viewing the HTTP Request and Response of an Issue</a> </li> <li class="article"> <a href="https://www.invicti.com/support/updating-status-issue-invicti-enterprise/">Updating the status of an issue in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/tagging-invicti-enterprise/">Tagging in Invicti Enterprise</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Explanations</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/invicti-fips/">How Invicti approaches FIPS</a> </li> <li class="article"> <a href="https://www.invicti.com/support/error-messages-in-scan-failures/">Error messages in scan failures</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Technologies</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Explanations</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/technologies-invicti/">Technologies dashboard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/viewing-recent-technologies-invicti/">Viewing recent technologies</a> </li> <li class="article"> <a href="https://www.invicti.com/support/technology-notifications/">Technology notifications</a> </li> <li class="article"> <a href="https://www.invicti.com/support/how-invicti-identifies-outofdate/">How Invicti identifies out-of-date technologies</a> </li> <li class="article"> <a href="https://www.invicti.com/support/fingerprinting-libraries/">Fingerprinting libraries</a> </li> <li class="article"> <a href="https://www.invicti.com/support/detecting-log4j-vulnerability-invicti/">Detecting the Log4j vulnerability with Invicti</a> </li> <li class="article"> <a href="https://www.invicti.com/support/log4j-faq/">Log4J FAQ</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Policies</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Scan Policies</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/scan-policies-invicti/">Overview of Scan Policies</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scan-policy-fields/">Scan policy fields</a> </li> <li class="article"> <a href="https://www.invicti.com/support/share-scan-policy/">Sharing a scan policy</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scan-policy-editor-invicti/">Scan Policy Editor</a> </li> <li class="article"> <a href="https://www.invicti.com/support/create-new-scan-policy/">Creating a new scan policy</a> </li> <li class="article"> <a href="https://www.invicti.com/support/create-scan-policy-invicti-standard/">Creating a new scan policy in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scanning-single-page-applications-invicti-standard/">Scanning Single Page Applications in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scanning-single-page-applications/">Scanning Single Page Applications</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scanning-parameter-based-navigation-websites/">Scanning Parameter-Based Navigation Websites</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scan-policy-optimizer-invicti/">Scan Policy Optimizer</a> </li> <li class="article"> <a href="https://www.invicti.com/support/excluding-parameters-from-scan/">Excluding Parameters From a Scan</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-predetermined-web-form-values/">Configuring Predefined Web Form Values</a> </li> <li class="article"> <a href="https://www.invicti.com/support/hawk-vulnerabilities/">How Invicti Hawk finds vulnerabilities</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Report Policies</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/report-policies-invicti/">Overview of Report Policies</a> </li> <li class="article"> <a href="https://www.invicti.com/support/custom-report-policies-invicti/">Custom Report Policies</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Notifications</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Introduction to Notifications in Invicti Enterprise</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/notifications-invicti-enterprise/">Introduction to Notifications</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Configuring Notifications in Invicti Enterprise</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/configuring-user-profile-notifications/">Configuring the User Profile for Notifications</a> </li> <li class="article"> <a href="https://www.invicti.com/support/creating-notifications/">Creating notifications</a> </li> <li class="article"> <a href="https://www.invicti.com/support/managing-notifications/">Managing Notifications</a> </li> <li class="article"> <a href="https://www.invicti.com/support/report-vulnerabilities-issue-tracking-system/">Configuring Notifications to Report Vulnerabilities to an Issue Tracking System</a> </li> <li class="article"> <a href="https://www.invicti.com/support/managing-notification-priorities/">Managing Notification Priorities</a> </li> <li class="article"> <a href="https://www.invicti.com/support/previewing-notifications/">Previewing Notifications</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Integrations</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Introduction to Integrations</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-vulnerability-management-system/">Integrating Invicti into Your Vulnerability Management System</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-sdlc/">Integrating Invicti Enterprise into Your Existing SDLC</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Configuring Integrations</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/configuring-user-mappings/">Configuring user mappings</a> </li> <li class="article"> <a href="https://www.invicti.com/support/automating-scanning-with-bitbucket-pipelines/">Automating scanning with Bitbucket Pipelines</a> </li> <li class="article"> <a href="https://www.invicti.com/support/managing-integrations-invicti-enterprise/">Managing Integrations</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-gocd-automation-server/">Integrating Invicti Standard with GoCD Automation Server</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Issue Tracking Systems</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-issue-tracking-system/">Integrating Invicti Enterprise with an issue tracking system</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-azure-boards/">Integrating Invicti Enterprise with Azure Boards</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-bitbucket/">Integrating Invicti Enterprise with Bitbucket</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-bugzilla/">Integrating Invicti Enterprise with Bugzilla</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-defectdojo/">Integrating Invicti Enterprise with DefectDojo</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-fogbugz/">Integrating Invicti Enterprise with FogBugz</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-freshservice/">Integrating Invicti Enterprise with Freshservice</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-github/">Integrating Invicti Enterprise with GitHub</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-gitlab-issue-tracking/">Integrating Invicti Enterprise with GitLab Issues (Issue Tracking)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-jazzteam/">Integrating Invicti Enterprise with Jazz Team Server</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-jira/">Integrating Invicti Enterprise with Jira</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-kafka/">Integrating Invicti Enterprise with Kafka</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-kenna/">Integrating Invicti Enterprise with Kenna</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-pagerduty/">Integrating Invicti Enterprise with PagerDuty</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-pivotal-tracker/">Integrating Invicti Enterprise with Pivotal Tracker</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-redmine/">Integrating Invicti Enterprise with Redmine</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-servicenow/">Integrating Invicti Enterprise with ServiceNow Incident Management</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-shortcut/">Integrating Invicti Enterprise with Shortcut</a> </li> <li class="article"> <a href="https://www.invicti.com/support/invicti-enterprise-addon-splunk/">Integrating Invicti Enterprise with Splunk</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-tfs/">Integrating Invicti Enterprise with TFS</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-netsparking-enterprise-unfuddle/">Integrating Invicti Enterprise with Unfuddle</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-youtrack/">Integrating Invicti Enterprise with YouTrack</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-with-invicti-enterprise/">Integrating Invicti Standard with Invicti Enterprise</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Project Management</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-asana/">Integrating Invicti Enterprise with Asana</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-trello/">Integrating Invicti Enterprise with Trello</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-asana/">Integrating Invicti Standard with Asana</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-trello/">Integrating Invicti Standard with Trello</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Continuous Integration Systems</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/viewing-continuous-integrations-information-status-window/">Viewing Continuous Integration Information in the Status Window</a> </li> <li class="article"> <a href="https://www.invicti.com/support/viewing-continuous-integration-information-issues-window/">Viewing Continuous Integration Information in the Issues Window</a> </li> <li class="article"> <a href="https://www.invicti.com/support/continuous-integration-details-scan-report/">Accessing Continuous Integration Details in the Scan Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-azure-pipelines/">Integrating Invicti Enterprise with Azure Pipelines</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-bamboo-plugin/">Integrating Invicti Enterprise with the Bamboo Plugin</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-circleci/">Integrating Invicti Enterprise with CircleCI</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-gitlab-ci-cd/">Integrating Invicti Enterprise with GitLab CI/CD</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-urbancode-deploy/">Integrating Invicti Enterprise with UrbanCode Deploy</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-github-actions/">Integrating Invicti Enterprise with GitHub Actions</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-scan-jenkins-plugin/">Integrating Invicti Enterprise with Jenkins</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-jenkins/">Integrating Invicti Standard with Jenkins</a> </li> <li class="article"> <a href="https://www.invicti.com/support/installing-configuring-invicti-enterprise-scan-teamcity-plugin/">Installing and Configuring the Invicti Enterprise Scan TeamCity Plugin</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-teamcity-plugin/">Integrating Invicti Enterprise with the TeamCity Plugin</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-travis-ci/">Integrating Invicti Enterprise with Travis CI</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Communication</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-mattermost/">Integrating Invicti Enterprise with Mattermost</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-microsoft-teams/">Integrating Invicti Enterprise with Microsoft Teams</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-slack/">Integrating Invicti Enterprise with Slack</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Secret and Encryption Management</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-azure-key-vault/">Integrating Invicti Enterprise with Azure Key Vault</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-hashicorp-vault/">Integrating Invicti Enterprise with HashiCorp Vault</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-cyberark-vault/">Integrating Invicti Enterprise with CyberArk Vault</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">API</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-webhook/">Integrating Invicti Enterprise with Webhooks</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-zapier/">Integrating Invicti Enterprise with Zapier</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Single Sign-On Providers</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/single-sign-on-saml-authentication/">SAML Authentication Services</a> </li> <li class="article"> <a href="https://www.invicti.com/support/sso-configuring-azureactivedirectory-single-sign-on-integration-with-saml/">Configuring Microsoft Entra ID (Azure Active Directory) Integration with SAML</a> </li> <li class="article"> <a href="https://www.invicti.com/support/sso-configuring-google-single-sign-on-integration-with-saml/">Configuring Google Single Sign-On Integration with SAML</a> </li> <li class="article"> <a href="https://www.invicti.com/support/sso-configuring-microsoftactivedirectory-single-sign-on-integration-with-saml/">Configuring Microsoft Active Directory Federation Services Integration with SAML</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-okta-sso-integration-with-saml/">Configuring Okta Single Sign-On Integration with SAML</a> </li> <li class="article"> <a href="https://www.invicti.com/support/sso-configuring-pingfederate-single-sign-on-integration-with-saml/">Configuring PingFederate Single Sign-On Integration with SAML</a> </li> <li class="article"> <a href="https://www.invicti.com/support/sso-configuring-pingidentity-single-sign-on-integration-with-saml/">Configuring Ping Identity Single Sign-On Integration with SAML</a> </li> <li class="article"> <a href="https://www.invicti.com/support/sso-configuring-saml-based-single-sign-on-integration/">Configuring SAML-Based Single Sign-On Integration</a> </li> <li class="article"> <a href="https://www.invicti.com/support/troubleshooting-sso-issues/">Troubleshooting SSO Issues</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">System for Cross-domain Identity Management</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/configuring-azure-active-directory-integration-with-scim/">Configuring Microsoft Entra ID (Azure Active Directory) Integration with SCIM</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-okta-integration-with-scim/">Configuring Okta Integration with SCIM</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Vulnerability Management</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-servicenow-vulnerability-response-plugin/">Integrating Invicti Enterprise with ServiceNow Vulnerability Response (Plugin)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-servicenow-vulnerability-response/">Integrating Invicti Enterprise with ServiceNow Vulnerability Response using an integration script</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrate-servicenow-application-vulnerability-response/">Integrating Invicti Enterprise with ServiceNow Application Vulnerability Response</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Connections</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/integrate-mend-sast/">Integrating Invicti Enterprise with Mend SAST and SCA</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Send To Actions</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/configuring-auto-send-to-actions-invicti-standard/">Configuring Auto Send To Actions in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/custom-send-to-actions-invicti/">Configuring the User Interface for Custom Send To Actions in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-azure-boards/">Integrating Invicti Standard with Azure Boards</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-bitbucket/">Integrating Invicti Standard with Bitbucket</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-bugzilla/">Integrating Invicti Standard with Bugzilla</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-email/">Integrating Invicti Standard with Email</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-fogbugz/">Integrating Invicti Standard with FogBugz</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-freshservice/">Integrating Invicti Standard with Freshservice</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-github/">Integrating Invicti Standard with GitHub</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-gitlab/">Integrating Invicti Standard with GitLab</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-jazzteam/">Integrating Invicti Standard with Jazz Team Server</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-jira/">Integrating Invicti Standard with Jira</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-kenna/">Integrating Invicti Standard with Kenna</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-microsoft-teams/">Integrating Invicti Standard with Microsoft Teams</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-pivotal-tracker/">Integrating Invicti Standard with Pivotal Tracker</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-redmine/">Integrating Invicti Standard with Redmine</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-shortcut-invicti-standard/">Integrating Invicti Standard with Shortcut</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-tfs/">Integrating Invicti Standard with TFS</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-unfuddle/">Integrating Invicti Standard with Unfuddle</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-webhook/">Integrating Invicti Standard with Webhooks</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-youtrack/">Integrating Invicti Standard with YouTrack</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-zapier/">Integrating Invicti Standard with Zapier</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Team Management</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Introduction to Team Management</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/overview-of-team-management/">Overview of team management in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/managing-members-invicti-enterprise/">Managing team members in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/managing-roles-invicti-enterprise/">Managing roles in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/managing-teams-invicti-enterprise/">Managing teams in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/activity-log/">Activity Logs</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">User Permissions</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/viewing-roles-and-teams/">Viewing your roles and teams</a> </li> <li class="article"> <a href="https://www.invicti.com/support/general-settings-user-roles-and-permissions/">User roles and permissions</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-roles-invicti-enterprise/">Configuring roles in Invicti Enterprise</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Team Administrator role</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/team-administrator-capabilities-assigning-role/">Team Administrator capabilities and assigning the role</a> </li> <li class="article"> <a href="https://www.invicti.com/support/assigning-roles-to-specific-member/">Assigning roles to a specific member</a> </li> <li class="article"> <a href="https://www.invicti.com/support/assigning-roles-to-a-team/">Assigning roles to a team</a> </li> <li class="article"> <a href="https://www.invicti.com/support/custom-team-administrator-roles-with-setup-examples/">Custom Team Administrator roles with setup examples</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">LDAP service</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/configuring-ldap/">Configuring LDAP</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Agents</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Scan Agents</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/agents-invicti-enterprise-on-premises/">Agents in Invicti Enterprise On-Premises</a> </li> <li class="article"> <a href="https://www.invicti.com/support/internal-agents-invicti-enterprise/">Internal Agents in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/installing-internal-agents/">Installing scan agents on Windows</a> </li> <li class="article"> <a href="https://www.invicti.com/support/installing-scan-agent-linux-debian/">Installing scan agents on Linux (Debian Distribution)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/installing-scan-agent-linux-redhat/">Installing scan agents on Linux (RedHat Distribution)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/installing-scan-agent-dockerization/">Installing scan agents via Docker</a> </li> <li class="article"> <a href="https://www.invicti.com/support/installing-scanner-agent-via-openshift-kubernetes/">Installing scan agents via Kubernetes and OpenShift</a> </li> <li class="article"> <a href="https://www.invicti.com/support/agent-token-encryption/">Encrypting the Agent Token</a> </li> <li class="article"> <a href="https://www.invicti.com/support/disabling-enabling-scanner-agents/">Disabling and enabling scanner agents</a> </li> <li class="article"> <a href="https://www.invicti.com/support/agent-secret-management/">Configuring internal agents for secrets management services</a> </li> <li class="article"> <a href="https://www.invicti.com/support/troubleshooting-agent-issues/">Troubleshooting agent issues</a> </li> <li class="article"> <a href="https://www.invicti.com/support/malware-analyzer-clamav-invicti/">Malware Analysis with ClamAV in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/agent-commands-logs/">Viewing agent commands and accessing agent logs</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Authentication Verifier Agents</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/managing-authentication-verifier-agent-invicti/">Managing Authentication Verifier Agents</a> </li> <li class="article"> <a href="https://www.invicti.com/support/authentication-verifier-agent/">Installing Authentication Verifier Agents</a> </li> <li class="article"> <a href="https://www.invicti.com/support/authentication-verifier-agent-linux-debian/">Installing Authentication Verifier Agent on Linux (Debian Distribution)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/authentication-verifier-agent-linux-redhat/">Installing Authentication Verifier Agent on Linux (RedHat Distribution)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/starting-the-authverifier-on-docker-using-a-docker-scan-agent/">Starting the AuthVerifier on Docker using a Docker Scan Agent</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Agent Groups</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/managing-agent-groups/">Managing Agent Groups</a> </li> <li class="article"> <a href="https://www.invicti.com/support/assigning-agents-to-teams/">Assigning agents to teams</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children active"> <div class="menu-item-block"> <a href="#" onclick="return false;">Settings</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Invicti Enterprise Settings</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/general-settings-invicti/">General Settings</a> </li> <li class="article"> <a href="https://www.invicti.com/support/general-settings-user-roles-and-permissions/">User roles and permissions</a> </li> <li class="article"> <a href="https://www.invicti.com/support/data-encryption-storage-retention/">Data Encryption, Storage, and Retention</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-login-warning-banner/">Configuring Login Warning Banner</a> </li> <li class="article"> <a href="https://www.invicti.com/support/single-sign-on-settings/">Single Sign-On Settings</a> </li> <li class="article"> <a href="https://www.invicti.com/support/ip-restrictions-settings/">IP Restrictions Settings</a> </li> </ul> </li> <li class="menu-item menu-item-has-children active"> <div class="menu-item-block"> <a href="#" onclick="return false;">Invicti Enterprise On-Premises</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/security-settings/">Security settings</a> </li> <li class="article"> <a href="https://www.invicti.com/support/email-settings/">Email settings</a> </li> <li class="article"> <a href="https://www.invicti.com/support/sms-settings/">SMS Settings</a> </li> <li class="article"> <a href="https://www.invicti.com/support/encryption-invicti-enterprise/">Encryption Settings</a> </li> <li class="article"> <a href="https://www.invicti.com/support/service-credentials-settings/">Service Credentials settings</a> </li> <li class="article"> <a href="https://www.invicti.com/support/cloud-provider-settings/">Cloud Provider Settings</a> </li> <li class="article"> <a href="https://www.invicti.com/support/licensing-settings/">Licensing settings</a> </li> <li class="article"> <a href="https://www.invicti.com/support/database-settings/">Database settings</a> </li> <li class="article"> <a href="https://www.invicti.com/support/authentication-verifier-settings/">Authentication Verifier Settings</a> </li> <li class="article current-menu-item active"> <a href="https://www.invicti.com/support/custom-db-maintenance/">Configuring custom database maintenance</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-agent-selection/">Configuring agent selection</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Invicti Standard Options</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/advanced/">Accessing Advanced Options</a> </li> <li class="article"> <a href="https://www.invicti.com/support/send-to-actions/">Send To Actions</a> </li> <li class="article"> <a href="https://www.invicti.com/support/logging/">Logging</a> </li> <li class="article"> <a href="https://www.invicti.com/support/invicti-assistant/">Invicti Assistant</a> </li> <li class="article"> <a href="https://www.invicti.com/support/enterprise-integration/">Enterprise Integration</a> </li> <li class="article"> <a href="https://www.invicti.com/support/proxy/">Proxy</a> </li> <li class="article"> <a href="https://www.invicti.com/support/internal-proxy/">Internal Proxy</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scan-policy/">Scan Policy</a> </li> <li class="article"> <a href="https://www.invicti.com/support/auto-update/">Auto Update</a> </li> <li class="article"> <a href="https://www.invicti.com/support/storage/">Storage</a> </li> <li class="article"> <a href="https://www.invicti.com/support/general/">General</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Your Account</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Account Options</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/account-invicti/">Account</a> </li> <li class="article"> <a href="https://www.invicti.com/support/settings-password-invicti/">Managing Your Account Settings and Password</a> </li> <li class="article"> <a href="https://www.invicti.com/support/api-overview/">API Settings Overview</a> </li> <li class="article"> <a href="https://www.invicti.com/support/two-factor-authentication/">Two-Factor Authentication</a> </li> <li class="article"> <a href="https://www.invicti.com/support/license/">License</a> </li> <li class="article"> <a href="https://www.invicti.com/support/about/">About</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">FAQs</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">General FAQs</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/scan-firefox-only-target/">How can I scan a Firefox-only target?</a> </li> <li class="article"> <a href="https://www.invicti.com/support/losing-login-status-during-scan/">Why does my scan lose login status during a scan?</a> </li> <li class="article"> <a href="https://www.invicti.com/support/how-can-i-introduce-a-delay-into-my-custom-script/">How can I introduce a delay into my custom script?</a> </li> <li class="article"> <a href="https://www.invicti.com/support/why-does-my-api-source-show-any-apis/">Why does my API source not show any APIs in the API Inventory?</a> </li> <li class="article"> <a href="https://www.invicti.com/support/target-sitemap-changes-between-scans/">Why does my target&#039;s sitemap change between scans?</a> </li> </ul> </li> </ul> </li> </ul> </div> </aside> <main class="entry-content single-support-entry post-47319 support type-support status-publish format-standard hentry support-categories-on-premises-settings support-categories-settings"> <div class="article-cat"> <a href="https://www.invicti.com/support/category/on-premises-settings/"> Invicti Enterprise On-Premises</a> </div> <div class="article-heading entry-title"> <h1>Configuring custom database maintenance</h1> </div> <div class="article-coverage"> <span>This document is for:</span> <div class="products"> Invicti Enterprise On-Premises </div> </div> <p>Invicti Enterprise performs daily automatic SQL Server Index maintenance every morning at 6 a.m. (RebuildIndexesLongTermQuery) and 7 a.m. (RebuildIndexes). You can disable this automatic database maintenance and instead set your own custom database maintenance schedule using the SQL Server Agent.</p> <h2 class="wp-block-heading">How to configure custom database maintenance</h2> <figure class="wp-block-table"><table><tbody><tr><td><img src="https://lh7-us.googleusercontent.com/JMJXEKW8rs1EgfXb6kMKIe9dfTEMSdKWhNmIsMtrSGgaVn31M7SEjQRXMt87-SglhAFexTkZta4n9ZIIC6YtUVziKVgqTwnLpFDGk0Sa3qW_ZWj4MQHSUk8dM8ykzW33xo0_3kceqQO_wg85mSvS6FI" loading="lazy" width="35" height="35"></td><td><strong>Information: </strong>You will need the SQL Server Agent installed in order to carry out these instructions.</td></tr></tbody></table></figure> <h3 class="wp-block-heading">Step 1: Disable automatic database maintenance</h3> <ul class="wp-block-list"> <li>Log in to Invicti Enterprise as an Account Owner or Account Administrator.</li> <li>Select <strong>Settings</strong> &gt; <strong>Database</strong> from the left-side menu.</li> <li>Click the checkbox next to <strong>Disable DB Maintenance</strong>.</li> <li>Click <strong>Verify &amp; Save</strong>.</li> <li>Restart IIS. (Open Command Prompt and execute the command: <strong>iisreset</strong>) </li> </ul> <p class="has-text-align-center"><strong><img src="https://lh7-us.googleusercontent.com/Ue0CVR2aIx_Xw3Ap8xqGKWzbEc8jGTk76IiQmMdk0OTOrdmwbi0HIP3C54t12P5RAGPWh1LNAlOXKMPJ8b3WEiBiNJpAieTETwhuzquV1MXxWbmPEURAuKX34E31FnKTYhpM5A4wbzRF7v1xRf2jNAU" loading="lazy" width="624" height="344"></strong></p> <h3 class="wp-block-heading">Step 2: Create a new database for maintenance operations</h3> <ul class="wp-block-list"> <li>Create a new SQL Server database using the query below.</li> </ul> <pre class="wp-block-code"><code>USE &#091;master] GO CREATE DATABASE &#091;DBAtools]</code></pre> <h3 class="wp-block-heading">Step 3: Run stored procedure and table creation operations</h3> <ul class="wp-block-list"> <li>Execute the following “CommandLog” script on the newly created DBAtools database to create a command log table. Information about the operations performed for Index maintenance will be recorded in this table.</li> </ul> <pre class="wp-block-code"><code> SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'&#091;dbo].&#091;CommandLog]') AND type in (N'U')) BEGIN CREATE TABLE &#091;dbo].&#091;CommandLog]( &#091;ID] &#091;int] IDENTITY(1,1) NOT NULL, &#091;DatabaseName] &#091;sysname] NULL, &#091;SchemaName] &#091;sysname] NULL, &#091;ObjectName] &#091;sysname] NULL, &#091;ObjectType] &#091;char](2) NULL, &#091;IndexName] &#091;sysname] NULL, &#091;IndexType] &#091;tinyint] NULL, &#091;StatisticsName] &#091;sysname] NULL, &#091;PartitionNumber] &#091;int] NULL, &#091;ExtendedInfo] &#091;xml] NULL, &#091;Command] &#091;nvarchar](max) NOT NULL, &#091;CommandType] &#091;nvarchar](60) NOT NULL, &#091;StartTime] &#091;datetime2](7) NOT NULL, &#091;EndTime] &#091;datetime2](7) NULL, &#091;ErrorNumber] &#091;int] NULL, &#091;ErrorMessage] &#091;nvarchar](max) NULL, CONSTRAINT &#091;PK_CommandLog] PRIMARY KEY CLUSTERED ( &#091;ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ) END GO </code></pre> <div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained"> <ul class="wp-block-list"> <li>Execute the following “CommandExecute” script on the DBAtools database. (Click the <strong>+</strong> (plus) icon below to expand the script)</li> </ul> </div></div> <div class="invicti-block accordion style-one" id="accordion_67b3637a48537"> <div class="accordion-section"> <h4 class="accordion-heading">CommandExecute script</h4> <div class="accordion-text-holder"> <div class="accordion-text"><p>SET ANSI_NULLS ON<br /> GO<br /> SET QUOTED_IDENTIFIER ON<br /> GO<br /> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[CommandExecute]&#8217;) AND type in (N&#8217;P&#8217;, N&#8217;PC&#8217;))<br /> BEGIN<br /> EXEC dbo.sp_executesql @statement = N&#8217;CREATE PROCEDURE [dbo].[CommandExecute] AS&#8217;<br /> END<br /> GO<br /> ALTER PROCEDURE [dbo].[CommandExecute]</p> <p>@DatabaseContext nvarchar(max),<br /> @Command nvarchar(max),<br /> @CommandType nvarchar(max),<br /> @Mode int,<br /> @Comment nvarchar(max) = NULL,<br /> @DatabaseName nvarchar(max) = NULL,<br /> @SchemaName nvarchar(max) = NULL,<br /> @ObjectName nvarchar(max) = NULL,<br /> @ObjectType nvarchar(max) = NULL,<br /> @IndexName nvarchar(max) = NULL,<br /> @IndexType int = NULL,<br /> @StatisticsName nvarchar(max) = NULL,<br /> @PartitionNumber int = NULL,<br /> @ExtendedInfo xml = NULL,<br /> @LockMessageSeverity int = 16,<br /> @ExecuteAsUser nvarchar(max) = NULL,<br /> @LogToTable nvarchar(max),<br /> @Execute nvarchar(max)</p> <p>AS</p> <p>BEGIN</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br /> &#8211;// Source: https://ola.hallengren.com //&#8211;<br /> &#8211;// License: https://ola.hallengren.com/license.html //&#8211;<br /> &#8211;// GitHub: https://github.com/olahallengren/sql-server-maintenance-solution //&#8211;<br /> &#8211;// Version: 2022-12-03 17:23:44 //&#8211;<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> SET NOCOUNT ON</p> <p> DECLARE @StartMessage nvarchar(max)<br /> DECLARE @EndMessage nvarchar(max)<br /> DECLARE @ErrorMessage nvarchar(max)<br /> DECLARE @ErrorMessageOriginal nvarchar(max)<br /> DECLARE @Severity int</p> <p> DECLARE @Errors TABLE (ID int IDENTITY PRIMARY KEY,<br /> [Message] nvarchar(max) NOT NULL,<br /> Severity int NOT NULL,<br /> [State] int)</p> <p> DECLARE @CurrentMessage nvarchar(max)<br /> DECLARE @CurrentSeverity int<br /> DECLARE @CurrentState int</p> <p> DECLARE @sp_executesql nvarchar(max) = QUOTENAME(@DatabaseContext) + &#8216;.sys.sp_executesql&#8217;</p> <p> DECLARE @StartTime datetime2<br /> DECLARE @EndTime datetime2</p> <p> DECLARE @ID int</p> <p> DECLARE @Error int = 0<br /> DECLARE @ReturnCode int = 0</p> <p> DECLARE @EmptyLine nvarchar(max) = CHAR(9)</p> <p> DECLARE @RevertCommand nvarchar(max)</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br /> &#8211;// Check core requirements //&#8211;<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF NOT (SELECT [compatibility_level] FROM sys.databases WHERE database_id = DB_ID()) &gt;= 90<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The database &#8216; + QUOTENAME(DB_NAME(DB_ID())) + &#8216; has to be in compatibility level 90 or higher.&#8217;, 16, 1<br /> END</p> <p> IF NOT (SELECT uses_ansi_nulls FROM sys.sql_modules WHERE [object_id] = @@PROCID) = 1<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;ANSI_NULLS has to be set to ON for the stored procedure.&#8217;, 16, 1<br /> END</p> <p> IF NOT (SELECT uses_quoted_identifier FROM sys.sql_modules WHERE [object_id] = @@PROCID) = 1<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;QUOTED_IDENTIFIER has to be set to ON for the stored procedure.&#8217;, 16, 1<br /> END</p> <p> IF @LogToTable = &#8216;Y&#8217; AND NOT EXISTS (SELECT * FROM sys.objects objects INNER JOIN sys.schemas schemas ON objects.[schema_id] = schemas.[schema_id] WHERE objects.[type] = &#8216;U&#8217; AND schemas.[name] = &#8216;dbo&#8217; AND objects.[name] = &#8216;CommandLog&#8217;)<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The table CommandLog is missing. Download https://ola.hallengren.com/scripts/CommandLog.sql.&#8217;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br /> &#8211;// Check input parameters //&#8211;<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @DatabaseContext IS NULL OR NOT EXISTS (SELECT * FROM sys.databases WHERE name = @DatabaseContext)<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @DatabaseContext is not supported.&#8217;, 16, 1<br /> END</p> <p> IF @Command IS NULL OR @Command = &#8221;<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @Command is not supported.&#8217;, 16, 1<br /> END</p> <p> IF @CommandType IS NULL OR @CommandType = &#8221; OR LEN(@CommandType) &gt; 60<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @CommandType is not supported.&#8217;, 16, 1<br /> END</p> <p> IF @Mode NOT IN(1,2) OR @Mode IS NULL<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @Mode is not supported.&#8217;, 16, 1<br /> END</p> <p> IF @LockMessageSeverity NOT IN(10,16) OR @LockMessageSeverity IS NULL<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @LockMessageSeverity is not supported.&#8217;, 16, 1<br /> END</p> <p> IF LEN(@ExecuteAsUser) &gt; 128<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @ExecuteAsUser is not supported.&#8217;, 16, 1<br /> END</p> <p> IF @LogToTable NOT IN(&#8216;Y&#8217;,&#8217;N&#8217;) OR @LogToTable IS NULL<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @LogToTable is not supported.&#8217;, 16, 1<br /> END</p> <p> IF @Execute NOT IN(&#8216;Y&#8217;,&#8217;N&#8217;) OR @Execute IS NULL<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @Execute is not supported.&#8217;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br /> &#8211;// Raise errors //&#8211;<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> DECLARE ErrorCursor CURSOR FAST_FORWARD FOR SELECT [Message], Severity, [State] FROM @Errors ORDER BY [ID] ASC</p> <p> OPEN ErrorCursor</p> <p> FETCH ErrorCursor INTO @CurrentMessage, @CurrentSeverity, @CurrentState</p> <p> WHILE @@FETCH_STATUS = 0<br /> BEGIN<br /> RAISERROR(&#8216;%s&#8217;, @CurrentSeverity, @CurrentState, @CurrentMessage) WITH NOWAIT<br /> RAISERROR(@EmptyLine, 10, 1) WITH NOWAIT</p> <p> FETCH NEXT FROM ErrorCursor INTO @CurrentMessage, @CurrentSeverity, @CurrentState<br /> END</p> <p> CLOSE ErrorCursor</p> <p> DEALLOCATE ErrorCursor</p> <p> IF EXISTS (SELECT * FROM @Errors WHERE Severity &gt;= 16)<br /> BEGIN<br /> SET @ReturnCode = 50000<br /> GOTO ReturnCode<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br /> &#8211;// Execute as user //&#8211;<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @ExecuteAsUser IS NOT NULL<br /> BEGIN<br /> SET @Command = &#8216;EXECUTE AS USER = &#8221;&#8217; + REPLACE(@ExecuteAsUser,&#8221;&#8221;,&#8221;&#8221;&#8221;) + &#8221;&#8217;; &#8216; + @Command + &#8216;; REVERT;&#8217;</p> <p> SET @RevertCommand = &#8216;REVERT&#8217;<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br /> &#8211;// Log initial information //&#8211;<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> SET @StartTime = SYSDATETIME()</p> <p> SET @StartMessage = &#8216;Date and time: &#8216; + CONVERT(nvarchar,@StartTime,120)<br /> RAISERROR(&#8216;%s&#8217;,10,1,@StartMessage) WITH NOWAIT</p> <p> SET @StartMessage = &#8216;Database context: &#8216; + QUOTENAME(@DatabaseContext)<br /> RAISERROR(&#8216;%s&#8217;,10,1,@StartMessage) WITH NOWAIT</p> <p> SET @StartMessage = &#8216;Command: &#8216; + @Command<br /> RAISERROR(&#8216;%s&#8217;,10,1,@StartMessage) WITH NOWAIT</p> <p> IF @Comment IS NOT NULL<br /> BEGIN<br /> SET @StartMessage = &#8216;Comment: &#8216; + @Comment<br /> RAISERROR(&#8216;%s&#8217;,10,1,@StartMessage) WITH NOWAIT<br /> END</p> <p> IF @LogToTable = &#8216;Y&#8217;<br /> BEGIN<br /> INSERT INTO dbo.CommandLog (DatabaseName, SchemaName, ObjectName, ObjectType, IndexName, IndexType, StatisticsName, PartitionNumber, ExtendedInfo, CommandType, Command, StartTime)<br /> VALUES (@DatabaseName, @SchemaName, @ObjectName, @ObjectType, @IndexName, @IndexType, @StatisticsName, @PartitionNumber, @ExtendedInfo, @CommandType, @Command, @StartTime)<br /> END</p> <p> SET @ID = SCOPE_IDENTITY()</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br /> &#8211;// Execute command //&#8211;<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @Mode = 1 AND @Execute = &#8216;Y&#8217;<br /> BEGIN<br /> EXECUTE @sp_executesql @stmt = @Command<br /> SET @Error = @@ERROR<br /> SET @ReturnCode = @Error<br /> END</p> <p> IF @Mode = 2 AND @Execute = &#8216;Y&#8217;<br /> BEGIN<br /> BEGIN TRY<br /> EXECUTE @sp_executesql @stmt = @Command<br /> END TRY<br /> BEGIN CATCH<br /> SET @Error = ERROR_NUMBER()<br /> SET @ErrorMessageOriginal = ERROR_MESSAGE()</p> <p> SET @ErrorMessage = &#8216;Msg &#8216; + CAST(ERROR_NUMBER() AS nvarchar) + &#8216;, &#8216; + ISNULL(ERROR_MESSAGE(),&#8221;)<br /> SET @Severity = CASE WHEN ERROR_NUMBER() IN(1205,1222) THEN @LockMessageSeverity ELSE 16 END<br /> RAISERROR(&#8216;%s&#8217;,@Severity,1,@ErrorMessage) WITH NOWAIT</p> <p> IF NOT (ERROR_NUMBER() IN(1205,1222) AND @LockMessageSeverity = 10)<br /> BEGIN<br /> SET @ReturnCode = ERROR_NUMBER()<br /> END</p> <p> IF @ExecuteAsUser IS NOT NULL<br /> BEGIN<br /> EXECUTE @sp_executesql @RevertCommand<br /> END<br /> END CATCH<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br /> &#8211;// Log completing information //&#8211;<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> SET @EndTime = SYSDATETIME()</p> <p> SET @EndMessage = &#8216;Outcome: &#8216; + CASE WHEN @Execute = &#8216;N&#8217; THEN &#8216;Not Executed&#8217; WHEN @Error = 0 THEN &#8216;Succeeded&#8217; ELSE &#8216;Failed&#8217; END<br /> RAISERROR(&#8216;%s&#8217;,10,1,@EndMessage) WITH NOWAIT</p> <p> SET @EndMessage = &#8216;Duration: &#8216; + CASE WHEN (DATEDIFF(SECOND,@StartTime,@EndTime) / (24 * 3600)) &gt; 0 THEN CAST((DATEDIFF(SECOND,@StartTime,@EndTime) / (24 * 3600)) AS nvarchar) + &#8216;.&#8217; ELSE &#8221; END + CONVERT(nvarchar,DATEADD(SECOND,DATEDIFF(SECOND,@StartTime,@EndTime),&#8217;1900-01-01&#8242;),108)<br /> RAISERROR(&#8216;%s&#8217;,10,1,@EndMessage) WITH NOWAIT</p> <p> SET @EndMessage = &#8216;Date and time: &#8216; + CONVERT(nvarchar,@EndTime,120)<br /> RAISERROR(&#8216;%s&#8217;,10,1,@EndMessage) WITH NOWAIT</p> <p> RAISERROR(@EmptyLine,10,1) WITH NOWAIT</p> <p> IF @LogToTable = &#8216;Y&#8217;<br /> BEGIN<br /> UPDATE dbo.CommandLog<br /> SET EndTime = @EndTime,<br /> ErrorNumber = CASE WHEN @Execute = &#8216;N&#8217; THEN NULL ELSE @Error END,<br /> ErrorMessage = @ErrorMessageOriginal<br /> WHERE ID = @ID<br /> END</p> <p> ReturnCode:<br /> IF @ReturnCode 0<br /> BEGIN<br /> RETURN @ReturnCode<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p>END<br /> GO</p> </div> </div> </div> </div> <ul class="wp-block-list"> <li>Execute the following “IndexOptimize” script on the DBAtools database. (Click the <strong>+</strong> (plus) icon below to expand the script)</li> </ul> <div class="invicti-block accordion style-one" id="accordion_67b3637a498e2"> <div class="accordion-section"> <h4 class="accordion-heading">IndexOptimize script</h4> <div class="accordion-text-holder"> <div class="accordion-text"><p>SET ANSI_NULLS ON<br /> GO<br /> SET QUOTED_IDENTIFIER ON<br /> GO<br /> IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[IndexOptimize]&#8217;) AND type in (N&#8217;P&#8217;, N&#8217;PC&#8217;))<br /> BEGIN<br /> EXEC dbo.sp_executesql @statement = N&#8217;CREATE PROCEDURE [dbo].[IndexOptimize] AS&#8217;<br /> END<br /> GO<br /> ALTER PROCEDURE [dbo].[IndexOptimize]</p> <p>@Databases nvarchar(max) = NULL,<br /> @FragmentationLow nvarchar(max) = NULL,<br /> @FragmentationMedium nvarchar(max) = &#8216;INDEX_REORGANIZE,INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE&#8217;,<br /> @FragmentationHigh nvarchar(max) = &#8216;INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE&#8217;,<br /> @FragmentationLevel1 int = 5,<br /> @FragmentationLevel2 int = 30,<br /> @MinNumberOfPages int = 1000,<br /> @MaxNumberOfPages int = NULL,<br /> @SortInTempdb nvarchar(max) = &#8216;N&#8217;,<br /> @MaxDOP int = NULL,<br /> @FillFactor int = NULL,<br /> @PadIndex nvarchar(max) = NULL,<br /> @LOBCompaction nvarchar(max) = &#8216;Y&#8217;,<br /> @UpdateStatistics nvarchar(max) = NULL,<br /> @OnlyModifiedStatistics nvarchar(max) = &#8216;N&#8217;,<br /> @StatisticsModificationLevel int = NULL,<br /> @StatisticsSample int = NULL,<br /> @StatisticsResample nvarchar(max) = &#8216;N&#8217;,<br /> @PartitionLevel nvarchar(max) = &#8216;Y&#8217;,<br /> @MSShippedObjects nvarchar(max) = &#8216;N&#8217;,<br /> @Indexes nvarchar(max) = NULL,<br /> @TimeLimit int = NULL,<br /> @Delay int = NULL,<br /> @WaitAtLowPriorityMaxDuration int = NULL,<br /> @WaitAtLowPriorityAbortAfterWait nvarchar(max) = NULL,<br /> @Resumable nvarchar(max) = &#8216;N&#8217;,<br /> @AvailabilityGroups nvarchar(max) = NULL,<br /> @LockTimeout int = NULL,<br /> @LockMessageSeverity int = 16,<br /> @StringDelimiter nvarchar(max) = &#8216;,&#8217;,<br /> @DatabaseOrder nvarchar(max) = NULL,<br /> @DatabasesInParallel nvarchar(max) = &#8216;N&#8217;,<br /> @ExecuteAsUser nvarchar(max) = NULL,<br /> @LogToTable nvarchar(max) = &#8216;N&#8217;,<br /> @Execute nvarchar(max) = &#8216;Y&#8217;</p> <p>AS</p> <p>BEGIN</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br /> &#8211;// Source: https://ola.hallengren.com //&#8211;<br /> &#8211;// License: https://ola.hallengren.com/license.html //&#8211;<br /> &#8211;// GitHub: https://github.com/olahallengren/sql-server-maintenance-solution //&#8211;<br /> &#8211;// Version: 2022-12-03 17:23:44 //&#8211;<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> SET NOCOUNT ON</p> <p> SET ARITHABORT ON</p> <p> SET NUMERIC_ROUNDABORT OFF</p> <p> DECLARE @StartMessage nvarchar(max)<br /> DECLARE @EndMessage nvarchar(max)<br /> DECLARE @DatabaseMessage nvarchar(max)<br /> DECLARE @ErrorMessage nvarchar(max)<br /> DECLARE @Severity int</p> <p> DECLARE @StartTime datetime2 = SYSDATETIME()<br /> DECLARE @SchemaName nvarchar(max) = OBJECT_SCHEMA_NAME(@@PROCID)<br /> DECLARE @ObjectName nvarchar(max) = OBJECT_NAME(@@PROCID)<br /> DECLARE @VersionTimestamp nvarchar(max) = SUBSTRING(OBJECT_DEFINITION(@@PROCID),CHARINDEX(&#8216;&#8211;// Version: &#8216;,OBJECT_DEFINITION(@@PROCID)) + LEN(&#8216;&#8211;// Version: &#8216;) + 1, 19)<br /> DECLARE @Parameters nvarchar(max)</p> <p> DECLARE @HostPlatform nvarchar(max)</p> <p> DECLARE @PartitionLevelStatistics bit</p> <p> DECLARE @QueueID int<br /> DECLARE @QueueStartTime datetime2</p> <p> DECLARE @CurrentDBID int<br /> DECLARE @CurrentDatabaseName nvarchar(max)</p> <p> DECLARE @CurrentDatabase_sp_executesql nvarchar(max)</p> <p> DECLARE @CurrentExecuteAsUserExists bit<br /> DECLARE @CurrentUserAccess nvarchar(max)<br /> DECLARE @CurrentIsReadOnly bit<br /> DECLARE @CurrentDatabaseState nvarchar(max)<br /> DECLARE @CurrentInStandby bit<br /> DECLARE @CurrentRecoveryModel nvarchar(max)</p> <p> DECLARE @CurrentIsDatabaseAccessible bit<br /> DECLARE @CurrentReplicaID uniqueidentifier<br /> DECLARE @CurrentAvailabilityGroupID uniqueidentifier<br /> DECLARE @CurrentAvailabilityGroup nvarchar(max)<br /> DECLARE @CurrentAvailabilityGroupRole nvarchar(max)<br /> DECLARE @CurrentDatabaseMirroringRole nvarchar(max)</p> <p> DECLARE @CurrentDatabaseContext nvarchar(max)<br /> DECLARE @CurrentCommand nvarchar(max)<br /> DECLARE @CurrentCommandOutput int<br /> DECLARE @CurrentCommandType nvarchar(max)<br /> DECLARE @CurrentComment nvarchar(max)<br /> DECLARE @CurrentExtendedInfo xml</p> <p> DECLARE @Errors TABLE (ID int IDENTITY PRIMARY KEY,<br /> [Message] nvarchar(max) NOT NULL,<br /> Severity int NOT NULL,<br /> [State] int)</p> <p> DECLARE @CurrentMessage nvarchar(max)<br /> DECLARE @CurrentSeverity int<br /> DECLARE @CurrentState int</p> <p> DECLARE @CurrentIxID int<br /> DECLARE @CurrentIxOrder int<br /> DECLARE @CurrentSchemaID int<br /> DECLARE @CurrentSchemaName nvarchar(max)<br /> DECLARE @CurrentObjectID int<br /> DECLARE @CurrentObjectName nvarchar(max)<br /> DECLARE @CurrentObjectType nvarchar(max)<br /> DECLARE @CurrentIsMemoryOptimized bit<br /> DECLARE @CurrentIndexID int<br /> DECLARE @CurrentIndexName nvarchar(max)<br /> DECLARE @CurrentIndexType int<br /> DECLARE @CurrentStatisticsID int<br /> DECLARE @CurrentStatisticsName nvarchar(max)<br /> DECLARE @CurrentPartitionID bigint<br /> DECLARE @CurrentPartitionNumber int<br /> DECLARE @CurrentPartitionCount int<br /> DECLARE @CurrentIsPartition bit<br /> DECLARE @CurrentIndexExists bit<br /> DECLARE @CurrentStatisticsExists bit<br /> DECLARE @CurrentIsImageText bit<br /> DECLARE @CurrentIsNewLOB bit<br /> DECLARE @CurrentIsFileStream bit<br /> DECLARE @CurrentIsColumnStore bit<br /> DECLARE @CurrentIsComputed bit<br /> DECLARE @CurrentIsTimestamp bit<br /> DECLARE @CurrentAllowPageLocks bit<br /> DECLARE @CurrentNoRecompute bit<br /> DECLARE @CurrentIsIncremental bit<br /> DECLARE @CurrentRowCount bigint<br /> DECLARE @CurrentModificationCounter bigint<br /> DECLARE @CurrentOnReadOnlyFileGroup bit<br /> DECLARE @CurrentResumableIndexOperation bit<br /> DECLARE @CurrentFragmentationLevel float<br /> DECLARE @CurrentPageCount bigint<br /> DECLARE @CurrentFragmentationGroup nvarchar(max)<br /> DECLARE @CurrentAction nvarchar(max)<br /> DECLARE @CurrentMaxDOP int<br /> DECLARE @CurrentUpdateStatistics nvarchar(max)<br /> DECLARE @CurrentStatisticsSample int<br /> DECLARE @CurrentStatisticsResample nvarchar(max)<br /> DECLARE @CurrentDelay datetime</p> <p> DECLARE @tmpDatabases TABLE (ID int IDENTITY,<br /> DatabaseName nvarchar(max),<br /> DatabaseType nvarchar(max),<br /> AvailabilityGroup bit,<br /> StartPosition int,<br /> DatabaseSize bigint,<br /> [Order] int,<br /> Selected bit,<br /> Completed bit,<br /> PRIMARY KEY(Selected, Completed, [Order], ID))</p> <p> DECLARE @tmpAvailabilityGroups TABLE (ID int IDENTITY PRIMARY KEY,<br /> AvailabilityGroupName nvarchar(max),<br /> StartPosition int,<br /> Selected bit)</p> <p> DECLARE @tmpDatabasesAvailabilityGroups TABLE (DatabaseName nvarchar(max),<br /> AvailabilityGroupName nvarchar(max))</p> <p> DECLARE @tmpIndexesStatistics TABLE (ID int IDENTITY,<br /> SchemaID int,<br /> SchemaName nvarchar(max),<br /> ObjectID int,<br /> ObjectName nvarchar(max),<br /> ObjectType nvarchar(max),<br /> IsMemoryOptimized bit,<br /> IndexID int,<br /> IndexName nvarchar(max),<br /> IndexType int,<br /> AllowPageLocks bit,<br /> IsImageText bit,<br /> IsNewLOB bit,<br /> IsFileStream bit,<br /> IsColumnStore bit,<br /> IsComputed bit,<br /> IsTimestamp bit,<br /> OnReadOnlyFileGroup bit,<br /> ResumableIndexOperation bit,<br /> StatisticsID int,<br /> StatisticsName nvarchar(max),<br /> [NoRecompute] bit,<br /> IsIncremental bit,<br /> PartitionID bigint,<br /> PartitionNumber int,<br /> PartitionCount int,<br /> StartPosition int,<br /> [Order] int,<br /> Selected bit,<br /> Completed bit,<br /> PRIMARY KEY(Selected, Completed, [Order], ID))</p> <p> DECLARE @SelectedDatabases TABLE (DatabaseName nvarchar(max),<br /> DatabaseType nvarchar(max),<br /> AvailabilityGroup nvarchar(max),<br /> StartPosition int,<br /> Selected bit)</p> <p> DECLARE @SelectedAvailabilityGroups TABLE (AvailabilityGroupName nvarchar(max),<br /> StartPosition int,<br /> Selected bit)</p> <p> DECLARE @SelectedIndexes TABLE (DatabaseName nvarchar(max),<br /> SchemaName nvarchar(max),<br /> ObjectName nvarchar(max),<br /> IndexName nvarchar(max),<br /> StartPosition int,<br /> Selected bit)</p> <p> DECLARE @Actions TABLE ([Action] nvarchar(max))</p> <p> INSERT INTO @Actions([Action]) VALUES(&#8216;INDEX_REBUILD_ONLINE&#8217;)<br /> INSERT INTO @Actions([Action]) VALUES(&#8216;INDEX_REBUILD_OFFLINE&#8217;)<br /> INSERT INTO @Actions([Action]) VALUES(&#8216;INDEX_REORGANIZE&#8217;)</p> <p> DECLARE @ActionsPreferred TABLE (FragmentationGroup nvarchar(max),<br /> [Priority] int,<br /> [Action] nvarchar(max))</p> <p> DECLARE @CurrentActionsAllowed TABLE ([Action] nvarchar(max))</p> <p> DECLARE @CurrentAlterIndexWithClauseArguments TABLE (ID int IDENTITY,<br /> Argument nvarchar(max),<br /> Added bit DEFAULT 0)</p> <p> DECLARE @CurrentAlterIndexArgumentID int<br /> DECLARE @CurrentAlterIndexArgument nvarchar(max)<br /> DECLARE @CurrentAlterIndexWithClause nvarchar(max)</p> <p> DECLARE @CurrentUpdateStatisticsWithClauseArguments TABLE (ID int IDENTITY,<br /> Argument nvarchar(max),<br /> Added bit DEFAULT 0)</p> <p> DECLARE @CurrentUpdateStatisticsArgumentID int<br /> DECLARE @CurrentUpdateStatisticsArgument nvarchar(max)<br /> DECLARE @CurrentUpdateStatisticsWithClause nvarchar(max)</p> <p> DECLARE @Error int = 0<br /> DECLARE @ReturnCode int = 0</p> <p> DECLARE @EmptyLine nvarchar(max) = CHAR(9)</p> <p> DECLARE @Version numeric(18,10) = CAST(LEFT(CAST(SERVERPROPERTY(&#8216;ProductVersion&#8217;) AS nvarchar(max)),CHARINDEX(&#8216;.&#8217;,CAST(SERVERPROPERTY(&#8216;ProductVersion&#8217;) AS nvarchar(max))) &#8211; 1) + &#8216;.&#8217; + REPLACE(RIGHT(CAST(SERVERPROPERTY(&#8216;ProductVersion&#8217;) AS nvarchar(max)), LEN(CAST(SERVERPROPERTY(&#8216;ProductVersion&#8217;) AS nvarchar(max))) &#8211; CHARINDEX(&#8216;.&#8217;,CAST(SERVERPROPERTY(&#8216;ProductVersion&#8217;) AS nvarchar(max)))),&#8217;.&#8217;,&#8221;) AS numeric(18,10))</p> <p> IF @Version &gt;= 14<br /> BEGIN<br /> SELECT @HostPlatform = host_platform<br /> FROM sys.dm_os_host_info<br /> END<br /> ELSE<br /> BEGIN<br /> SET @HostPlatform = &#8216;Windows&#8217;<br /> END</p> <p> DECLARE @AmazonRDS bit = CASE WHEN DB_ID(&#8216;rdsadmin&#8217;) IS NOT NULL AND SUSER_SNAME(0x01) = &#8216;rdsa&#8217; THEN 1 ELSE 0 END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br /> &#8211;// Log initial information //&#8211;<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> SET @Parameters = &#8216;@Databases = &#8216; + ISNULL(&#8221;&#8221; + REPLACE(@Databases,&#8221;&#8221;,&#8221;&#8221;&#8221;) + &#8221;&#8221;,&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @FragmentationLow = &#8216; + ISNULL(&#8221;&#8221; + REPLACE(@FragmentationLow,&#8221;&#8221;,&#8221;&#8221;&#8221;) + &#8221;&#8221;,&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @FragmentationMedium = &#8216; + ISNULL(&#8221;&#8221; + REPLACE(@FragmentationMedium,&#8221;&#8221;,&#8221;&#8221;&#8221;) + &#8221;&#8221;,&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @FragmentationHigh = &#8216; + ISNULL(&#8221;&#8221; + REPLACE(@FragmentationHigh,&#8221;&#8221;,&#8221;&#8221;&#8221;) + &#8221;&#8221;,&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @FragmentationLevel1 = &#8216; + ISNULL(CAST(@FragmentationLevel1 AS nvarchar),&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @FragmentationLevel2 = &#8216; + ISNULL(CAST(@FragmentationLevel2 AS nvarchar),&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @MinNumberOfPages = &#8216; + ISNULL(CAST(@MinNumberOfPages AS nvarchar),&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @MaxNumberOfPages = &#8216; + ISNULL(CAST(@MaxNumberOfPages AS nvarchar),&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @SortInTempdb = &#8216; + ISNULL(&#8221;&#8221; + REPLACE(@SortInTempdb,&#8221;&#8221;,&#8221;&#8221;&#8221;) + &#8221;&#8221;,&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @MaxDOP = &#8216; + ISNULL(CAST(@MaxDOP AS nvarchar),&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @FillFactor = &#8216; + ISNULL(CAST(@FillFactor AS nvarchar),&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @PadIndex = &#8216; + ISNULL(&#8221;&#8221; + REPLACE(@PadIndex,&#8221;&#8221;,&#8221;&#8221;&#8221;) + &#8221;&#8221;,&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @LOBCompaction = &#8216; + ISNULL(&#8221;&#8221; + REPLACE(@LOBCompaction,&#8221;&#8221;,&#8221;&#8221;&#8221;) + &#8221;&#8221;,&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @UpdateStatistics = &#8216; + ISNULL(&#8221;&#8221; + REPLACE(@UpdateStatistics,&#8221;&#8221;,&#8221;&#8221;&#8221;) + &#8221;&#8221;,&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @OnlyModifiedStatistics = &#8216; + ISNULL(&#8221;&#8221; + REPLACE(@OnlyModifiedStatistics,&#8221;&#8221;,&#8221;&#8221;&#8221;) + &#8221;&#8221;,&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @StatisticsModificationLevel = &#8216; + ISNULL(CAST(@StatisticsModificationLevel AS nvarchar),&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @StatisticsSample = &#8216; + ISNULL(CAST(@StatisticsSample AS nvarchar),&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @StatisticsResample = &#8216; + ISNULL(&#8221;&#8221; + REPLACE(@StatisticsResample,&#8221;&#8221;,&#8221;&#8221;&#8221;) + &#8221;&#8221;,&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @PartitionLevel = &#8216; + ISNULL(&#8221;&#8221; + REPLACE(@PartitionLevel,&#8221;&#8221;,&#8221;&#8221;&#8221;) + &#8221;&#8221;,&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @MSShippedObjects = &#8216; + ISNULL(&#8221;&#8221; + REPLACE(@MSShippedObjects,&#8221;&#8221;,&#8221;&#8221;&#8221;) + &#8221;&#8221;,&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @Indexes = &#8216; + ISNULL(&#8221;&#8221; + REPLACE(@Indexes,&#8221;&#8221;,&#8221;&#8221;&#8221;) + &#8221;&#8221;,&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @TimeLimit = &#8216; + ISNULL(CAST(@TimeLimit AS nvarchar),&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @Delay = &#8216; + ISNULL(CAST(@Delay AS nvarchar),&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @WaitAtLowPriorityMaxDuration = &#8216; + ISNULL(CAST(@WaitAtLowPriorityMaxDuration AS nvarchar),&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @WaitAtLowPriorityAbortAfterWait = &#8216; + ISNULL(&#8221;&#8221; + REPLACE(@WaitAtLowPriorityAbortAfterWait,&#8221;&#8221;,&#8221;&#8221;&#8221;) + &#8221;&#8221;,&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @Resumable = &#8216; + ISNULL(&#8221;&#8221; + REPLACE(@Resumable,&#8221;&#8221;,&#8221;&#8221;&#8221;) + &#8221;&#8221;,&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @AvailabilityGroups = &#8216; + ISNULL(&#8221;&#8221; + REPLACE(@AvailabilityGroups,&#8221;&#8221;,&#8221;&#8221;&#8221;) + &#8221;&#8221;,&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @LockTimeout = &#8216; + ISNULL(CAST(@LockTimeout AS nvarchar),&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @LockMessageSeverity = &#8216; + ISNULL(CAST(@LockMessageSeverity AS nvarchar),&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @StringDelimiter = &#8216; + ISNULL(&#8221;&#8221; + REPLACE(@StringDelimiter,&#8221;&#8221;,&#8221;&#8221;&#8221;) + &#8221;&#8221;,&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @DatabaseOrder = &#8216; + ISNULL(&#8221;&#8221; + REPLACE(@DatabaseOrder,&#8221;&#8221;,&#8221;&#8221;&#8221;) + &#8221;&#8221;,&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @DatabasesInParallel = &#8216; + ISNULL(&#8221;&#8221; + REPLACE(@DatabasesInParallel,&#8221;&#8221;,&#8221;&#8221;&#8221;) + &#8221;&#8221;,&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @ExecuteAsUser = &#8216; + ISNULL(&#8221;&#8221; + REPLACE(@ExecuteAsUser,&#8221;&#8221;,&#8221;&#8221;&#8221;) + &#8221;&#8221;,&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @LogToTable = &#8216; + ISNULL(&#8221;&#8221; + REPLACE(@LogToTable,&#8221;&#8221;,&#8221;&#8221;&#8221;) + &#8221;&#8221;,&#8217;NULL&#8217;)<br /> SET @Parameters += &#8216;, @Execute = &#8216; + ISNULL(&#8221;&#8221; + REPLACE(@Execute,&#8221;&#8221;,&#8221;&#8221;&#8221;) + &#8221;&#8221;,&#8217;NULL&#8217;)</p> <p> SET @StartMessage = &#8216;Date and time: &#8216; + CONVERT(nvarchar,@StartTime,120)<br /> RAISERROR(&#8216;%s&#8217;,10,1,@StartMessage) WITH NOWAIT</p> <p> SET @StartMessage = &#8216;Server: &#8216; + CAST(SERVERPROPERTY(&#8216;ServerName&#8217;) AS nvarchar(max))<br /> RAISERROR(&#8216;%s&#8217;,10,1,@StartMessage) WITH NOWAIT</p> <p> SET @StartMessage = &#8216;Version: &#8216; + CAST(SERVERPROPERTY(&#8216;ProductVersion&#8217;) AS nvarchar(max))<br /> RAISERROR(&#8216;%s&#8217;,10,1,@StartMessage) WITH NOWAIT</p> <p> SET @StartMessage = &#8216;Edition: &#8216; + CAST(SERVERPROPERTY(&#8216;Edition&#8217;) AS nvarchar(max))<br /> RAISERROR(&#8216;%s&#8217;,10,1,@StartMessage) WITH NOWAIT</p> <p> SET @StartMessage = &#8216;Platform: &#8216; + @HostPlatform<br /> RAISERROR(&#8216;%s&#8217;,10,1,@StartMessage) WITH NOWAIT</p> <p> SET @StartMessage = &#8216;Procedure: &#8216; + QUOTENAME(DB_NAME(DB_ID())) + &#8216;.&#8217; + QUOTENAME(@SchemaName) + &#8216;.&#8217; + QUOTENAME(@ObjectName)<br /> RAISERROR(&#8216;%s&#8217;,10,1,@StartMessage) WITH NOWAIT</p> <p> SET @StartMessage = &#8216;Parameters: &#8216; + @Parameters<br /> RAISERROR(&#8216;%s&#8217;,10,1,@StartMessage) WITH NOWAIT</p> <p> SET @StartMessage = &#8216;Version: &#8216; + @VersionTimestamp<br /> RAISERROR(&#8216;%s&#8217;,10,1,@StartMessage) WITH NOWAIT</p> <p> SET @StartMessage = &#8216;Source: https://ola.hallengren.com&#8217;<br /> RAISERROR(&#8216;%s&#8217;,10,1,@StartMessage) WITH NOWAIT</p> <p> RAISERROR(@EmptyLine,10,1) WITH NOWAIT</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br /> &#8211;// Check core requirements //&#8211;<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF NOT (SELECT [compatibility_level] FROM sys.databases WHERE database_id = DB_ID()) &gt;= 90<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The database &#8216; + QUOTENAME(DB_NAME(DB_ID())) + &#8216; has to be in compatibility level 90 or higher.&#8217;, 16, 1<br /> END</p> <p> IF NOT (SELECT uses_ansi_nulls FROM sys.sql_modules WHERE [object_id] = @@PROCID) = 1<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;ANSI_NULLS has to be set to ON for the stored procedure.&#8217;, 16, 1<br /> END</p> <p> IF NOT (SELECT uses_quoted_identifier FROM sys.sql_modules WHERE [object_id] = @@PROCID) = 1<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;QUOTED_IDENTIFIER has to be set to ON for the stored procedure.&#8217;, 16, 1<br /> END</p> <p> IF NOT EXISTS (SELECT * FROM sys.objects objects INNER JOIN sys.schemas schemas ON objects.[schema_id] = schemas.[schema_id] WHERE objects.[type] = &#8216;P&#8217; AND schemas.[name] = &#8216;dbo&#8217; AND objects.[name] = &#8216;CommandExecute&#8217;)<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The stored procedure CommandExecute is missing. Download https://ola.hallengren.com/scripts/CommandExecute.sql.&#8217;, 16, 1<br /> END</p> <p> IF EXISTS (SELECT * FROM sys.objects objects INNER JOIN sys.schemas schemas ON objects.[schema_id] = schemas.[schema_id] WHERE objects.[type] = &#8216;P&#8217; AND schemas.[name] = &#8216;dbo&#8217; AND objects.[name] = &#8216;CommandExecute&#8217; AND OBJECT_DEFINITION(objects.[object_id]) NOT LIKE &#8216;%@DatabaseContext%&#8217;)<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The stored procedure CommandExecute needs to be updated. Download https://ola.hallengren.com/scripts/CommandExecute.sql.&#8217;, 16, 1<br /> END</p> <p> IF @LogToTable = &#8216;Y&#8217; AND NOT EXISTS (SELECT * FROM sys.objects objects INNER JOIN sys.schemas schemas ON objects.[schema_id] = schemas.[schema_id] WHERE objects.[type] = &#8216;U&#8217; AND schemas.[name] = &#8216;dbo&#8217; AND objects.[name] = &#8216;CommandLog&#8217;)<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The table CommandLog is missing. Download https://ola.hallengren.com/scripts/CommandLog.sql.&#8217;, 16, 1<br /> END</p> <p> IF @DatabasesInParallel = &#8216;Y&#8217; AND NOT EXISTS (SELECT * FROM sys.objects objects INNER JOIN sys.schemas schemas ON objects.[schema_id] = schemas.[schema_id] WHERE objects.[type] = &#8216;U&#8217; AND schemas.[name] = &#8216;dbo&#8217; AND objects.[name] = &#8216;Queue&#8217;)<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The table Queue is missing. Download https://ola.hallengren.com/scripts/Queue.sql.&#8217;, 16, 1<br /> END</p> <p> IF @DatabasesInParallel = &#8216;Y&#8217; AND NOT EXISTS (SELECT * FROM sys.objects objects INNER JOIN sys.schemas schemas ON objects.[schema_id] = schemas.[schema_id] WHERE objects.[type] = &#8216;U&#8217; AND schemas.[name] = &#8216;dbo&#8217; AND objects.[name] = &#8216;QueueDatabase&#8217;)<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The table QueueDatabase is missing. Download https://ola.hallengren.com/scripts/QueueDatabase.sql.&#8217;, 16, 1<br /> END</p> <p> IF @@TRANCOUNT 0<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The transaction count is not 0.&#8217;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br /> &#8211;// Select databases //&#8211;<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> SET @Databases = REPLACE(@Databases, CHAR(10), &#8221;)<br /> SET @Databases = REPLACE(@Databases, CHAR(13), &#8221;)</p> <p> WHILE CHARINDEX(@StringDelimiter + &#8216; &#8216;, @Databases) &gt; 0 SET @Databases = REPLACE(@Databases, @StringDelimiter + &#8216; &#8216;, @StringDelimiter)<br /> WHILE CHARINDEX(&#8216; &#8216; + @StringDelimiter, @Databases) &gt; 0 SET @Databases = REPLACE(@Databases, &#8216; &#8216; + @StringDelimiter, @StringDelimiter)</p> <p> SET @Databases = LTRIM(RTRIM(@Databases));</p> <p> WITH Databases1 (StartPosition, EndPosition, DatabaseItem) AS<br /> (<br /> SELECT 1 AS StartPosition,<br /> ISNULL(NULLIF(CHARINDEX(@StringDelimiter, @Databases, 1), 0), LEN(@Databases) + 1) AS EndPosition,<br /> SUBSTRING(@Databases, 1, ISNULL(NULLIF(CHARINDEX(@StringDelimiter, @Databases, 1), 0), LEN(@Databases) + 1) &#8211; 1) AS DatabaseItem<br /> WHERE @Databases IS NOT NULL<br /> UNION ALL<br /> SELECT CAST(EndPosition AS int) + 1 AS StartPosition,<br /> ISNULL(NULLIF(CHARINDEX(@StringDelimiter, @Databases, EndPosition + 1), 0), LEN(@Databases) + 1) AS EndPosition,<br /> SUBSTRING(@Databases, EndPosition + 1, ISNULL(NULLIF(CHARINDEX(@StringDelimiter, @Databases, EndPosition + 1), 0), LEN(@Databases) + 1) &#8211; EndPosition &#8211; 1) AS DatabaseItem<br /> FROM Databases1<br /> WHERE EndPosition = 11 AND SERVERPROPERTY(&#8216;IsHadrEnabled&#8217;) = 1<br /> BEGIN<br /> INSERT INTO @tmpAvailabilityGroups (AvailabilityGroupName, Selected)<br /> SELECT name AS AvailabilityGroupName,<br /> 0 AS Selected<br /> FROM sys.availability_groups</p> <p> INSERT INTO @tmpDatabasesAvailabilityGroups (DatabaseName, AvailabilityGroupName)<br /> SELECT databases.name,<br /> availability_groups.name<br /> FROM sys.databases databases<br /> INNER JOIN sys.availability_replicas availability_replicas ON databases.replica_id = availability_replicas.replica_id<br /> INNER JOIN sys.availability_groups availability_groups ON availability_replicas.group_id = availability_groups.group_id<br /> END</p> <p> INSERT INTO @tmpDatabases (DatabaseName, DatabaseType, AvailabilityGroup, [Order], Selected, Completed)<br /> SELECT [name] AS DatabaseName,<br /> CASE WHEN name IN(&#8216;master&#8217;,&#8217;msdb&#8217;,&#8217;model&#8217;) OR is_distributor = 1 THEN &#8216;S&#8217; ELSE &#8216;U&#8217; END AS DatabaseType,<br /> NULL AS AvailabilityGroup,<br /> 0 AS [Order],<br /> 0 AS Selected,<br /> 0 AS Completed<br /> FROM sys.databases<br /> WHERE [name] &#8216;tempdb&#8217;<br /> AND source_database_id IS NULL<br /> ORDER BY [name] ASC</p> <p> UPDATE tmpDatabases<br /> SET AvailabilityGroup = CASE WHEN EXISTS (SELECT * FROM @tmpDatabasesAvailabilityGroups WHERE DatabaseName = tmpDatabases.DatabaseName) THEN 1 ELSE 0 END<br /> FROM @tmpDatabases tmpDatabases</p> <p> UPDATE tmpDatabases<br /> SET tmpDatabases.Selected = SelectedDatabases.Selected<br /> FROM @tmpDatabases tmpDatabases<br /> INNER JOIN @SelectedDatabases SelectedDatabases<br /> ON tmpDatabases.DatabaseName LIKE REPLACE(SelectedDatabases.DatabaseName,&#8217;_&#8217;,'[_]&#8217;)<br /> AND (tmpDatabases.DatabaseType = SelectedDatabases.DatabaseType OR SelectedDatabases.DatabaseType IS NULL)<br /> AND (tmpDatabases.AvailabilityGroup = SelectedDatabases.AvailabilityGroup OR SelectedDatabases.AvailabilityGroup IS NULL)<br /> WHERE SelectedDatabases.Selected = 1</p> <p> UPDATE tmpDatabases<br /> SET tmpDatabases.Selected = SelectedDatabases.Selected<br /> FROM @tmpDatabases tmpDatabases<br /> INNER JOIN @SelectedDatabases SelectedDatabases<br /> ON tmpDatabases.DatabaseName LIKE REPLACE(SelectedDatabases.DatabaseName,&#8217;_&#8217;,'[_]&#8217;)<br /> AND (tmpDatabases.DatabaseType = SelectedDatabases.DatabaseType OR SelectedDatabases.DatabaseType IS NULL)<br /> AND (tmpDatabases.AvailabilityGroup = SelectedDatabases.AvailabilityGroup OR SelectedDatabases.AvailabilityGroup IS NULL)<br /> WHERE SelectedDatabases.Selected = 0</p> <p> UPDATE tmpDatabases<br /> SET tmpDatabases.StartPosition = SelectedDatabases2.StartPosition<br /> FROM @tmpDatabases tmpDatabases<br /> INNER JOIN (SELECT tmpDatabases.DatabaseName, MIN(SelectedDatabases.StartPosition) AS StartPosition<br /> FROM @tmpDatabases tmpDatabases<br /> INNER JOIN @SelectedDatabases SelectedDatabases<br /> ON tmpDatabases.DatabaseName LIKE REPLACE(SelectedDatabases.DatabaseName,&#8217;_&#8217;,'[_]&#8217;)<br /> AND (tmpDatabases.DatabaseType = SelectedDatabases.DatabaseType OR SelectedDatabases.DatabaseType IS NULL)<br /> AND (tmpDatabases.AvailabilityGroup = SelectedDatabases.AvailabilityGroup OR SelectedDatabases.AvailabilityGroup IS NULL)<br /> WHERE SelectedDatabases.Selected = 1<br /> GROUP BY tmpDatabases.DatabaseName) SelectedDatabases2<br /> ON tmpDatabases.DatabaseName = SelectedDatabases2.DatabaseName</p> <p> IF @Databases IS NOT NULL AND (NOT EXISTS(SELECT * FROM @SelectedDatabases) OR EXISTS(SELECT * FROM @SelectedDatabases WHERE DatabaseName IS NULL OR DatabaseName = &#8221;))<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @Databases is not supported.&#8217;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br /> &#8211;// Select availability groups //&#8211;<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @AvailabilityGroups IS NOT NULL AND @Version &gt;= 11 AND SERVERPROPERTY(&#8216;IsHadrEnabled&#8217;) = 1<br /> BEGIN</p> <p> SET @AvailabilityGroups = REPLACE(@AvailabilityGroups, CHAR(10), &#8221;)<br /> SET @AvailabilityGroups = REPLACE(@AvailabilityGroups, CHAR(13), &#8221;)</p> <p> WHILE CHARINDEX(@StringDelimiter + &#8216; &#8216;, @AvailabilityGroups) &gt; 0 SET @AvailabilityGroups = REPLACE(@AvailabilityGroups, @StringDelimiter + &#8216; &#8216;, @StringDelimiter)<br /> WHILE CHARINDEX(&#8216; &#8216; + @StringDelimiter, @AvailabilityGroups) &gt; 0 SET @AvailabilityGroups = REPLACE(@AvailabilityGroups, &#8216; &#8216; + @StringDelimiter, @StringDelimiter)</p> <p> SET @AvailabilityGroups = LTRIM(RTRIM(@AvailabilityGroups));</p> <p> WITH AvailabilityGroups1 (StartPosition, EndPosition, AvailabilityGroupItem) AS<br /> (<br /> SELECT 1 AS StartPosition,<br /> ISNULL(NULLIF(CHARINDEX(@StringDelimiter, @AvailabilityGroups, 1), 0), LEN(@AvailabilityGroups) + 1) AS EndPosition,<br /> SUBSTRING(@AvailabilityGroups, 1, ISNULL(NULLIF(CHARINDEX(@StringDelimiter, @AvailabilityGroups, 1), 0), LEN(@AvailabilityGroups) + 1) &#8211; 1) AS AvailabilityGroupItem<br /> WHERE @AvailabilityGroups IS NOT NULL<br /> UNION ALL<br /> SELECT CAST(EndPosition AS int) + 1 AS StartPosition,<br /> ISNULL(NULLIF(CHARINDEX(@StringDelimiter, @AvailabilityGroups, EndPosition + 1), 0), LEN(@AvailabilityGroups) + 1) AS EndPosition,<br /> SUBSTRING(@AvailabilityGroups, EndPosition + 1, ISNULL(NULLIF(CHARINDEX(@StringDelimiter, @AvailabilityGroups, EndPosition + 1), 0), LEN(@AvailabilityGroups) + 1) &#8211; EndPosition &#8211; 1) AS AvailabilityGroupItem<br /> FROM AvailabilityGroups1<br /> WHERE EndPosition &lt; LEN(@AvailabilityGroups) + 1<br /> ),<br /> AvailabilityGroups2 (AvailabilityGroupItem, StartPosition, Selected) AS<br /> (<br /> SELECT CASE WHEN AvailabilityGroupItem LIKE &#039;-%&#039; THEN RIGHT(AvailabilityGroupItem,LEN(AvailabilityGroupItem) &#8211; 1) ELSE AvailabilityGroupItem END AS AvailabilityGroupItem,<br /> StartPosition,<br /> CASE WHEN AvailabilityGroupItem LIKE &#039;-%&#039; THEN 0 ELSE 1 END AS Selected<br /> FROM AvailabilityGroups1<br /> ),<br /> AvailabilityGroups3 (AvailabilityGroupItem, StartPosition, Selected) AS<br /> (<br /> SELECT CASE WHEN AvailabilityGroupItem = &#039;ALL_AVAILABILITY_GROUPS&#039; THEN &#039;%&#039; ELSE AvailabilityGroupItem END AS AvailabilityGroupItem,<br /> StartPosition,<br /> Selected<br /> FROM AvailabilityGroups2<br /> ),<br /> AvailabilityGroups4 (AvailabilityGroupName, StartPosition, Selected) AS<br /> (<br /> SELECT CASE WHEN LEFT(AvailabilityGroupItem,1) = &#039;[&#039; AND RIGHT(AvailabilityGroupItem,1) = &#039;]&#039; THEN PARSENAME(AvailabilityGroupItem,1) ELSE AvailabilityGroupItem END AS AvailabilityGroupItem,<br /> StartPosition,<br /> Selected<br /> FROM AvailabilityGroups3<br /> )<br /> INSERT INTO @SelectedAvailabilityGroups (AvailabilityGroupName, StartPosition, Selected)<br /> SELECT AvailabilityGroupName, StartPosition, Selected<br /> FROM AvailabilityGroups4<br /> OPTION (MAXRECURSION 0)</p> <p> UPDATE tmpAvailabilityGroups<br /> SET tmpAvailabilityGroups.Selected = SelectedAvailabilityGroups.Selected<br /> FROM @tmpAvailabilityGroups tmpAvailabilityGroups<br /> INNER JOIN @SelectedAvailabilityGroups SelectedAvailabilityGroups<br /> ON tmpAvailabilityGroups.AvailabilityGroupName LIKE REPLACE(SelectedAvailabilityGroups.AvailabilityGroupName,&#039;_&#039;,&#039;[_]&#039;)<br /> WHERE SelectedAvailabilityGroups.Selected = 1</p> <p> UPDATE tmpAvailabilityGroups<br /> SET tmpAvailabilityGroups.Selected = SelectedAvailabilityGroups.Selected<br /> FROM @tmpAvailabilityGroups tmpAvailabilityGroups<br /> INNER JOIN @SelectedAvailabilityGroups SelectedAvailabilityGroups<br /> ON tmpAvailabilityGroups.AvailabilityGroupName LIKE REPLACE(SelectedAvailabilityGroups.AvailabilityGroupName,&#039;_&#039;,&#039;[_]&#039;)<br /> WHERE SelectedAvailabilityGroups.Selected = 0</p> <p> UPDATE tmpAvailabilityGroups<br /> SET tmpAvailabilityGroups.StartPosition = SelectedAvailabilityGroups2.StartPosition<br /> FROM @tmpAvailabilityGroups tmpAvailabilityGroups<br /> INNER JOIN (SELECT tmpAvailabilityGroups.AvailabilityGroupName, MIN(SelectedAvailabilityGroups.StartPosition) AS StartPosition<br /> FROM @tmpAvailabilityGroups tmpAvailabilityGroups<br /> INNER JOIN @SelectedAvailabilityGroups SelectedAvailabilityGroups<br /> ON tmpAvailabilityGroups.AvailabilityGroupName LIKE REPLACE(SelectedAvailabilityGroups.AvailabilityGroupName,&#039;_&#039;,&#039;[_]&#039;)<br /> WHERE SelectedAvailabilityGroups.Selected = 1<br /> GROUP BY tmpAvailabilityGroups.AvailabilityGroupName) SelectedAvailabilityGroups2<br /> ON tmpAvailabilityGroups.AvailabilityGroupName = SelectedAvailabilityGroups2.AvailabilityGroupName</p> <p> UPDATE tmpDatabases<br /> SET tmpDatabases.StartPosition = tmpAvailabilityGroups.StartPosition,<br /> tmpDatabases.Selected = 1<br /> FROM @tmpDatabases tmpDatabases<br /> INNER JOIN @tmpDatabasesAvailabilityGroups tmpDatabasesAvailabilityGroups ON tmpDatabases.DatabaseName = tmpDatabasesAvailabilityGroups.DatabaseName<br /> INNER JOIN @tmpAvailabilityGroups tmpAvailabilityGroups ON tmpDatabasesAvailabilityGroups.AvailabilityGroupName = tmpAvailabilityGroups.AvailabilityGroupName<br /> WHERE tmpAvailabilityGroups.Selected = 1</p> <p> END</p> <p> IF @AvailabilityGroups IS NOT NULL AND (NOT EXISTS(SELECT * FROM @SelectedAvailabilityGroups) OR EXISTS(SELECT * FROM @SelectedAvailabilityGroups WHERE AvailabilityGroupName IS NULL OR AvailabilityGroupName = &#039;&#039;) OR @Version 0 SET @Indexes = REPLACE(@Indexes, @StringDelimiter + &#8216; &#8216;, @StringDelimiter)<br /> WHILE CHARINDEX(&#8216; &#8216; + @StringDelimiter, @Indexes) &gt; 0 SET @Indexes = REPLACE(@Indexes, &#8216; &#8216; + @StringDelimiter, @StringDelimiter)</p> <p> SET @Indexes = LTRIM(RTRIM(@Indexes));</p> <p> WITH Indexes1 (StartPosition, EndPosition, IndexItem) AS<br /> (<br /> SELECT 1 AS StartPosition,<br /> ISNULL(NULLIF(CHARINDEX(@StringDelimiter, @Indexes, 1), 0), LEN(@Indexes) + 1) AS EndPosition,<br /> SUBSTRING(@Indexes, 1, ISNULL(NULLIF(CHARINDEX(@StringDelimiter, @Indexes, 1), 0), LEN(@Indexes) + 1) &#8211; 1) AS IndexItem<br /> WHERE @Indexes IS NOT NULL<br /> UNION ALL<br /> SELECT CAST(EndPosition AS int) + 1 AS StartPosition,<br /> ISNULL(NULLIF(CHARINDEX(@StringDelimiter, @Indexes, EndPosition + 1), 0), LEN(@Indexes) + 1) AS EndPosition,<br /> SUBSTRING(@Indexes, EndPosition + 1, ISNULL(NULLIF(CHARINDEX(@StringDelimiter, @Indexes, EndPosition + 1), 0), LEN(@Indexes) + 1) &#8211; EndPosition &#8211; 1) AS IndexItem<br /> FROM Indexes1<br /> WHERE EndPosition &lt; LEN(@Indexes) + 1<br /> ),<br /> Indexes2 (IndexItem, StartPosition, Selected) AS<br /> (<br /> SELECT CASE WHEN IndexItem LIKE &#039;-%&#039; THEN RIGHT(IndexItem,LEN(IndexItem) &#8211; 1) ELSE IndexItem END AS IndexItem,<br /> StartPosition,<br /> CASE WHEN IndexItem LIKE &#039;-%&#039; THEN 0 ELSE 1 END AS Selected<br /> FROM Indexes1<br /> ),<br /> Indexes3 (IndexItem, StartPosition, Selected) AS<br /> (<br /> SELECT CASE WHEN IndexItem = &#039;ALL_INDEXES&#039; THEN &#039;%.%.%.%&#039; ELSE IndexItem END AS IndexItem,<br /> StartPosition,<br /> Selected<br /> FROM Indexes2<br /> ),<br /> Indexes4 (DatabaseName, SchemaName, ObjectName, IndexName, StartPosition, Selected) AS<br /> (<br /> SELECT CASE WHEN PARSENAME(IndexItem,4) IS NULL THEN PARSENAME(IndexItem,3) ELSE PARSENAME(IndexItem,4) END AS DatabaseName,<br /> CASE WHEN PARSENAME(IndexItem,4) IS NULL THEN PARSENAME(IndexItem,2) ELSE PARSENAME(IndexItem,3) END AS SchemaName,<br /> CASE WHEN PARSENAME(IndexItem,4) IS NULL THEN PARSENAME(IndexItem,1) ELSE PARSENAME(IndexItem,2) END AS ObjectName,<br /> CASE WHEN PARSENAME(IndexItem,4) IS NULL THEN &#039;%&#039; ELSE PARSENAME(IndexItem,1) END AS IndexName,<br /> StartPosition,<br /> Selected<br /> FROM Indexes3<br /> )<br /> INSERT INTO @SelectedIndexes (DatabaseName, SchemaName, ObjectName, IndexName, StartPosition, Selected)<br /> SELECT DatabaseName, SchemaName, ObjectName, IndexName, StartPosition, Selected<br /> FROM Indexes4<br /> OPTION (MAXRECURSION 0)</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br /> &#8211;// Select actions //&#8211;<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> SET @FragmentationLow = REPLACE(@FragmentationLow, @StringDelimiter + &#039; &#039;, @StringDelimiter);</p> <p> WITH FragmentationLow (StartPosition, EndPosition, [Action]) AS<br /> (<br /> SELECT 1 AS StartPosition,<br /> ISNULL(NULLIF(CHARINDEX(@StringDelimiter, @FragmentationLow, 1), 0), LEN(@FragmentationLow) + 1) AS EndPosition,<br /> SUBSTRING(@FragmentationLow, 1, ISNULL(NULLIF(CHARINDEX(@StringDelimiter, @FragmentationLow, 1), 0), LEN(@FragmentationLow) + 1) &#8211; 1) AS [Action]<br /> WHERE @FragmentationLow IS NOT NULL<br /> UNION ALL<br /> SELECT CAST(EndPosition AS int) + 1 AS StartPosition,<br /> ISNULL(NULLIF(CHARINDEX(@StringDelimiter, @FragmentationLow, EndPosition + 1), 0), LEN(@FragmentationLow) + 1) AS EndPosition,<br /> SUBSTRING(@FragmentationLow, EndPosition + 1, ISNULL(NULLIF(CHARINDEX(@StringDelimiter, @FragmentationLow, EndPosition + 1), 0), LEN(@FragmentationLow) + 1) &#8211; EndPosition &#8211; 1) AS [Action]<br /> FROM FragmentationLow<br /> WHERE EndPosition &lt; LEN(@FragmentationLow) + 1<br /> )<br /> INSERT INTO @ActionsPreferred(FragmentationGroup, [Priority], [Action])<br /> SELECT &#039;Low&#039; AS FragmentationGroup,<br /> ROW_NUMBER() OVER(ORDER BY StartPosition ASC) AS [Priority],<br /> [Action]<br /> FROM FragmentationLow<br /> OPTION (MAXRECURSION 0)</p> <p> SET @FragmentationMedium = REPLACE(@FragmentationMedium, @StringDelimiter + &#039; &#039;, @StringDelimiter);</p> <p> WITH FragmentationMedium (StartPosition, EndPosition, [Action]) AS<br /> (<br /> SELECT 1 AS StartPosition,<br /> ISNULL(NULLIF(CHARINDEX(@StringDelimiter, @FragmentationMedium, 1), 0), LEN(@FragmentationMedium) + 1) AS EndPosition,<br /> SUBSTRING(@FragmentationMedium, 1, ISNULL(NULLIF(CHARINDEX(@StringDelimiter, @FragmentationMedium, 1), 0), LEN(@FragmentationMedium) + 1) &#8211; 1) AS [Action]<br /> WHERE @FragmentationMedium IS NOT NULL<br /> UNION ALL<br /> SELECT CAST(EndPosition AS int) + 1 AS StartPosition,<br /> ISNULL(NULLIF(CHARINDEX(@StringDelimiter, @FragmentationMedium, EndPosition + 1), 0), LEN(@FragmentationMedium) + 1) AS EndPosition,<br /> SUBSTRING(@FragmentationMedium, EndPosition + 1, ISNULL(NULLIF(CHARINDEX(@StringDelimiter, @FragmentationMedium, EndPosition + 1), 0), LEN(@FragmentationMedium) + 1) &#8211; EndPosition &#8211; 1) AS [Action]<br /> FROM FragmentationMedium<br /> WHERE EndPosition &lt; LEN(@FragmentationMedium) + 1<br /> )<br /> INSERT INTO @ActionsPreferred(FragmentationGroup, [Priority], [Action])<br /> SELECT &#039;Medium&#039; AS FragmentationGroup,<br /> ROW_NUMBER() OVER(ORDER BY StartPosition ASC) AS [Priority],<br /> [Action]<br /> FROM FragmentationMedium<br /> OPTION (MAXRECURSION 0)</p> <p> SET @FragmentationHigh = REPLACE(@FragmentationHigh, @StringDelimiter + &#039; &#039;, @StringDelimiter);</p> <p> WITH FragmentationHigh (StartPosition, EndPosition, [Action]) AS<br /> (<br /> SELECT 1 AS StartPosition,<br /> ISNULL(NULLIF(CHARINDEX(@StringDelimiter, @FragmentationHigh, 1), 0), LEN(@FragmentationHigh) + 1) AS EndPosition,<br /> SUBSTRING(@FragmentationHigh, 1, ISNULL(NULLIF(CHARINDEX(@StringDelimiter, @FragmentationHigh, 1), 0), LEN(@FragmentationHigh) + 1) &#8211; 1) AS [Action]<br /> WHERE @FragmentationHigh IS NOT NULL<br /> UNION ALL<br /> SELECT CAST(EndPosition AS int) + 1 AS StartPosition,<br /> ISNULL(NULLIF(CHARINDEX(@StringDelimiter, @FragmentationHigh, EndPosition + 1), 0), LEN(@FragmentationHigh) + 1) AS EndPosition,<br /> SUBSTRING(@FragmentationHigh, EndPosition + 1, ISNULL(NULLIF(CHARINDEX(@StringDelimiter, @FragmentationHigh, EndPosition + 1), 0), LEN(@FragmentationHigh) + 1) &#8211; EndPosition &#8211; 1) AS [Action]<br /> FROM FragmentationHigh<br /> WHERE EndPosition 1)<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @FragmentationLow is not supported.&#8217;, 16, 2<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF EXISTS (SELECT [Action] FROM @ActionsPreferred WHERE FragmentationGroup = &#8216;Medium&#8217; AND [Action] NOT IN(SELECT * FROM @Actions))<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @FragmentationMedium is not supported.&#8217;, 16, 1<br /> END</p> <p> IF EXISTS (SELECT * FROM @ActionsPreferred WHERE FragmentationGroup = &#8216;Medium&#8217; GROUP BY [Action] HAVING COUNT(*) &gt; 1)<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @FragmentationMedium is not supported.&#8217;, 16, 2<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF EXISTS (SELECT [Action] FROM @ActionsPreferred WHERE FragmentationGroup = &#8216;High&#8217; AND [Action] NOT IN(SELECT * FROM @Actions))<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @FragmentationHigh is not supported.&#8217;, 16, 1<br /> END</p> <p> IF EXISTS (SELECT * FROM @ActionsPreferred WHERE FragmentationGroup = &#8216;High&#8217; GROUP BY [Action] HAVING COUNT(*) &gt; 1)<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @FragmentationHigh is not supported.&#8217;, 16, 2<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @FragmentationLevel1 = 100 OR @FragmentationLevel1 IS NULL<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @FragmentationLevel1 is not supported.&#8217;, 16, 1<br /> END</p> <p> IF @FragmentationLevel1 &gt;= @FragmentationLevel2<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @FragmentationLevel1 is not supported.&#8217;, 16, 2<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @FragmentationLevel2 = 100 OR @FragmentationLevel2 IS NULL<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @FragmentationLevel2 is not supported.&#8217;, 16, 1<br /> END</p> <p> IF @FragmentationLevel2 &lt;= @FragmentationLevel1<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#039;The value for the parameter @FragmentationLevel2 is not supported.&#039;, 16, 2<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @MinNumberOfPages &lt; 0 OR @MinNumberOfPages IS NULL<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#039;The value for the parameter @MinNumberOfPages is not supported.&#039;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @MaxNumberOfPages &lt; 0<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#039;The value for the parameter @MaxNumberOfPages is not supported.&#039;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @SortInTempdb NOT IN(&#039;Y&#039;,&#039;N&#039;) OR @SortInTempdb IS NULL<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#039;The value for the parameter @SortInTempdb is not supported.&#039;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @MaxDOP 64<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @MaxDOP is not supported.&#8217;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @FillFactor 100<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @FillFactor is not supported.&#8217;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @PadIndex NOT IN(&#8216;Y&#8217;,&#8217;N&#8217;)<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @PadIndex is not supported.&#8217;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @LOBCompaction NOT IN(&#8216;Y&#8217;,&#8217;N&#8217;) OR @LOBCompaction IS NULL<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @LOBCompaction is not supported.&#8217;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @UpdateStatistics NOT IN(&#8216;ALL&#8217;,&#8217;COLUMNS&#8217;,&#8217;INDEX&#8217;)<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @UpdateStatistics is not supported.&#8217;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @OnlyModifiedStatistics NOT IN(&#8216;Y&#8217;,&#8217;N&#8217;) OR @OnlyModifiedStatistics IS NULL<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @OnlyModifiedStatistics is not supported.&#8217;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @StatisticsModificationLevel 100<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @StatisticsModificationLevel is not supported.&#8217;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @OnlyModifiedStatistics = &#8216;Y&#8217; AND @StatisticsModificationLevel IS NOT NULL<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;You can only specify one of the parameters @OnlyModifiedStatistics and @StatisticsModificationLevel.&#8217;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @StatisticsSample 100<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @StatisticsSample is not supported.&#8217;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @StatisticsResample NOT IN(&#8216;Y&#8217;,&#8217;N&#8217;) OR @StatisticsResample IS NULL<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @StatisticsResample is not supported.&#8217;, 16, 1<br /> END</p> <p> IF @StatisticsResample = &#8216;Y&#8217; AND @StatisticsSample IS NOT NULL<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @StatisticsResample is not supported.&#8217;, 16, 2<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @PartitionLevel NOT IN(&#8216;Y&#8217;,&#8217;N&#8217;) OR @PartitionLevel IS NULL<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @PartitionLevel is not supported.&#8217;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @MSShippedObjects NOT IN(&#8216;Y&#8217;,&#8217;N&#8217;) OR @MSShippedObjects IS NULL<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @MSShippedObjects is not supported.&#8217;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF EXISTS(SELECT * FROM @SelectedIndexes WHERE DatabaseName IS NULL OR SchemaName IS NULL OR ObjectName IS NULL OR IndexName IS NULL)<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @Indexes is not supported.&#8217;, 16, 1<br /> END</p> <p> IF @Indexes IS NOT NULL AND NOT EXISTS(SELECT * FROM @SelectedIndexes)<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @Indexes is not supported.&#8217;, 16, 2<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @TimeLimit &lt; 0<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#039;The value for the parameter @TimeLimit is not supported.&#039;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @Delay &lt; 0<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#039;The value for the parameter @Delay is not supported.&#039;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @WaitAtLowPriorityMaxDuration &lt; 0<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#039;The value for the parameter @WaitAtLowPriorityMaxDuration is not supported.&#039;, 16, 1<br /> END</p> <p> IF @WaitAtLowPriorityMaxDuration IS NOT NULL AND @Version &lt; 12<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#039;The value for the parameter @WaitAtLowPriorityMaxDuration is not supported.&#039;, 16, 2<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @WaitAtLowPriorityAbortAfterWait NOT IN(&#039;NONE&#039;,&#039;SELF&#039;,&#039;BLOCKERS&#039;)<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#039;The value for the parameter @WaitAtLowPriorityAbortAfterWait is not supported.&#039;, 16, 1<br /> END</p> <p> IF @WaitAtLowPriorityAbortAfterWait IS NOT NULL AND @Version = 14 OR SERVERPROPERTY(&#8216;EngineEdition&#8217;) IN (5, 8))<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @Resumable is not supported.&#8217;, 16, 2<br /> END</p> <p> IF @Resumable = &#8216;Y&#8217; AND @SortInTempdb = &#8216;Y&#8217;<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;You can only specify one of the parameters @Resumable and @SortInTempdb.&#8217;, 16, 3<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @LockTimeout 1<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @StringDelimiter is not supported.&#8217;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @DatabaseOrder NOT IN(&#8216;DATABASE_NAME_ASC&#8217;,&#8217;DATABASE_NAME_DESC&#8217;,&#8217;DATABASE_SIZE_ASC&#8217;,&#8217;DATABASE_SIZE_DESC&#8217;)<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @DatabaseOrder is not supported.&#8217;, 16, 1<br /> END</p> <p> IF @DatabaseOrder IS NOT NULL AND SERVERPROPERTY(&#8216;EngineEdition&#8217;) = 5<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @DatabaseOrder is not supported.&#8217;, 16, 2<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @DatabasesInParallel NOT IN(&#8216;Y&#8217;,&#8217;N&#8217;) OR @DatabasesInParallel IS NULL<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @DatabasesInParallel is not supported.&#8217;, 16, 1<br /> END</p> <p> IF @DatabasesInParallel = &#8216;Y&#8217; AND SERVERPROPERTY(&#8216;EngineEdition&#8217;) = 5<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @DatabasesInParallel is not supported.&#8217;, 16, 2<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF LEN(@ExecuteAsUser) &gt; 128<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @ExecuteAsUser is not supported.&#8217;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @LogToTable NOT IN(&#8216;Y&#8217;,&#8217;N&#8217;) OR @LogToTable IS NULL<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @LogToTable is not supported.&#8217;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @Execute NOT IN(&#8216;Y&#8217;,&#8217;N&#8217;) OR @Execute IS NULL<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The value for the parameter @Execute is not supported.&#8217;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF EXISTS(SELECT * FROM @Errors)<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The documentation is available at https://ola.hallengren.com/sql-server-index-and-statistics-maintenance.html.&#8217;, 16, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br /> &#8211;// Check that selected databases and availability groups exist //&#8211;<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> SET @ErrorMessage = &#8221;<br /> SELECT @ErrorMessage = @ErrorMessage + QUOTENAME(DatabaseName) + &#8216;, &#8216;<br /> FROM @SelectedDatabases<br /> WHERE DatabaseName NOT LIKE &#8216;%[%]%&#8217;<br /> AND DatabaseName NOT IN (SELECT DatabaseName FROM @tmpDatabases)<br /> IF @@ROWCOUNT &gt; 0<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The following databases in the @Databases parameter do not exist: &#8216; + LEFT(@ErrorMessage,LEN(@ErrorMessage)-1) + &#8216;.&#8217;, 10, 1<br /> END</p> <p> SET @ErrorMessage = &#8221;<br /> SELECT @ErrorMessage = @ErrorMessage + QUOTENAME(DatabaseName) + &#8216;, &#8216;<br /> FROM @SelectedIndexes<br /> WHERE DatabaseName NOT LIKE &#8216;%[%]%&#8217;<br /> AND DatabaseName NOT IN (SELECT DatabaseName FROM @tmpDatabases)<br /> IF @@ROWCOUNT &gt; 0<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The following databases in the @Indexes parameter do not exist: &#8216; + LEFT(@ErrorMessage,LEN(@ErrorMessage)-1) + &#8216;.&#8217;, 10, 1<br /> END</p> <p> SET @ErrorMessage = &#8221;<br /> SELECT @ErrorMessage = @ErrorMessage + QUOTENAME(AvailabilityGroupName) + &#8216;, &#8216;<br /> FROM @SelectedAvailabilityGroups<br /> WHERE AvailabilityGroupName NOT LIKE &#8216;%[%]%&#8217;<br /> AND AvailabilityGroupName NOT IN (SELECT AvailabilityGroupName FROM @tmpAvailabilityGroups)<br /> IF @@ROWCOUNT &gt; 0<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The following availability groups do not exist: &#8216; + LEFT(@ErrorMessage,LEN(@ErrorMessage)-1) + &#8216;.&#8217;, 10, 1<br /> END</p> <p> SET @ErrorMessage = &#8221;<br /> SELECT @ErrorMessage = @ErrorMessage + QUOTENAME(DatabaseName) + &#8216;, &#8216;<br /> FROM @SelectedIndexes<br /> WHERE DatabaseName NOT LIKE &#8216;%[%]%&#8217;<br /> AND DatabaseName IN (SELECT DatabaseName FROM @tmpDatabases)<br /> AND DatabaseName NOT IN (SELECT DatabaseName FROM @tmpDatabases WHERE Selected = 1)<br /> IF @@ROWCOUNT &gt; 0<br /> BEGIN<br /> INSERT INTO @Errors ([Message], Severity, [State])<br /> SELECT &#8216;The following databases have been selected in the @Indexes parameter, but not in the @Databases or @AvailabilityGroups parameters: &#8216; + LEFT(@ErrorMessage,LEN(@ErrorMessage)-1) + &#8216;.&#8217;, 10, 1<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br /> &#8211;// Raise errors //&#8211;<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> DECLARE ErrorCursor CURSOR FAST_FORWARD FOR SELECT [Message], Severity, [State] FROM @Errors ORDER BY [ID] ASC</p> <p> OPEN ErrorCursor</p> <p> FETCH ErrorCursor INTO @CurrentMessage, @CurrentSeverity, @CurrentState</p> <p> WHILE @@FETCH_STATUS = 0<br /> BEGIN<br /> RAISERROR(&#8216;%s&#8217;, @CurrentSeverity, @CurrentState, @CurrentMessage) WITH NOWAIT<br /> RAISERROR(@EmptyLine, 10, 1) WITH NOWAIT</p> <p> FETCH NEXT FROM ErrorCursor INTO @CurrentMessage, @CurrentSeverity, @CurrentState<br /> END</p> <p> CLOSE ErrorCursor</p> <p> DEALLOCATE ErrorCursor</p> <p> IF EXISTS (SELECT * FROM @Errors WHERE Severity &gt;= 16)<br /> BEGIN<br /> SET @ReturnCode = 50000<br /> GOTO Logging<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br /> &#8211;// Should statistics be updated on the partition level? //&#8211;<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> SET @PartitionLevelStatistics = CASE WHEN @PartitionLevel = &#8216;Y&#8217; AND ((@Version &gt;= 12.05 AND @Version = 13.04422 OR SERVERPROPERTY(&#8216;EngineEdition&#8217;) IN (5,8)) THEN 1 ELSE 0 END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br /> &#8211;// Update database order //&#8211;<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @DatabaseOrder IN(&#8216;DATABASE_SIZE_ASC&#8217;,&#8217;DATABASE_SIZE_DESC&#8217;)<br /> BEGIN<br /> UPDATE tmpDatabases<br /> SET DatabaseSize = (SELECT SUM(CAST(size AS bigint)) FROM sys.master_files WHERE [type] = 0 AND database_id = DB_ID(tmpDatabases.DatabaseName))<br /> FROM @tmpDatabases tmpDatabases<br /> END</p> <p> IF @DatabaseOrder IS NULL<br /> BEGIN<br /> WITH tmpDatabases AS (<br /> SELECT DatabaseName, [Order], ROW_NUMBER() OVER (ORDER BY StartPosition ASC, DatabaseName ASC) AS RowNumber<br /> FROM @tmpDatabases tmpDatabases<br /> WHERE Selected = 1<br /> )<br /> UPDATE tmpDatabases<br /> SET [Order] = RowNumber<br /> END<br /> ELSE<br /> IF @DatabaseOrder = &#8216;DATABASE_NAME_ASC&#8217;<br /> BEGIN<br /> WITH tmpDatabases AS (<br /> SELECT DatabaseName, [Order], ROW_NUMBER() OVER (ORDER BY DatabaseName ASC) AS RowNumber<br /> FROM @tmpDatabases tmpDatabases<br /> WHERE Selected = 1<br /> )<br /> UPDATE tmpDatabases<br /> SET [Order] = RowNumber<br /> END<br /> ELSE<br /> IF @DatabaseOrder = &#8216;DATABASE_NAME_DESC&#8217;<br /> BEGIN<br /> WITH tmpDatabases AS (<br /> SELECT DatabaseName, [Order], ROW_NUMBER() OVER (ORDER BY DatabaseName DESC) AS RowNumber<br /> FROM @tmpDatabases tmpDatabases<br /> WHERE Selected = 1<br /> )<br /> UPDATE tmpDatabases<br /> SET [Order] = RowNumber<br /> END<br /> ELSE<br /> IF @DatabaseOrder = &#8216;DATABASE_SIZE_ASC&#8217;<br /> BEGIN<br /> WITH tmpDatabases AS (<br /> SELECT DatabaseName, [Order], ROW_NUMBER() OVER (ORDER BY DatabaseSize ASC) AS RowNumber<br /> FROM @tmpDatabases tmpDatabases<br /> WHERE Selected = 1<br /> )<br /> UPDATE tmpDatabases<br /> SET [Order] = RowNumber<br /> END<br /> ELSE<br /> IF @DatabaseOrder = &#8216;DATABASE_SIZE_DESC&#8217;<br /> BEGIN<br /> WITH tmpDatabases AS (<br /> SELECT DatabaseName, [Order], ROW_NUMBER() OVER (ORDER BY DatabaseSize DESC) AS RowNumber<br /> FROM @tmpDatabases tmpDatabases<br /> WHERE Selected = 1<br /> )<br /> UPDATE tmpDatabases<br /> SET [Order] = RowNumber<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br /> &#8211;// Update the queue //&#8211;<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> IF @DatabasesInParallel = &#8216;Y&#8217;<br /> BEGIN</p> <p> BEGIN TRY</p> <p> SELECT @QueueID = QueueID<br /> FROM dbo.[Queue]<br /> WHERE SchemaName = @SchemaName<br /> AND ObjectName = @ObjectName<br /> AND [Parameters] = @Parameters</p> <p> IF @QueueID IS NULL<br /> BEGIN<br /> BEGIN TRANSACTION</p> <p> SELECT @QueueID = QueueID<br /> FROM dbo.[Queue] WITH (UPDLOCK, HOLDLOCK)<br /> WHERE SchemaName = @SchemaName<br /> AND ObjectName = @ObjectName<br /> AND [Parameters] = @Parameters</p> <p> IF @QueueID IS NULL<br /> BEGIN<br /> INSERT INTO dbo.[Queue] (SchemaName, ObjectName, [Parameters])<br /> SELECT @SchemaName, @ObjectName, @Parameters</p> <p> SET @QueueID = SCOPE_IDENTITY()<br /> END</p> <p> COMMIT TRANSACTION<br /> END</p> <p> BEGIN TRANSACTION</p> <p> UPDATE [Queue]<br /> SET QueueStartTime = SYSDATETIME(),<br /> SessionID = @@SPID,<br /> RequestID = (SELECT request_id FROM sys.dm_exec_requests WHERE session_id = @@SPID),<br /> RequestStartTime = (SELECT start_time FROM sys.dm_exec_requests WHERE session_id = @@SPID)<br /> FROM dbo.[Queue] [Queue]<br /> WHERE QueueID = @QueueID<br /> AND NOT EXISTS (SELECT *<br /> FROM sys.dm_exec_requests<br /> WHERE session_id = [Queue].SessionID<br /> AND request_id = [Queue].RequestID<br /> AND start_time = [Queue].RequestStartTime)<br /> AND NOT EXISTS (SELECT *<br /> FROM dbo.QueueDatabase QueueDatabase<br /> INNER JOIN sys.dm_exec_requests ON QueueDatabase.SessionID = session_id AND QueueDatabase.RequestID = request_id AND QueueDatabase.RequestStartTime = start_time<br /> WHERE QueueDatabase.QueueID = @QueueID)</p> <p> IF @@ROWCOUNT = 1<br /> BEGIN<br /> INSERT INTO dbo.QueueDatabase (QueueID, DatabaseName)<br /> SELECT @QueueID AS QueueID,<br /> DatabaseName<br /> FROM @tmpDatabases tmpDatabases<br /> WHERE Selected = 1<br /> AND NOT EXISTS (SELECT * FROM dbo.QueueDatabase WHERE DatabaseName = tmpDatabases.DatabaseName AND QueueID = @QueueID)</p> <p> DELETE QueueDatabase<br /> FROM dbo.QueueDatabase QueueDatabase<br /> WHERE QueueID = @QueueID<br /> AND NOT EXISTS (SELECT * FROM @tmpDatabases tmpDatabases WHERE DatabaseName = QueueDatabase.DatabaseName AND Selected = 1)</p> <p> UPDATE QueueDatabase<br /> SET DatabaseOrder = tmpDatabases.[Order]<br /> FROM dbo.QueueDatabase QueueDatabase<br /> INNER JOIN @tmpDatabases tmpDatabases ON QueueDatabase.DatabaseName = tmpDatabases.DatabaseName<br /> WHERE QueueID = @QueueID<br /> END</p> <p> COMMIT TRANSACTION</p> <p> SELECT @QueueStartTime = QueueStartTime<br /> FROM dbo.[Queue]<br /> WHERE QueueID = @QueueID</p> <p> END TRY</p> <p> BEGIN CATCH<br /> IF XACT_STATE() 0<br /> BEGIN<br /> ROLLBACK TRANSACTION<br /> END<br /> SET @ErrorMessage = &#8216;Msg &#8216; + CAST(ERROR_NUMBER() AS nvarchar) + &#8216;, &#8216; + ISNULL(ERROR_MESSAGE(),&#8221;)<br /> RAISERROR(&#8216;%s&#8217;,16,1,@ErrorMessage) WITH NOWAIT<br /> RAISERROR(@EmptyLine,10,1) WITH NOWAIT<br /> SET @ReturnCode = ERROR_NUMBER()<br /> GOTO Logging<br /> END CATCH</p> <p> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br /> &#8211;// Execute commands //&#8211;<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> WHILE (1 = 1)<br /> BEGIN</p> <p> IF @DatabasesInParallel = &#8216;Y&#8217;<br /> BEGIN<br /> UPDATE QueueDatabase<br /> SET DatabaseStartTime = NULL,<br /> SessionID = NULL,<br /> RequestID = NULL,<br /> RequestStartTime = NULL<br /> FROM dbo.QueueDatabase QueueDatabase<br /> WHERE QueueID = @QueueID<br /> AND DatabaseStartTime IS NOT NULL<br /> AND DatabaseEndTime IS NULL<br /> AND NOT EXISTS (SELECT * FROM sys.dm_exec_requests WHERE session_id = QueueDatabase.SessionID AND request_id = QueueDatabase.RequestID AND start_time = QueueDatabase.RequestStartTime)</p> <p> UPDATE QueueDatabase<br /> SET DatabaseStartTime = SYSDATETIME(),<br /> DatabaseEndTime = NULL,<br /> SessionID = @@SPID,<br /> RequestID = (SELECT request_id FROM sys.dm_exec_requests WHERE session_id = @@SPID),<br /> RequestStartTime = (SELECT start_time FROM sys.dm_exec_requests WHERE session_id = @@SPID),<br /> @CurrentDatabaseName = DatabaseName<br /> FROM (SELECT TOP 1 DatabaseStartTime,<br /> DatabaseEndTime,<br /> SessionID,<br /> RequestID,<br /> RequestStartTime,<br /> DatabaseName<br /> FROM dbo.QueueDatabase<br /> WHERE QueueID = @QueueID<br /> AND (DatabaseStartTime &lt; @QueueStartTime OR DatabaseStartTime IS NULL)<br /> AND NOT (DatabaseStartTime IS NOT NULL AND DatabaseEndTime IS NULL)<br /> ORDER BY DatabaseOrder ASC<br /> ) QueueDatabase<br /> END<br /> ELSE<br /> BEGIN<br /> SELECT TOP 1 @CurrentDBID = ID,<br /> @CurrentDatabaseName = DatabaseName<br /> FROM @tmpDatabases<br /> WHERE Selected = 1<br /> AND Completed = 0<br /> ORDER BY [Order] ASC<br /> END</p> <p> IF @@ROWCOUNT = 0<br /> BEGIN<br /> BREAK<br /> END</p> <p> SET @CurrentDatabase_sp_executesql = QUOTENAME(@CurrentDatabaseName) + &#039;.sys.sp_executesql&#039;</p> <p> IF @ExecuteAsUser IS NOT NULL<br /> BEGIN<br /> SET @CurrentCommand = &#039;&#039;<br /> SET @CurrentCommand += &#039;IF EXISTS(SELECT * FROM sys.database_principals database_principals WHERE database_principals.[name] = @ParamExecuteAsUser) BEGIN SET @ParamExecuteAsUserExists = 1 END ELSE BEGIN SET @ParamExecuteAsUserExists = 0 END&#039;</p> <p> EXECUTE @CurrentDatabase_sp_executesql @stmt = @CurrentCommand, @params = N&#039;@ParamExecuteAsUser sysname, @ParamExecuteAsUserExists bit OUTPUT&#039;, @ParamExecuteAsUser = @ExecuteAsUser, @ParamExecuteAsUserExists = @CurrentExecuteAsUserExists OUTPUT<br /> END</p> <p> BEGIN<br /> SET @DatabaseMessage = &#039;Date and time: &#039; + CONVERT(nvarchar,SYSDATETIME(),120)<br /> RAISERROR(&#039;%s&#039;,10,1,@DatabaseMessage) WITH NOWAIT</p> <p> SET @DatabaseMessage = &#039;Database: &#039; + QUOTENAME(@CurrentDatabaseName)<br /> RAISERROR(&#039;%s&#039;,10,1,@DatabaseMessage) WITH NOWAIT<br /> END</p> <p> SELECT @CurrentUserAccess = user_access_desc,<br /> @CurrentIsReadOnly = is_read_only,<br /> @CurrentDatabaseState = state_desc,<br /> @CurrentInStandby = is_in_standby,<br /> @CurrentRecoveryModel = recovery_model_desc<br /> FROM sys.databases<br /> WHERE [name] = @CurrentDatabaseName</p> <p> BEGIN<br /> SET @DatabaseMessage = &#039;State: &#039; + @CurrentDatabaseState<br /> RAISERROR(&#039;%s&#039;,10,1,@DatabaseMessage) WITH NOWAIT</p> <p> SET @DatabaseMessage = &#039;Standby: &#039; + CASE WHEN @CurrentInStandby = 1 THEN &#039;Yes&#039; ELSE &#039;No&#039; END<br /> RAISERROR(&#039;%s&#039;,10,1,@DatabaseMessage) WITH NOWAIT</p> <p> SET @DatabaseMessage = &#039;Updateability: &#039; + CASE WHEN @CurrentIsReadOnly = 1 THEN &#039;READ_ONLY&#039; WHEN @CurrentIsReadOnly = 0 THEN &#039;READ_WRITE&#039; END<br /> RAISERROR(&#039;%s&#039;,10,1,@DatabaseMessage) WITH NOWAIT</p> <p> SET @DatabaseMessage = &#039;User access: &#039; + @CurrentUserAccess<br /> RAISERROR(&#039;%s&#039;,10,1,@DatabaseMessage) WITH NOWAIT</p> <p> SET @DatabaseMessage = &#039;Recovery model: &#039; + @CurrentRecoveryModel<br /> RAISERROR(&#039;%s&#039;,10,1,@DatabaseMessage) WITH NOWAIT<br /> END</p> <p> IF @CurrentDatabaseState = &#039;ONLINE&#039; AND SERVERPROPERTY(&#039;EngineEdition&#039;) 5<br /> BEGIN<br /> IF EXISTS (SELECT * FROM sys.database_recovery_status WHERE database_id = DB_ID(@CurrentDatabaseName) AND database_guid IS NOT NULL)<br /> BEGIN<br /> SET @CurrentIsDatabaseAccessible = 1<br /> END<br /> ELSE<br /> BEGIN<br /> SET @CurrentIsDatabaseAccessible = 0<br /> END<br /> END</p> <p> IF @Version &gt;= 11 AND SERVERPROPERTY(&#8216;IsHadrEnabled&#8217;) = 1<br /> BEGIN<br /> SELECT @CurrentReplicaID = databases.replica_id<br /> FROM sys.databases databases<br /> INNER JOIN sys.availability_replicas availability_replicas ON databases.replica_id = availability_replicas.replica_id<br /> WHERE databases.[name] = @CurrentDatabaseName</p> <p> SELECT @CurrentAvailabilityGroupID = group_id<br /> FROM sys.availability_replicas<br /> WHERE replica_id = @CurrentReplicaID</p> <p> SELECT @CurrentAvailabilityGroupRole = role_desc<br /> FROM sys.dm_hadr_availability_replica_states<br /> WHERE replica_id = @CurrentReplicaID</p> <p> SELECT @CurrentAvailabilityGroup = [name]<br /> FROM sys.availability_groups<br /> WHERE group_id = @CurrentAvailabilityGroupID<br /> END</p> <p> IF SERVERPROPERTY(&#8216;EngineEdition&#8217;) 5<br /> BEGIN<br /> SELECT @CurrentDatabaseMirroringRole = UPPER(mirroring_role_desc)<br /> FROM sys.database_mirroring<br /> WHERE database_id = DB_ID(@CurrentDatabaseName)<br /> END</p> <p> IF @CurrentIsDatabaseAccessible IS NOT NULL<br /> BEGIN<br /> SET @DatabaseMessage = &#8216;Is accessible: &#8216; + CASE WHEN @CurrentIsDatabaseAccessible = 1 THEN &#8216;Yes&#8217; ELSE &#8216;No&#8217; END<br /> RAISERROR(&#8216;%s&#8217;,10,1,@DatabaseMessage) WITH NOWAIT<br /> END</p> <p> IF @CurrentAvailabilityGroup IS NOT NULL<br /> BEGIN<br /> SET @DatabaseMessage = &#8216;Availability group: &#8216; + ISNULL(@CurrentAvailabilityGroup,&#8217;N/A&#8217;)<br /> RAISERROR(&#8216;%s&#8217;,10,1,@DatabaseMessage) WITH NOWAIT</p> <p> SET @DatabaseMessage = &#8216;Availability group role: &#8216; + ISNULL(@CurrentAvailabilityGroupRole,&#8217;N/A&#8217;)<br /> RAISERROR(&#8216;%s&#8217;,10,1,@DatabaseMessage) WITH NOWAIT<br /> END</p> <p> IF @CurrentDatabaseMirroringRole IS NOT NULL<br /> BEGIN<br /> SET @DatabaseMessage = &#8216;Database mirroring role: &#8216; + @CurrentDatabaseMirroringRole<br /> RAISERROR(&#8216;%s&#8217;,10,1,@DatabaseMessage) WITH NOWAIT<br /> END</p> <p> RAISERROR(@EmptyLine,10,1) WITH NOWAIT</p> <p> IF @CurrentExecuteAsUserExists = 0<br /> BEGIN<br /> SET @DatabaseMessage = &#8216;The user &#8216; + QUOTENAME(@ExecuteAsUser) + &#8216; does not exist in the database &#8216; + QUOTENAME(@CurrentDatabaseName) + &#8216;.&#8217;<br /> RAISERROR(&#8216;%s&#8217;,16,1,@DatabaseMessage) WITH NOWAIT<br /> RAISERROR(@EmptyLine,10,1) WITH NOWAIT<br /> END</p> <p> IF @CurrentDatabaseState = &#8216;ONLINE&#8217;<br /> AND NOT (@CurrentUserAccess = &#8216;SINGLE_USER&#8217; AND @CurrentIsDatabaseAccessible = 0)<br /> AND DATABASEPROPERTYEX(@CurrentDatabaseName,&#8217;Updateability&#8217;) = &#8216;READ_WRITE&#8217;<br /> AND (@CurrentExecuteAsUserExists = 1 OR @CurrentExecuteAsUserExists IS NULL)<br /> BEGIN</p> <p> &#8212; Select indexes in the current database<br /> IF (EXISTS(SELECT * FROM @ActionsPreferred) OR @UpdateStatistics IS NOT NULL) AND (SYSDATETIME() = 12 THEN &#8216;tables.is_memory_optimized&#8217; ELSE &#8216;0&#8217; END + &#8216; AS IsMemoryOptimized&#8217;<br /> + &#8216;, indexes.index_id AS IndexID&#8217;<br /> + &#8216;, indexes.[name] AS IndexName&#8217;<br /> + &#8216;, indexes.[type] AS IndexType&#8217;<br /> + &#8216;, indexes.allow_page_locks AS AllowPageLocks&#8217;</p> <p> + &#8216;, CASE WHEN indexes.[type] = 1 AND EXISTS(SELECT * FROM sys.columns columns INNER JOIN sys.types types ON columns.system_type_id = types.user_type_id WHERE columns.[object_id] = objects.object_id AND types.name IN(&#8221;image&#8221;,&#8221;text&#8221;,&#8221;ntext&#8221;)) THEN 1 ELSE 0 END AS IsImageText&#8217;</p> <p> + &#8216;, CASE WHEN indexes.[type] = 1 AND EXISTS(SELECT * FROM sys.columns columns INNER JOIN sys.types types ON columns.system_type_id = types.user_type_id OR (columns.user_type_id = types.user_type_id AND types.is_assembly_type = 1) WHERE columns.[object_id] = objects.object_id AND (types.name IN(&#8221;xml&#8221;) OR (types.name IN(&#8221;varchar&#8221;,&#8221;nvarchar&#8221;,&#8221;varbinary&#8221;) AND columns.max_length = -1) OR (types.is_assembly_type = 1 AND columns.max_length = -1))) THEN 1&#8217;<br /> + &#8216; WHEN indexes.[type] = 2 AND EXISTS(SELECT * FROM sys.index_columns index_columns INNER JOIN sys.columns columns ON index_columns.[object_id] = columns.[object_id] AND index_columns.column_id = columns.column_id INNER JOIN sys.types types ON columns.system_type_id = types.user_type_id OR (columns.user_type_id = types.user_type_id AND types.is_assembly_type = 1) WHERE index_columns.[object_id] = objects.object_id AND index_columns.index_id = indexes.index_id AND (types.[name] IN(&#8221;xml&#8221;) OR (types.[name] IN(&#8221;varchar&#8221;,&#8221;nvarchar&#8221;,&#8221;varbinary&#8221;) AND columns.max_length = -1) OR (types.is_assembly_type = 1 AND columns.max_length = -1))) THEN 1 ELSE 0 END AS IsNewLOB&#8217;</p> <p> + &#8216;, CASE WHEN indexes.[type] = 1 AND EXISTS(SELECT * FROM sys.columns columns WHERE columns.[object_id] = objects.object_id AND columns.is_filestream = 1) THEN 1 ELSE 0 END AS IsFileStream&#8217;</p> <p> + &#8216;, CASE WHEN EXISTS(SELECT * FROM sys.indexes indexes WHERE indexes.[object_id] = objects.object_id AND [type] IN(5,6)) THEN 1 ELSE 0 END AS IsColumnStore&#8217;</p> <p> + &#8216;, CASE WHEN EXISTS(SELECT * FROM sys.index_columns index_columns INNER JOIN sys.columns columns ON index_columns.object_id = columns.object_id AND index_columns.column_id = columns.column_id WHERE (index_columns.key_ordinal &gt; 0 OR index_columns.partition_ordinal &gt; 0) AND columns.is_computed = 1 AND index_columns.object_id = indexes.object_id AND index_columns.index_id = indexes.index_id) THEN 1 ELSE 0 END AS IsComputed&#8217;</p> <p> + &#8216;, CASE WHEN EXISTS(SELECT * FROM sys.index_columns index_columns INNER JOIN sys.columns columns ON index_columns.[object_id] = columns.[object_id] AND index_columns.column_id = columns.column_id INNER JOIN sys.types types ON columns.system_type_id = types.system_type_id WHERE index_columns.[object_id] = objects.object_id AND index_columns.index_id = indexes.index_id AND types.[name] = &#8221;timestamp&#8221;) THEN 1 ELSE 0 END AS IsTimestamp&#8217;</p> <p> + &#8216;, CASE WHEN EXISTS (SELECT * FROM sys.indexes indexes2 INNER JOIN sys.destination_data_spaces destination_data_spaces ON indexes.data_space_id = destination_data_spaces.partition_scheme_id INNER JOIN sys.filegroups filegroups ON destination_data_spaces.data_space_id = filegroups.data_space_id WHERE filegroups.is_read_only = 1 AND indexes2.[object_id] = indexes.[object_id] AND indexes2.[index_id] = indexes.index_id&#8217; + CASE WHEN @PartitionLevel = &#8216;Y&#8217; THEN &#8216; AND destination_data_spaces.destination_id = partitions.partition_number&#8217; ELSE &#8221; END + &#8216;) THEN 1&#8217;<br /> + &#8216; WHEN EXISTS (SELECT * FROM sys.indexes indexes2 INNER JOIN sys.filegroups filegroups ON indexes.data_space_id = filegroups.data_space_id WHERE filegroups.is_read_only = 1 AND indexes.[object_id] = indexes2.[object_id] AND indexes.[index_id] = indexes2.index_id) THEN 1&#8217;<br /> + &#8216; WHEN indexes.[type] = 1 AND EXISTS (SELECT * FROM sys.tables tables INNER JOIN sys.filegroups filegroups ON tables.lob_data_space_id = filegroups.data_space_id WHERE filegroups.is_read_only = 1 AND tables.[object_id] = objects.[object_id]) THEN 1 ELSE 0 END AS OnReadOnlyFileGroup&#8217;</p> <p> + &#8216;, &#8216; + CASE WHEN @Version &gt;= 14 THEN &#8216;CASE WHEN EXISTS(SELECT * FROM sys.index_resumable_operations index_resumable_operations WHERE state_desc = &#8221;PAUSED&#8221; AND index_resumable_operations.object_id = indexes.object_id AND index_resumable_operations.index_id = indexes.index_id AND (index_resumable_operations.partition_number = partitions.partition_number OR index_resumable_operations.partition_number IS NULL)) THEN 1 ELSE 0 END&#8217; ELSE &#8216;0&#8217; END + &#8216; AS ResumableIndexOperation&#8217;</p> <p> + &#8216;, stats.stats_id AS StatisticsID&#8217;<br /> + &#8216;, stats.name AS StatisticsName&#8217;<br /> + &#8216;, stats.no_recompute AS NoRecompute&#8217;<br /> + &#8216;, &#8216; + CASE WHEN @Version &gt;= 12 THEN &#8216;stats.is_incremental&#8217; ELSE &#8216;0&#8217; END + &#8216; AS IsIncremental&#8217;<br /> + &#8216;, &#8216; + CASE WHEN @PartitionLevel = &#8216;Y&#8217; THEN &#8216;partitions.partition_id AS PartitionID&#8217; WHEN @PartitionLevel = &#8216;N&#8217; THEN &#8216;NULL AS PartitionID&#8217; END<br /> + &#8216;, &#8216; + CASE WHEN @PartitionLevel = &#8216;Y&#8217; THEN &#8216;partitions.partition_number AS PartitionNumber&#8217; WHEN @PartitionLevel = &#8216;N&#8217; THEN &#8216;NULL AS PartitionNumber&#8217; END<br /> + &#8216;, &#8216; + CASE WHEN @PartitionLevel = &#8216;Y&#8217; THEN &#8216;IndexPartitions.partition_count AS PartitionCount&#8217; WHEN @PartitionLevel = &#8216;N&#8217; THEN &#8216;NULL AS PartitionCount&#8217; END<br /> + &#8216;, 0 AS [Order]&#8217;<br /> + &#8216;, 0 AS Selected&#8217;<br /> + &#8216;, 0 AS Completed&#8217;<br /> + &#8216; FROM sys.indexes indexes&#8217;<br /> + &#8216; INNER JOIN sys.objects objects ON indexes.[object_id] = objects.[object_id]&#8217;<br /> + &#8216; INNER JOIN sys.schemas schemas ON objects.[schema_id] = schemas.[schema_id]&#8217;<br /> + &#8216; LEFT OUTER JOIN sys.tables tables ON objects.[object_id] = tables.[object_id]&#8217;<br /> + &#8216; LEFT OUTER JOIN sys.stats stats ON indexes.[object_id] = stats.[object_id] AND indexes.[index_id] = stats.[stats_id]&#8217;<br /> IF @PartitionLevel = &#8216;Y&#8217;<br /> BEGIN<br /> SET @CurrentCommand = @CurrentCommand + &#8216; LEFT OUTER JOIN sys.partitions partitions ON indexes.[object_id] = partitions.[object_id] AND indexes.index_id = partitions.index_id&#8217;<br /> + &#8216; LEFT OUTER JOIN (SELECT partitions.[object_id], partitions.index_id, COUNT(DISTINCT partitions.partition_number) AS partition_count FROM sys.partitions partitions GROUP BY partitions.[object_id], partitions.index_id) IndexPartitions ON partitions.[object_id] = IndexPartitions.[object_id] AND partitions.[index_id] = IndexPartitions.[index_id]&#8217;<br /> END</p> <p> SET @CurrentCommand = @CurrentCommand + &#8216; WHERE objects.[type] IN(&#8221;U&#8221;,&#8221;V&#8221;)&#8217;<br /> + CASE WHEN @MSShippedObjects = &#8216;N&#8217; THEN &#8216; AND objects.is_ms_shipped = 0&#8217; ELSE &#8221; END<br /> + &#8216; AND indexes.[type] IN(1,2,3,4,5,6,7)&#8217;<br /> + &#8216; AND indexes.is_disabled = 0 AND indexes.is_hypothetical = 0&#8217;<br /> END</p> <p> IF (EXISTS(SELECT * FROM @ActionsPreferred) AND @UpdateStatistics = &#8216;COLUMNS&#8217;) OR @UpdateStatistics = &#8216;ALL&#8217;<br /> BEGIN<br /> SET @CurrentCommand = @CurrentCommand + &#8216; UNION &#8216;<br /> END</p> <p> IF @UpdateStatistics IN(&#8216;ALL&#8217;,&#8217;COLUMNS&#8217;)<br /> BEGIN<br /> SET @CurrentCommand = @CurrentCommand + &#8216;SELECT schemas.[schema_id] AS SchemaID&#8217;<br /> + &#8216;, schemas.[name] AS SchemaName&#8217;<br /> + &#8216;, objects.[object_id] AS ObjectID&#8217;<br /> + &#8216;, objects.[name] AS ObjectName&#8217;<br /> + &#8216;, RTRIM(objects.[type]) AS ObjectType&#8217;<br /> + &#8216;, &#8216; + CASE WHEN @Version &gt;= 12 THEN &#8216;tables.is_memory_optimized&#8217; ELSE &#8216;0&#8217; END + &#8216; AS IsMemoryOptimized&#8217;<br /> + &#8216;, NULL AS IndexID, NULL AS IndexName&#8217;<br /> + &#8216;, NULL AS IndexType&#8217;<br /> + &#8216;, NULL AS AllowPageLocks&#8217;<br /> + &#8216;, NULL AS IsImageText&#8217;<br /> + &#8216;, NULL AS IsNewLOB&#8217;<br /> + &#8216;, NULL AS IsFileStream&#8217;<br /> + &#8216;, NULL AS IsColumnStore&#8217;<br /> + &#8216;, NULL AS IsComputed&#8217;<br /> + &#8216;, NULL AS IsTimestamp&#8217;<br /> + &#8216;, NULL AS OnReadOnlyFileGroup&#8217;<br /> + &#8216;, NULL AS ResumableIndexOperation&#8217;<br /> + &#8216;, stats.stats_id AS StatisticsID&#8217;<br /> + &#8216;, stats.name AS StatisticsName&#8217;<br /> + &#8216;, stats.no_recompute AS NoRecompute&#8217;<br /> + &#8216;, &#8216; + CASE WHEN @Version &gt;= 12 THEN &#8216;stats.is_incremental&#8217; ELSE &#8216;0&#8217; END + &#8216; AS IsIncremental&#8217;<br /> + &#8216;, NULL AS PartitionID&#8217;<br /> + &#8216;, &#8216; + CASE WHEN @PartitionLevelStatistics = 1 THEN &#8216;dm_db_incremental_stats_properties.partition_number&#8217; ELSE &#8216;NULL&#8217; END + &#8216; AS PartitionNumber&#8217;<br /> + &#8216;, NULL AS PartitionCount&#8217;<br /> + &#8216;, 0 AS [Order]&#8217;<br /> + &#8216;, 0 AS Selected&#8217;<br /> + &#8216;, 0 AS Completed&#8217;<br /> + &#8216; FROM sys.stats stats&#8217;<br /> + &#8216; INNER JOIN sys.objects objects ON stats.[object_id] = objects.[object_id]&#8217;<br /> + &#8216; INNER JOIN sys.schemas schemas ON objects.[schema_id] = schemas.[schema_id]&#8217;<br /> + &#8216; LEFT OUTER JOIN sys.tables tables ON objects.[object_id] = tables.[object_id]&#8217;</p> <p> IF @PartitionLevelStatistics = 1<br /> BEGIN<br /> SET @CurrentCommand = @CurrentCommand + &#8216; OUTER APPLY sys.dm_db_incremental_stats_properties(stats.object_id, stats.stats_id) dm_db_incremental_stats_properties&#8217;<br /> END</p> <p> SET @CurrentCommand = @CurrentCommand + &#8216; WHERE objects.[type] IN(&#8221;U&#8221;,&#8221;V&#8221;)&#8217;<br /> + CASE WHEN @MSShippedObjects = &#8216;N&#8217; THEN &#8216; AND objects.is_ms_shipped = 0&#8217; ELSE &#8221; END<br /> + &#8216; AND NOT EXISTS(SELECT * FROM sys.indexes indexes WHERE indexes.[object_id] = stats.[object_id] AND indexes.index_id = stats.stats_id)&#8217;<br /> END</p> <p> SET @CurrentCommand = @CurrentCommand + &#8216;) IndexesStatistics&#8217;</p> <p> INSERT INTO @tmpIndexesStatistics (SchemaID, SchemaName, ObjectID, ObjectName, ObjectType, IsMemoryOptimized, IndexID, IndexName, IndexType, AllowPageLocks, IsImageText, IsNewLOB, IsFileStream, IsColumnStore, IsComputed, IsTimestamp, OnReadOnlyFileGroup, ResumableIndexOperation, StatisticsID, StatisticsName, [NoRecompute], IsIncremental, PartitionID, PartitionNumber, PartitionCount, [Order], Selected, Completed)<br /> EXECUTE @CurrentDatabase_sp_executesql @stmt = @CurrentCommand<br /> SET @Error = @@ERROR<br /> IF @Error 0<br /> BEGIN<br /> SET @ReturnCode = @Error<br /> END<br /> END</p> <p> IF @Indexes IS NULL<br /> BEGIN<br /> UPDATE tmpIndexesStatistics<br /> SET tmpIndexesStatistics.Selected = 1<br /> FROM @tmpIndexesStatistics tmpIndexesStatistics<br /> END<br /> ELSE<br /> BEGIN<br /> UPDATE tmpIndexesStatistics<br /> SET tmpIndexesStatistics.Selected = SelectedIndexes.Selected<br /> FROM @tmpIndexesStatistics tmpIndexesStatistics<br /> INNER JOIN @SelectedIndexes SelectedIndexes<br /> ON @CurrentDatabaseName LIKE REPLACE(SelectedIndexes.DatabaseName,&#8217;_&#8217;,'[_]&#8217;) AND tmpIndexesStatistics.SchemaName LIKE REPLACE(SelectedIndexes.SchemaName,&#8217;_&#8217;,'[_]&#8217;) AND tmpIndexesStatistics.ObjectName LIKE REPLACE(SelectedIndexes.ObjectName,&#8217;_&#8217;,'[_]&#8217;) AND COALESCE(tmpIndexesStatistics.IndexName,tmpIndexesStatistics.StatisticsName) LIKE REPLACE(SelectedIndexes.IndexName,&#8217;_&#8217;,'[_]&#8217;)<br /> WHERE SelectedIndexes.Selected = 1</p> <p> UPDATE tmpIndexesStatistics<br /> SET tmpIndexesStatistics.Selected = SelectedIndexes.Selected<br /> FROM @tmpIndexesStatistics tmpIndexesStatistics<br /> INNER JOIN @SelectedIndexes SelectedIndexes<br /> ON @CurrentDatabaseName LIKE REPLACE(SelectedIndexes.DatabaseName,&#8217;_&#8217;,'[_]&#8217;) AND tmpIndexesStatistics.SchemaName LIKE REPLACE(SelectedIndexes.SchemaName,&#8217;_&#8217;,'[_]&#8217;) AND tmpIndexesStatistics.ObjectName LIKE REPLACE(SelectedIndexes.ObjectName,&#8217;_&#8217;,'[_]&#8217;) AND COALESCE(tmpIndexesStatistics.IndexName,tmpIndexesStatistics.StatisticsName) LIKE REPLACE(SelectedIndexes.IndexName,&#8217;_&#8217;,'[_]&#8217;)<br /> WHERE SelectedIndexes.Selected = 0</p> <p> UPDATE tmpIndexesStatistics<br /> SET tmpIndexesStatistics.StartPosition = SelectedIndexes2.StartPosition<br /> FROM @tmpIndexesStatistics tmpIndexesStatistics<br /> INNER JOIN (SELECT tmpIndexesStatistics.SchemaName, tmpIndexesStatistics.ObjectName, tmpIndexesStatistics.IndexName, tmpIndexesStatistics.StatisticsName, MIN(SelectedIndexes.StartPosition) AS StartPosition<br /> FROM @tmpIndexesStatistics tmpIndexesStatistics<br /> INNER JOIN @SelectedIndexes SelectedIndexes<br /> ON @CurrentDatabaseName LIKE REPLACE(SelectedIndexes.DatabaseName,&#8217;_&#8217;,'[_]&#8217;) AND tmpIndexesStatistics.SchemaName LIKE REPLACE(SelectedIndexes.SchemaName,&#8217;_&#8217;,'[_]&#8217;) AND tmpIndexesStatistics.ObjectName LIKE REPLACE(SelectedIndexes.ObjectName,&#8217;_&#8217;,'[_]&#8217;) AND COALESCE(tmpIndexesStatistics.IndexName,tmpIndexesStatistics.StatisticsName) LIKE REPLACE(SelectedIndexes.IndexName,&#8217;_&#8217;,'[_]&#8217;)<br /> WHERE SelectedIndexes.Selected = 1<br /> GROUP BY tmpIndexesStatistics.SchemaName, tmpIndexesStatistics.ObjectName, tmpIndexesStatistics.IndexName, tmpIndexesStatistics.StatisticsName) SelectedIndexes2<br /> ON tmpIndexesStatistics.SchemaName = SelectedIndexes2.SchemaName<br /> AND tmpIndexesStatistics.ObjectName = SelectedIndexes2.ObjectName<br /> AND (tmpIndexesStatistics.IndexName = SelectedIndexes2.IndexName OR tmpIndexesStatistics.IndexName IS NULL)<br /> AND (tmpIndexesStatistics.StatisticsName = SelectedIndexes2.StatisticsName OR tmpIndexesStatistics.StatisticsName IS NULL)<br /> END;</p> <p> WITH tmpIndexesStatistics AS (<br /> SELECT SchemaName, ObjectName, [Order], ROW_NUMBER() OVER (ORDER BY ISNULL(ResumableIndexOperation,0) DESC, StartPosition ASC, SchemaName ASC, ObjectName ASC, CASE WHEN IndexType IS NULL THEN 1 ELSE 0 END ASC, IndexType ASC, IndexName ASC, StatisticsName ASC, PartitionNumber ASC) AS RowNumber<br /> FROM @tmpIndexesStatistics tmpIndexesStatistics<br /> WHERE Selected = 1<br /> )<br /> UPDATE tmpIndexesStatistics<br /> SET [Order] = RowNumber</p> <p> SET @ErrorMessage = &#8221;<br /> SELECT @ErrorMessage = @ErrorMessage + QUOTENAME(DatabaseName) + &#8216;.&#8217; + QUOTENAME(SchemaName) + &#8216;.&#8217; + QUOTENAME(ObjectName) + &#8216;, &#8216;<br /> FROM @SelectedIndexes SelectedIndexes<br /> WHERE DatabaseName = @CurrentDatabaseName<br /> AND SchemaName NOT LIKE &#8216;%[%]%&#8217;<br /> AND ObjectName NOT LIKE &#8216;%[%]%&#8217;<br /> AND IndexName LIKE &#8216;%[%]%&#8217;<br /> AND NOT EXISTS (SELECT * FROM @tmpIndexesStatistics WHERE SchemaName = SelectedIndexes.SchemaName AND ObjectName = SelectedIndexes.ObjectName)<br /> IF @@ROWCOUNT &gt; 0<br /> BEGIN<br /> SET @ErrorMessage = &#8216;The following objects in the @Indexes parameter do not exist: &#8216; + LEFT(@ErrorMessage,LEN(@ErrorMessage)-1) + &#8216;.&#8217;<br /> RAISERROR(&#8216;%s&#8217;,10,1,@ErrorMessage) WITH NOWAIT<br /> SET @Error = @@ERROR<br /> RAISERROR(@EmptyLine,10,1) WITH NOWAIT<br /> END</p> <p> SET @ErrorMessage = &#8221;<br /> SELECT @ErrorMessage = @ErrorMessage + QUOTENAME(DatabaseName) + QUOTENAME(SchemaName) + &#8216;.&#8217; + QUOTENAME(ObjectName) + &#8216;.&#8217; + QUOTENAME(IndexName) + &#8216;, &#8216;<br /> FROM @SelectedIndexes SelectedIndexes<br /> WHERE DatabaseName = @CurrentDatabaseName<br /> AND SchemaName NOT LIKE &#8216;%[%]%&#8217;<br /> AND ObjectName NOT LIKE &#8216;%[%]%&#8217;<br /> AND IndexName NOT LIKE &#8216;%[%]%&#8217;<br /> AND NOT EXISTS (SELECT * FROM @tmpIndexesStatistics WHERE SchemaName = SelectedIndexes.SchemaName AND ObjectName = SelectedIndexes.ObjectName AND IndexName = SelectedIndexes.IndexName)<br /> IF @@ROWCOUNT &gt; 0<br /> BEGIN<br /> SET @ErrorMessage = &#8216;The following indexes in the @Indexes parameter do not exist: &#8216; + LEFT(@ErrorMessage,LEN(@ErrorMessage)-1) + &#8216;.&#8217;<br /> RAISERROR(&#8216;%s&#8217;,10,1,@ErrorMessage) WITH NOWAIT<br /> SET @Error = @@ERROR<br /> RAISERROR(@EmptyLine,10,1) WITH NOWAIT<br /> END</p> <p> WHILE (SYSDATETIME() = 10.504000 AND @Version = 11.03000<br /> BEGIN<br /> SET @CurrentCommand += &#8216;SELECT @ParamRowCount = [rows], @ParamModificationCounter = modification_counter FROM sys.dm_db_stats_properties (@ParamObjectID, @ParamStatisticsID)&#8217;<br /> END<br /> ELSE<br /> BEGIN<br /> SET @CurrentCommand += &#8216;SELECT @ParamRowCount = rowcnt, @ParamModificationCounter = rowmodctr FROM sys.sysindexes sysindexes WHERE sysindexes.[id] = @ParamObjectID AND sysindexes.[indid] = @ParamStatisticsID&#8217;<br /> END</p> <p> BEGIN TRY<br /> EXECUTE @CurrentDatabase_sp_executesql @stmt = @CurrentCommand, @params = N&#8217;@ParamObjectID int, @ParamStatisticsID int, @ParamPartitionNumber int, @ParamRowCount bigint OUTPUT, @ParamModificationCounter bigint OUTPUT&#8217;, @ParamObjectID = @CurrentObjectID, @ParamStatisticsID = @CurrentStatisticsID, @ParamPartitionNumber = @CurrentPartitionNumber, @ParamRowCount = @CurrentRowCount OUTPUT, @ParamModificationCounter = @CurrentModificationCounter OUTPUT</p> <p> IF @CurrentRowCount IS NULL SET @CurrentRowCount = 0<br /> IF @CurrentModificationCounter IS NULL SET @CurrentModificationCounter = 0<br /> END TRY<br /> BEGIN CATCH<br /> SET @ErrorMessage = &#8216;Msg &#8216; + CAST(ERROR_NUMBER() AS nvarchar) + &#8216;, &#8216; + ISNULL(ERROR_MESSAGE(),&#8221;) + CASE WHEN ERROR_NUMBER() = 1222 THEN &#8216; The statistics &#8216; + QUOTENAME(@CurrentStatisticsName) + &#8216; on the object &#8216; + QUOTENAME(@CurrentDatabaseName) + &#8216;.&#8217; + QUOTENAME(@CurrentSchemaName) + &#8216;.&#8217; + QUOTENAME(@CurrentObjectName) + &#8216; is locked. The rows and modification_counter could not be checked.&#8217; ELSE &#8221; END<br /> SET @Severity = CASE WHEN ERROR_NUMBER() IN(1205,1222) THEN @LockMessageSeverity ELSE 16 END<br /> RAISERROR(&#8216;%s&#8217;,@Severity,1,@ErrorMessage) WITH NOWAIT<br /> RAISERROR(@EmptyLine,10,1) WITH NOWAIT</p> <p> IF NOT (ERROR_NUMBER() IN(1205,1222) AND @LockMessageSeverity = 10)<br /> BEGIN<br /> SET @ReturnCode = ERROR_NUMBER()<br /> END</p> <p> GOTO NoAction<br /> END CATCH<br /> END</p> <p> &#8212; Is the index fragmented?<br /> IF @CurrentIndexID IS NOT NULL<br /> AND @CurrentOnReadOnlyFileGroup = 0<br /> AND EXISTS(SELECT * FROM @ActionsPreferred)<br /> AND (EXISTS(SELECT [Priority], [Action], COUNT(*) FROM @ActionsPreferred GROUP BY [Priority], [Action] HAVING COUNT(*) 3) OR @MinNumberOfPages &gt; 0 OR @MaxNumberOfPages IS NOT NULL)<br /> BEGIN<br /> SET @CurrentCommand = &#8221;</p> <p> IF @LockTimeout IS NOT NULL SET @CurrentCommand = &#8216;SET LOCK_TIMEOUT &#8216; + CAST(@LockTimeout * 1000 AS nvarchar) + &#8216;; &#8216;</p> <p> SET @CurrentCommand += &#8216;SELECT @ParamFragmentationLevel = MAX(avg_fragmentation_in_percent), @ParamPageCount = SUM(page_count) FROM sys.dm_db_index_physical_stats(DB_ID(@ParamDatabaseName), @ParamObjectID, @ParamIndexID, @ParamPartitionNumber, &#8221;LIMITED&#8221;) WHERE alloc_unit_type_desc = &#8221;IN_ROW_DATA&#8221; AND index_level = 0&#8217;</p> <p> BEGIN TRY<br /> EXECUTE sp_executesql @stmt = @CurrentCommand, @params = N&#8217;@ParamDatabaseName nvarchar(max), @ParamObjectID int, @ParamIndexID int, @ParamPartitionNumber int, @ParamFragmentationLevel float OUTPUT, @ParamPageCount bigint OUTPUT&#8217;, @ParamDatabaseName = @CurrentDatabaseName, @ParamObjectID = @CurrentObjectID, @ParamIndexID = @CurrentIndexID, @ParamPartitionNumber = @CurrentPartitionNumber, @ParamFragmentationLevel = @CurrentFragmentationLevel OUTPUT, @ParamPageCount = @CurrentPageCount OUTPUT<br /> END TRY<br /> BEGIN CATCH<br /> SET @ErrorMessage = &#8216;Msg &#8216; + CAST(ERROR_NUMBER() AS nvarchar) + &#8216;, &#8216; + ISNULL(ERROR_MESSAGE(),&#8221;) + CASE WHEN ERROR_NUMBER() = 1222 THEN &#8216; The index &#8216; + QUOTENAME(@CurrentIndexName) + &#8216; on the object &#8216; + QUOTENAME(@CurrentDatabaseName) + &#8216;.&#8217; + QUOTENAME(@CurrentSchemaName) + &#8216;.&#8217; + QUOTENAME(@CurrentObjectName) + &#8216; is locked. The page_count and avg_fragmentation_in_percent could not be checked.&#8217; ELSE &#8221; END<br /> SET @Severity = CASE WHEN ERROR_NUMBER() IN(1205,1222) THEN @LockMessageSeverity ELSE 16 END<br /> RAISERROR(&#8216;%s&#8217;,@Severity,1,@ErrorMessage) WITH NOWAIT<br /> RAISERROR(@EmptyLine,10,1) WITH NOWAIT</p> <p> IF NOT (ERROR_NUMBER() IN(1205,1222) AND @LockMessageSeverity = 10)<br /> BEGIN<br /> SET @ReturnCode = ERROR_NUMBER()<br /> END</p> <p> GOTO NoAction<br /> END CATCH<br /> END</p> <p> &#8212; Select fragmentation group<br /> IF @CurrentIndexID IS NOT NULL AND @CurrentOnReadOnlyFileGroup = 0 AND EXISTS(SELECT * FROM @ActionsPreferred)<br /> BEGIN<br /> SET @CurrentFragmentationGroup = CASE<br /> WHEN @CurrentFragmentationLevel &gt;= @FragmentationLevel2 THEN &#8216;High&#8217;<br /> WHEN @CurrentFragmentationLevel &gt;= @FragmentationLevel1 AND @CurrentFragmentationLevel &lt; @FragmentationLevel2 THEN &#039;Medium&#039;<br /> WHEN @CurrentFragmentationLevel = 12)<br /> AND ((@CurrentIndexType = 1 AND @CurrentIsImageText = 0 AND @CurrentIsNewLOB = 0)<br /> OR (@CurrentIndexType = 2 AND @CurrentIsNewLOB = 0)<br /> OR (@CurrentIndexType = 1 AND @CurrentIsImageText = 0 AND @CurrentIsFileStream = 0 AND @Version &gt;= 11)<br /> OR (@CurrentIndexType = 2 AND @Version &gt;= 11))<br /> AND (@CurrentIsColumnStore = 0 OR @Version = @MinNumberOfPages OR @MinNumberOfPages = 0)<br /> AND (@CurrentPageCount &lt;= @MaxNumberOfPages OR @MaxNumberOfPages IS NULL)<br /> AND @CurrentResumableIndexOperation = 0<br /> BEGIN<br /> IF EXISTS(SELECT [Priority], [Action], COUNT(*) FROM @ActionsPreferred GROUP BY [Priority], [Action] HAVING COUNT(*) 3)<br /> BEGIN<br /> SELECT @CurrentAction = [Action]<br /> FROM @ActionsPreferred<br /> WHERE FragmentationGroup = @CurrentFragmentationGroup<br /> AND [Priority] = (SELECT MIN([Priority])<br /> FROM @ActionsPreferred<br /> WHERE FragmentationGroup = @CurrentFragmentationGroup<br /> AND [Action] IN (SELECT [Action] FROM @CurrentActionsAllowed))<br /> END<br /> ELSE<br /> BEGIN<br /> SELECT @CurrentAction = [Action]<br /> FROM @ActionsPreferred<br /> WHERE [Priority] = (SELECT MIN([Priority])<br /> FROM @ActionsPreferred<br /> WHERE [Action] IN (SELECT [Action] FROM @CurrentActionsAllowed))<br /> END<br /> END</p> <p> IF @CurrentResumableIndexOperation = 1<br /> BEGIN<br /> SET @CurrentAction = &#8216;INDEX_REBUILD_ONLINE&#8217;<br /> END</p> <p> &#8212; Workaround for limitation in SQL Server, http://support.microsoft.com/kb/2292737<br /> IF @CurrentIndexID IS NOT NULL<br /> BEGIN<br /> SET @CurrentMaxDOP = @MaxDOP</p> <p> IF @CurrentAction = &#8216;INDEX_REBUILD_ONLINE&#8217; AND @CurrentAllowPageLocks = 0<br /> BEGIN<br /> SET @CurrentMaxDOP = 1<br /> END<br /> END</p> <p> &#8212; Update statistics?<br /> IF @CurrentStatisticsID IS NOT NULL<br /> AND ((@UpdateStatistics = &#8216;ALL&#8217; AND (@CurrentIndexType IN (1,2,3,4,7) OR @CurrentIndexID IS NULL)) OR (@UpdateStatistics = &#8216;INDEX&#8217; AND @CurrentIndexID IS NOT NULL AND @CurrentIndexType IN (1,2,3,4,7)) OR (@UpdateStatistics = &#8216;COLUMNS&#8217; AND @CurrentIndexID IS NULL))<br /> AND ((@OnlyModifiedStatistics = &#8216;N&#8217; AND @StatisticsModificationLevel IS NULL) OR (@OnlyModifiedStatistics = &#8216;Y&#8217; AND @CurrentModificationCounter &gt; 0) OR ((@CurrentModificationCounter * 1. / NULLIF(@CurrentRowCount,0)) * 100 &gt;= @StatisticsModificationLevel) OR (@StatisticsModificationLevel IS NOT NULL AND @CurrentModificationCounter &gt; 0 AND (@CurrentModificationCounter &gt;= SQRT(@CurrentRowCount * 1000))) OR (@CurrentIsMemoryOptimized = 1 AND NOT (@Version &gt;= 13 OR SERVERPROPERTY(&#8216;EngineEdition&#8217;) IN (5,8))))<br /> AND ((@CurrentIsPartition = 0 AND (@CurrentAction NOT IN(&#8216;INDEX_REBUILD_ONLINE&#8217;,&#8217;INDEX_REBUILD_OFFLINE&#8217;) OR @CurrentAction IS NULL)) OR (@CurrentIsPartition = 1 AND (@CurrentPartitionNumber = @CurrentPartitionCount OR (@PartitionLevelStatistics = 1 AND @CurrentIsIncremental = 1))))<br /> BEGIN<br /> SET @CurrentUpdateStatistics = &#8216;Y&#8217;<br /> END<br /> ELSE<br /> BEGIN<br /> SET @CurrentUpdateStatistics = &#8216;N&#8217;<br /> END</p> <p> SET @CurrentStatisticsSample = @StatisticsSample<br /> SET @CurrentStatisticsResample = @StatisticsResample</p> <p> &#8212; Memory-optimized tables only supports FULLSCAN and RESAMPLE in SQL Server 2014<br /> IF @CurrentIsMemoryOptimized = 1 AND NOT (@Version &gt;= 13 OR SERVERPROPERTY(&#8216;EngineEdition&#8217;) IN (5,8)) AND (@CurrentStatisticsSample 100 OR @CurrentStatisticsSample IS NULL)<br /> BEGIN<br /> SET @CurrentStatisticsSample = NULL<br /> SET @CurrentStatisticsResample = &#8216;Y&#8217;<br /> END</p> <p> &#8212; Incremental statistics only supports RESAMPLE<br /> IF @PartitionLevelStatistics = 1 AND @CurrentIsIncremental = 1<br /> BEGIN<br /> SET @CurrentStatisticsSample = NULL<br /> SET @CurrentStatisticsResample = &#8216;Y&#8217;<br /> END</p> <p> &#8212; Create index comment<br /> IF @CurrentIndexID IS NOT NULL<br /> BEGIN<br /> SET @CurrentComment = &#8216;ObjectType: &#8216; + CASE WHEN @CurrentObjectType = &#8216;U&#8217; THEN &#8216;Table&#8217; WHEN @CurrentObjectType = &#8216;V&#8217; THEN &#8216;View&#8217; ELSE &#8216;N/A&#8217; END + &#8216;, &#8216;<br /> SET @CurrentComment += &#8216;IndexType: &#8216; + CASE WHEN @CurrentIndexType = 1 THEN &#8216;Clustered&#8217; WHEN @CurrentIndexType = 2 THEN &#8216;NonClustered&#8217; WHEN @CurrentIndexType = 3 THEN &#8216;XML&#8217; WHEN @CurrentIndexType = 4 THEN &#8216;Spatial&#8217; WHEN @CurrentIndexType = 5 THEN &#8216;Clustered Columnstore&#8217; WHEN @CurrentIndexType = 6 THEN &#8216;NonClustered Columnstore&#8217; WHEN @CurrentIndexType = 7 THEN &#8216;NonClustered Hash&#8217; ELSE &#8216;N/A&#8217; END + &#8216;, &#8216;<br /> SET @CurrentComment += &#8216;ImageText: &#8216; + CASE WHEN @CurrentIsImageText = 1 THEN &#8216;Yes&#8217; WHEN @CurrentIsImageText = 0 THEN &#8216;No&#8217; ELSE &#8216;N/A&#8217; END + &#8216;, &#8216;<br /> SET @CurrentComment += &#8216;NewLOB: &#8216; + CASE WHEN @CurrentIsNewLOB = 1 THEN &#8216;Yes&#8217; WHEN @CurrentIsNewLOB = 0 THEN &#8216;No&#8217; ELSE &#8216;N/A&#8217; END + &#8216;, &#8216;<br /> SET @CurrentComment += &#8216;FileStream: &#8216; + CASE WHEN @CurrentIsFileStream = 1 THEN &#8216;Yes&#8217; WHEN @CurrentIsFileStream = 0 THEN &#8216;No&#8217; ELSE &#8216;N/A&#8217; END + &#8216;, &#8216;<br /> IF @Version &gt;= 11 SET @CurrentComment += &#8216;ColumnStore: &#8216; + CASE WHEN @CurrentIsColumnStore = 1 THEN &#8216;Yes&#8217; WHEN @CurrentIsColumnStore = 0 THEN &#8216;No&#8217; ELSE &#8216;N/A&#8217; END + &#8216;, &#8216;<br /> IF @Version &gt;= 14 AND @Resumable = &#8216;Y&#8217; SET @CurrentComment += &#8216;Computed: &#8216; + CASE WHEN @CurrentIsComputed = 1 THEN &#8216;Yes&#8217; WHEN @CurrentIsComputed = 0 THEN &#8216;No&#8217; ELSE &#8216;N/A&#8217; END + &#8216;, &#8216;<br /> IF @Version &gt;= 14 AND @Resumable = &#8216;Y&#8217; SET @CurrentComment += &#8216;Timestamp: &#8216; + CASE WHEN @CurrentIsTimestamp = 1 THEN &#8216;Yes&#8217; WHEN @CurrentIsTimestamp = 0 THEN &#8216;No&#8217; ELSE &#8216;N/A&#8217; END + &#8216;, &#8216;<br /> SET @CurrentComment += &#8216;AllowPageLocks: &#8216; + CASE WHEN @CurrentAllowPageLocks = 1 THEN &#8216;Yes&#8217; WHEN @CurrentAllowPageLocks = 0 THEN &#8216;No&#8217; ELSE &#8216;N/A&#8217; END + &#8216;, &#8216;<br /> SET @CurrentComment += &#8216;PageCount: &#8216; + ISNULL(CAST(@CurrentPageCount AS nvarchar),&#8217;N/A&#8217;) + &#8216;, &#8216;<br /> SET @CurrentComment += &#8216;Fragmentation: &#8216; + ISNULL(CAST(@CurrentFragmentationLevel AS nvarchar),&#8217;N/A&#8217;)<br /> END</p> <p> IF @CurrentIndexID IS NOT NULL AND (@CurrentPageCount IS NOT NULL OR @CurrentFragmentationLevel IS NOT NULL)<br /> BEGIN<br /> SET @CurrentExtendedInfo = (SELECT *<br /> FROM (SELECT CAST(@CurrentPageCount AS nvarchar) AS [PageCount],<br /> CAST(@CurrentFragmentationLevel AS nvarchar) AS Fragmentation<br /> ) ExtendedInfo FOR XML RAW(&#8216;ExtendedInfo&#8217;), ELEMENTS)<br /> END</p> <p> IF @CurrentIndexID IS NOT NULL AND @CurrentAction IS NOT NULL AND (SYSDATETIME() = 12) AND @CurrentResumableIndexOperation = 0<br /> BEGIN<br /> INSERT INTO @CurrentAlterIndexWithClauseArguments (Argument)<br /> SELECT &#8216;ONLINE = ON&#8217; + CASE WHEN @WaitAtLowPriorityMaxDuration IS NOT NULL THEN &#8216; (WAIT_AT_LOW_PRIORITY (MAX_DURATION = &#8216; + CAST(@WaitAtLowPriorityMaxDuration AS nvarchar) + &#8216;, ABORT_AFTER_WAIT = &#8216; + UPPER(@WaitAtLowPriorityAbortAfterWait) + &#8216;))&#8217; ELSE &#8221; END<br /> END</p> <p> IF @CurrentAction = &#8216;INDEX_REBUILD_OFFLINE&#8217; AND (@CurrentIsPartition = 0 OR @Version &gt;= 12) AND @CurrentResumableIndexOperation = 0<br /> BEGIN<br /> INSERT INTO @CurrentAlterIndexWithClauseArguments (Argument)<br /> SELECT &#8216;ONLINE = OFF&#8217;<br /> END</p> <p> IF @CurrentAction IN(&#8216;INDEX_REBUILD_ONLINE&#8217;,&#8217;INDEX_REBUILD_OFFLINE&#8217;) AND @CurrentMaxDOP IS NOT NULL<br /> BEGIN<br /> INSERT INTO @CurrentAlterIndexWithClauseArguments (Argument)<br /> SELECT &#8216;MAXDOP = &#8216; + CAST(@CurrentMaxDOP AS nvarchar)<br /> END</p> <p> IF @CurrentAction IN(&#8216;INDEX_REBUILD_ONLINE&#8217;,&#8217;INDEX_REBUILD_OFFLINE&#8217;) AND @FillFactor IS NOT NULL AND @CurrentIsPartition = 0 AND @CurrentIndexType IN(1,2,3,4) AND @CurrentResumableIndexOperation = 0<br /> BEGIN<br /> INSERT INTO @CurrentAlterIndexWithClauseArguments (Argument)<br /> SELECT &#8216;FILLFACTOR = &#8216; + CAST(@FillFactor AS nvarchar)<br /> END</p> <p> IF @CurrentAction IN(&#8216;INDEX_REBUILD_ONLINE&#8217;,&#8217;INDEX_REBUILD_OFFLINE&#8217;) AND @PadIndex = &#8216;Y&#8217; AND @CurrentIsPartition = 0 AND @CurrentIndexType IN(1,2,3,4) AND @CurrentResumableIndexOperation = 0<br /> BEGIN<br /> INSERT INTO @CurrentAlterIndexWithClauseArguments (Argument)<br /> SELECT &#8216;PAD_INDEX = ON&#8217;<br /> END</p> <p> IF (@Version &gt;= 14 OR SERVERPROPERTY(&#8216;EngineEdition&#8217;) IN (5,8)) AND @CurrentAction = &#8216;INDEX_REBUILD_ONLINE&#8217; AND @CurrentResumableIndexOperation = 0<br /> BEGIN<br /> INSERT INTO @CurrentAlterIndexWithClauseArguments (Argument)<br /> SELECT CASE WHEN @Resumable = &#8216;Y&#8217; AND @CurrentIndexType IN(1,2) AND @CurrentIsComputed = 0 AND @CurrentIsTimestamp = 0 THEN &#8216;RESUMABLE = ON&#8217; ELSE &#8216;RESUMABLE = OFF&#8217; END<br /> END</p> <p> IF (@Version &gt;= 14 OR SERVERPROPERTY(&#8216;EngineEdition&#8217;) IN (5,8)) AND @CurrentAction = &#8216;INDEX_REBUILD_ONLINE&#8217; AND @CurrentResumableIndexOperation = 0 AND @Resumable = &#8216;Y&#8217; AND @CurrentIndexType IN(1,2) AND @CurrentIsComputed = 0 AND @CurrentIsTimestamp = 0 AND @TimeLimit IS NOT NULL<br /> BEGIN<br /> INSERT INTO @CurrentAlterIndexWithClauseArguments (Argument)<br /> SELECT &#8216;MAX_DURATION = &#8216; + CAST(DATEDIFF(MINUTE,SYSDATETIME(),DATEADD(SECOND,@TimeLimit,@StartTime)) AS nvarchar(max))<br /> END</p> <p> IF @CurrentAction IN(&#8216;INDEX_REORGANIZE&#8217;) AND @LOBCompaction = &#8216;Y&#8217;<br /> BEGIN<br /> INSERT INTO @CurrentAlterIndexWithClauseArguments (Argument)<br /> SELECT &#8216;LOB_COMPACTION = ON&#8217;<br /> END</p> <p> IF @CurrentAction IN(&#8216;INDEX_REORGANIZE&#8217;) AND @LOBCompaction = &#8216;N&#8217;<br /> BEGIN<br /> INSERT INTO @CurrentAlterIndexWithClauseArguments (Argument)<br /> SELECT &#8216;LOB_COMPACTION = OFF&#8217;<br /> END</p> <p> IF EXISTS (SELECT * FROM @CurrentAlterIndexWithClauseArguments)<br /> BEGIN<br /> SET @CurrentAlterIndexWithClause = &#8216; WITH (&#8216;</p> <p> WHILE (1 = 1)<br /> BEGIN<br /> SELECT TOP 1 @CurrentAlterIndexArgumentID = ID,<br /> @CurrentAlterIndexArgument = Argument<br /> FROM @CurrentAlterIndexWithClauseArguments<br /> WHERE Added = 0<br /> ORDER BY ID ASC</p> <p> IF @@ROWCOUNT = 0<br /> BEGIN<br /> BREAK<br /> END</p> <p> SET @CurrentAlterIndexWithClause += @CurrentAlterIndexArgument + &#8216;, &#8216;</p> <p> UPDATE @CurrentAlterIndexWithClauseArguments<br /> SET Added = 1<br /> WHERE [ID] = @CurrentAlterIndexArgumentID<br /> END</p> <p> SET @CurrentAlterIndexWithClause = RTRIM(@CurrentAlterIndexWithClause)</p> <p> SET @CurrentAlterIndexWithClause = LEFT(@CurrentAlterIndexWithClause,LEN(@CurrentAlterIndexWithClause) &#8211; 1)</p> <p> SET @CurrentAlterIndexWithClause = @CurrentAlterIndexWithClause + &#8216;)&#8217;<br /> END</p> <p> IF @CurrentAlterIndexWithClause IS NOT NULL SET @CurrentCommand += @CurrentAlterIndexWithClause</p> <p> EXECUTE @CurrentCommandOutput = dbo.CommandExecute @DatabaseContext = @CurrentDatabaseName, @Command = @CurrentCommand, @CommandType = @CurrentCommandType, @Mode = 2, @Comment = @CurrentComment, @DatabaseName = @CurrentDatabaseName, @SchemaName = @CurrentSchemaName, @ObjectName = @CurrentObjectName, @ObjectType = @CurrentObjectType, @IndexName = @CurrentIndexName, @IndexType = @CurrentIndexType, @PartitionNumber = @CurrentPartitionNumber, @ExtendedInfo = @CurrentExtendedInfo, @LockMessageSeverity = @LockMessageSeverity, @ExecuteAsUser = @ExecuteAsUser, @LogToTable = @LogToTable, @Execute = @Execute<br /> SET @Error = @@ERROR<br /> IF @Error 0 SET @CurrentCommandOutput = @Error<br /> IF @CurrentCommandOutput 0 SET @ReturnCode = @CurrentCommandOutput</p> <p> IF @Delay &gt; 0<br /> BEGIN<br /> SET @CurrentDelay = DATEADD(ss,@Delay,&#8217;1900-01-01&#8242;)<br /> WAITFOR DELAY @CurrentDelay<br /> END<br /> END</p> <p> SET @CurrentMaxDOP = @MaxDOP</p> <p> &#8212; Create statistics comment<br /> IF @CurrentStatisticsID IS NOT NULL<br /> BEGIN<br /> SET @CurrentComment = &#8216;ObjectType: &#8216; + CASE WHEN @CurrentObjectType = &#8216;U&#8217; THEN &#8216;Table&#8217; WHEN @CurrentObjectType = &#8216;V&#8217; THEN &#8216;View&#8217; ELSE &#8216;N/A&#8217; END + &#8216;, &#8216;<br /> SET @CurrentComment += &#8216;IndexType: &#8216; + CASE WHEN @CurrentIndexID IS NOT NULL THEN &#8216;Index&#8217; ELSE &#8216;Column&#8217; END + &#8216;, &#8216;<br /> IF @CurrentIndexID IS NOT NULL SET @CurrentComment += &#8216;IndexType: &#8216; + CASE WHEN @CurrentIndexType = 1 THEN &#8216;Clustered&#8217; WHEN @CurrentIndexType = 2 THEN &#8216;NonClustered&#8217; WHEN @CurrentIndexType = 3 THEN &#8216;XML&#8217; WHEN @CurrentIndexType = 4 THEN &#8216;Spatial&#8217; WHEN @CurrentIndexType = 5 THEN &#8216;Clustered Columnstore&#8217; WHEN @CurrentIndexType = 6 THEN &#8216;NonClustered Columnstore&#8217; WHEN @CurrentIndexType = 7 THEN &#8216;NonClustered Hash&#8217; ELSE &#8216;N/A&#8217; END + &#8216;, &#8216;<br /> SET @CurrentComment += &#8216;Incremental: &#8216; + CASE WHEN @CurrentIsIncremental = 1 THEN &#8216;Y&#8217; WHEN @CurrentIsIncremental = 0 THEN &#8216;N&#8217; ELSE &#8216;N/A&#8217; END + &#8216;, &#8216;<br /> SET @CurrentComment += &#8216;RowCount: &#8216; + ISNULL(CAST(@CurrentRowCount AS nvarchar),&#8217;N/A&#8217;) + &#8216;, &#8216;<br /> SET @CurrentComment += &#8216;ModificationCounter: &#8216; + ISNULL(CAST(@CurrentModificationCounter AS nvarchar),&#8217;N/A&#8217;)<br /> END</p> <p> IF @CurrentStatisticsID IS NOT NULL AND (@CurrentRowCount IS NOT NULL OR @CurrentModificationCounter IS NOT NULL)<br /> BEGIN<br /> SET @CurrentExtendedInfo = (SELECT *<br /> FROM (SELECT CAST(@CurrentRowCount AS nvarchar) AS [RowCount],<br /> CAST(@CurrentModificationCounter AS nvarchar) AS ModificationCounter<br /> ) ExtendedInfo FOR XML RAW(&#8216;ExtendedInfo&#8217;), ELEMENTS)<br /> END</p> <p> IF @CurrentStatisticsID IS NOT NULL AND @CurrentUpdateStatistics = &#8216;Y&#8217; AND (SYSDATETIME() = 12.06024 AND @Version = 13.05026 AND @Version = 14.030154)<br /> BEGIN<br /> INSERT INTO @CurrentUpdateStatisticsWithClauseArguments (Argument)<br /> SELECT &#8216;MAXDOP = &#8216; + CAST(@CurrentMaxDOP AS nvarchar)<br /> END</p> <p> IF @CurrentStatisticsSample = 100<br /> BEGIN<br /> INSERT INTO @CurrentUpdateStatisticsWithClauseArguments (Argument)<br /> SELECT &#8216;FULLSCAN&#8217;<br /> END</p> <p> IF @CurrentStatisticsSample IS NOT NULL AND @CurrentStatisticsSample 100<br /> BEGIN<br /> INSERT INTO @CurrentUpdateStatisticsWithClauseArguments (Argument)<br /> SELECT &#8216;SAMPLE &#8216; + CAST(@CurrentStatisticsSample AS nvarchar) + &#8216; PERCENT&#8217;<br /> END</p> <p> IF @CurrentStatisticsResample = &#8216;Y&#8217;<br /> BEGIN<br /> INSERT INTO @CurrentUpdateStatisticsWithClauseArguments (Argument)<br /> SELECT &#8216;RESAMPLE&#8217;<br /> END</p> <p> IF @CurrentNoRecompute = 1<br /> BEGIN<br /> INSERT INTO @CurrentUpdateStatisticsWithClauseArguments (Argument)<br /> SELECT &#8216;NORECOMPUTE&#8217;<br /> END</p> <p> IF EXISTS (SELECT * FROM @CurrentUpdateStatisticsWithClauseArguments)<br /> BEGIN<br /> SET @CurrentUpdateStatisticsWithClause = &#8216; WITH&#8217;</p> <p> WHILE (1 = 1)<br /> BEGIN<br /> SELECT TOP 1 @CurrentUpdateStatisticsArgumentID = ID,<br /> @CurrentUpdateStatisticsArgument = Argument<br /> FROM @CurrentUpdateStatisticsWithClauseArguments<br /> WHERE Added = 0<br /> ORDER BY ID ASC</p> <p> IF @@ROWCOUNT = 0<br /> BEGIN<br /> BREAK<br /> END</p> <p> SET @CurrentUpdateStatisticsWithClause = @CurrentUpdateStatisticsWithClause + &#8216; &#8216; + @CurrentUpdateStatisticsArgument + &#8216;,&#8217;</p> <p> UPDATE @CurrentUpdateStatisticsWithClauseArguments<br /> SET Added = 1<br /> WHERE [ID] = @CurrentUpdateStatisticsArgumentID<br /> END</p> <p> SET @CurrentUpdateStatisticsWithClause = LEFT(@CurrentUpdateStatisticsWithClause,LEN(@CurrentUpdateStatisticsWithClause) &#8211; 1)<br /> END</p> <p> IF @CurrentUpdateStatisticsWithClause IS NOT NULL SET @CurrentCommand += @CurrentUpdateStatisticsWithClause</p> <p> IF @PartitionLevelStatistics = 1 AND @CurrentIsIncremental = 1 AND @CurrentPartitionNumber IS NOT NULL SET @CurrentCommand += &#8216; ON PARTITIONS(&#8216; + CAST(@CurrentPartitionNumber AS nvarchar(max)) + &#8216;)&#8217;</p> <p> EXECUTE @CurrentCommandOutput = dbo.CommandExecute @DatabaseContext = @CurrentDatabaseName, @Command = @CurrentCommand, @CommandType = @CurrentCommandType, @Mode = 2, @Comment = @CurrentComment, @DatabaseName = @CurrentDatabaseName, @SchemaName = @CurrentSchemaName, @ObjectName = @CurrentObjectName, @ObjectType = @CurrentObjectType, @IndexName = @CurrentIndexName, @IndexType = @CurrentIndexType, @StatisticsName = @CurrentStatisticsName, @ExtendedInfo = @CurrentExtendedInfo, @LockMessageSeverity = @LockMessageSeverity, @ExecuteAsUser = @ExecuteAsUser, @LogToTable = @LogToTable, @Execute = @Execute<br /> SET @Error = @@ERROR<br /> IF @Error 0 SET @CurrentCommandOutput = @Error<br /> IF @CurrentCommandOutput 0 SET @ReturnCode = @CurrentCommandOutput<br /> END</p> <p> NoAction:</p> <p> &#8212; Update that the index or statistics is completed<br /> UPDATE @tmpIndexesStatistics<br /> SET Completed = 1<br /> WHERE Selected = 1<br /> AND Completed = 0<br /> AND [Order] = @CurrentIxOrder<br /> AND ID = @CurrentIxID</p> <p> &#8212; Clear variables<br /> SET @CurrentDatabaseContext = NULL</p> <p> SET @CurrentCommand = NULL<br /> SET @CurrentCommandOutput = NULL<br /> SET @CurrentCommandType = NULL<br /> SET @CurrentComment = NULL<br /> SET @CurrentExtendedInfo = NULL</p> <p> SET @CurrentIxID = NULL<br /> SET @CurrentIxOrder = NULL<br /> SET @CurrentSchemaID = NULL<br /> SET @CurrentSchemaName = NULL<br /> SET @CurrentObjectID = NULL<br /> SET @CurrentObjectName = NULL<br /> SET @CurrentObjectType = NULL<br /> SET @CurrentIsMemoryOptimized = NULL<br /> SET @CurrentIndexID = NULL<br /> SET @CurrentIndexName = NULL<br /> SET @CurrentIndexType = NULL<br /> SET @CurrentStatisticsID = NULL<br /> SET @CurrentStatisticsName = NULL<br /> SET @CurrentPartitionID = NULL<br /> SET @CurrentPartitionNumber = NULL<br /> SET @CurrentPartitionCount = NULL<br /> SET @CurrentIsPartition = NULL<br /> SET @CurrentIndexExists = NULL<br /> SET @CurrentStatisticsExists = NULL<br /> SET @CurrentIsImageText = NULL<br /> SET @CurrentIsNewLOB = NULL<br /> SET @CurrentIsFileStream = NULL<br /> SET @CurrentIsColumnStore = NULL<br /> SET @CurrentIsComputed = NULL<br /> SET @CurrentIsTimestamp = NULL<br /> SET @CurrentAllowPageLocks = NULL<br /> SET @CurrentNoRecompute = NULL<br /> SET @CurrentIsIncremental = NULL<br /> SET @CurrentRowCount = NULL<br /> SET @CurrentModificationCounter = NULL<br /> SET @CurrentOnReadOnlyFileGroup = NULL<br /> SET @CurrentResumableIndexOperation = NULL<br /> SET @CurrentFragmentationLevel = NULL<br /> SET @CurrentPageCount = NULL<br /> SET @CurrentFragmentationGroup = NULL<br /> SET @CurrentAction = NULL<br /> SET @CurrentMaxDOP = NULL<br /> SET @CurrentUpdateStatistics = NULL<br /> SET @CurrentStatisticsSample = NULL<br /> SET @CurrentStatisticsResample = NULL<br /> SET @CurrentAlterIndexArgumentID = NULL<br /> SET @CurrentAlterIndexArgument = NULL<br /> SET @CurrentAlterIndexWithClause = NULL<br /> SET @CurrentUpdateStatisticsArgumentID = NULL<br /> SET @CurrentUpdateStatisticsArgument = NULL<br /> SET @CurrentUpdateStatisticsWithClause = NULL</p> <p> DELETE FROM @CurrentActionsAllowed<br /> DELETE FROM @CurrentAlterIndexWithClauseArguments<br /> DELETE FROM @CurrentUpdateStatisticsWithClauseArguments</p> <p> END</p> <p> END</p> <p> IF @CurrentDatabaseState = &#8216;SUSPECT&#8217;<br /> BEGIN<br /> SET @ErrorMessage = &#8216;The database &#8216; + QUOTENAME(@CurrentDatabaseName) + &#8216; is in a SUSPECT state.&#8217;<br /> RAISERROR(&#8216;%s&#8217;,16,1,@ErrorMessage) WITH NOWAIT<br /> RAISERROR(@EmptyLine,10,1) WITH NOWAIT<br /> SET @Error = @@ERROR<br /> END</p> <p> &#8212; Update that the database is completed<br /> IF @DatabasesInParallel = &#8216;Y&#8217;<br /> BEGIN<br /> UPDATE dbo.QueueDatabase<br /> SET DatabaseEndTime = SYSDATETIME()<br /> WHERE QueueID = @QueueID<br /> AND DatabaseName = @CurrentDatabaseName<br /> END<br /> ELSE<br /> BEGIN<br /> UPDATE @tmpDatabases<br /> SET Completed = 1<br /> WHERE Selected = 1<br /> AND Completed = 0<br /> AND ID = @CurrentDBID<br /> END</p> <p> &#8212; Clear variables<br /> SET @CurrentDBID = NULL<br /> SET @CurrentDatabaseName = NULL</p> <p> SET @CurrentDatabase_sp_executesql = NULL</p> <p> SET @CurrentExecuteAsUserExists = NULL<br /> SET @CurrentUserAccess = NULL<br /> SET @CurrentIsReadOnly = NULL<br /> SET @CurrentDatabaseState = NULL<br /> SET @CurrentInStandby = NULL<br /> SET @CurrentRecoveryModel = NULL</p> <p> SET @CurrentIsDatabaseAccessible = NULL<br /> SET @CurrentReplicaID = NULL<br /> SET @CurrentAvailabilityGroupID = NULL<br /> SET @CurrentAvailabilityGroup = NULL<br /> SET @CurrentAvailabilityGroupRole = NULL<br /> SET @CurrentDatabaseMirroringRole = NULL</p> <p> SET @CurrentCommand = NULL</p> <p> DELETE FROM @tmpIndexesStatistics</p> <p> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br /> &#8211;// Log completing information //&#8211;<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p> Logging:<br /> SET @EndMessage = &#8216;Date and time: &#8216; + CONVERT(nvarchar,SYSDATETIME(),120)<br /> RAISERROR(&#8216;%s&#8217;,10,1,@EndMessage) WITH NOWAIT</p> <p> RAISERROR(@EmptyLine,10,1) WITH NOWAIT</p> <p> IF @ReturnCode 0<br /> BEGIN<br /> RETURN @ReturnCode<br /> END</p> <p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p> <p>END</p> <p>GO</p> </div> </div> </div> </div> <p>Your database structure will now look like this:</p> <p class="has-text-align-center"><img src="https://lh7-us.googleusercontent.com/gIkLtj9xEYqQWnkvZu9J9kVmeaCjgzJmypVSjzBrvjtPct1pFwdaLj2C1juElD9_LR_pMYbQMdrlxKNXpYnPNfuXSmCvQoXaEdjwLqQY7msDOLPpTbmY-e1R53s97Ww7Pg47GRpSPWXpmTFgSdRXd0E" loading="lazy" width="322" height="303"></p> <h3 class="wp-block-heading">Step 4: Schedule automatic maintenance operations</h3> <ul class="wp-block-list"> <li>Ensure that the <strong>SQL Server Agent</strong> is running. (Open <strong>Services</strong> to check the status. If it is not running, right-click on <strong>SQL Server Agent</strong> and select <strong>Properties</strong>, then click <strong>Start</strong>.)</li> </ul> <p class="has-text-align-center"><img src="https://lh7-us.googleusercontent.com/uriNY99X--13rubaxHx6aQ2njb_Ni5J2EtOesERbfE0Hz0tPg3G4XytWHUaPUYU-iWolIgjH7MHgMf20hQVGtaNdixU2XeFFif24kYzg6bkvUVif4O7ve2f14DzFL1nsHKxiTcRwlZz7yqNcwWJtTGQ" loading="lazy" width="624" height="499"></p> <ul class="wp-block-list"> <li>In <strong>Object Explorer</strong>, right-click on <strong>Jobs</strong> (under the SQL Server Agent node) and select <strong>New Job…</strong> from the context menu.</li> </ul> <p class="has-text-align-center"><img src="https://lh7-us.googleusercontent.com/xJke5nb0FYDh70ZdVNxf5hge9JkME0kNs82J-EFT2DS8GMjd4rYTgIQHXEMbhny1pmSfE6-7-siKf01VohQoGTX_i-NOtTVp1dfV9rjeoicftP2XxM3agsR6yMWV5zze6CoxSKZlawySGka4yBYcOXo" loading="lazy" width="411" height="334"></p> <ul class="wp-block-list"> <li>In the <strong>General </strong>tab of the <strong>New Job </strong>form, set the <strong>Name</strong>, <strong>Owner</strong>, <strong>Category</strong>, and <strong>Description</strong> for the job.</li> </ul> <p class="has-text-align-center"><img src="https://lh7-us.googleusercontent.com/DzIop06rtipUoUD_ZR3tXW1kGaatqp8cNK7lKEjfoaIEJRI6uyu7XcsEzhdRHx6ahLD_xrxZym4fAbrRcgFu3UTKRCjPLslbb5YlV4gwhYAP-waTyEXljvKGJprcn3aPu-1BXWjrcKGTDFZbDbvfBks" loading="lazy" width="624" height="541"></p> <ul class="wp-block-list"> <li>Select the <strong>Steps</strong> tab, then click <strong>New…</strong>.</li> </ul> <p class="has-text-align-center"><img src="https://lh7-us.googleusercontent.com/ZqfqABqLXwCdVmq7PQuA0wRFXUd-0IdY3mSsyP9nLppIlh0SC-6GLjpYoJ1KTwYDujNpcvtK7TSLJL46P2tBItraHIofWzcv7apYIV80bnIOI7y42xrTbZlvKlkXRr5sRyXULzg8m8pcpEYp3pxnzL0" loading="lazy" width="624" height="548"></p> <ul class="wp-block-list"> <li>Specify the <strong>Step name</strong>. In the <strong>Type</strong> field, select <strong>Transact-SQL script (T-SQL)</strong>.</li> </ul> <p class="has-text-align-center"><img src="https://lh7-us.googleusercontent.com/3dSwDW80ziEePeNWJ43lfn56bS3v-NWiwHKmtlWTP0nvYw-AgtxSlHL2B2I9gFrs9BRc-ZthOMwlQhqOWiDphoogbOorZWMe91QSqCYNKA22jmyuoQEwZSOcaRxXo1Wz7j2Ky445gVreORs7kh-cbOU" loading="lazy" width="624" height="568"></p> <ul class="wp-block-list"> <li>Ensure the Database field is set to <strong>DBAtools</strong>. Then enter the custom maintenance script (below) into the <strong>Command </strong>box. Click <strong>OK</strong> to save the job step.</li> </ul> <pre class="wp-block-code"><code>EXECUTE dbo.IndexOptimize @Databases ='Your-Database-Name', @FragmentationLevel1 = 30, @FragmentationLevel2 = 50, @FragmentationLow = NULL, @FragmentationMedium = 'INDEX_REORGANIZE', @FragmentationHigh = 'INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE', @TimeLimit=3600,@MAXDOP=4,@WaitAtLowPriorityMaxDuration=10,@WaitAtLowPriorityAbortAfterWait=SELF, @Indexes = 'ALL_INDEXES',@LogToTable = 'Y';</code></pre> <ul class="wp-block-list"> <li>Select the <strong>Schedules</strong> tab, then click <strong>New…</strong>.</li> </ul> <p class="has-text-align-center"><img src="https://lh7-us.googleusercontent.com/uMsxo14gKLu06sEOFIFIAVvyQ7tOZ2kMnaLla3h0gsSWbuFhjRfSAzDGfCOhxzOweBlj3K-PhLHRxy8ajCDOEiPZCh-j-j_42qVpvQM08PyVJceWQ700JsTCVkfsRKcRAPNtYTWASQYFZ80FwjSBDYk" loading="lazy" width="624" height="565"></p> <ul class="wp-block-list"> <li>Enter a <strong>Name</strong> for the schedule and set the <strong>Frequency</strong> parameters. Then click <strong>OK</strong> to save the new schedule.</li> </ul> <p class="has-text-align-center"><img src="https://lh7-us.googleusercontent.com/w9rxkZInetpbLgosjzYhPFAhWbeYgkIPZF0s01v1RicoddJ-9-dWdIbQw9EnpSo00mhd6rGc1JKHMo_hs5jJxQkqJZwGHlE1C1lFwugYo00zl0F3EM8mYRsIuuzqbKR6lYOQnuWR212g0eL9Mt5rxIo" loading="lazy" width="624" height="532"></p> <h3 class="wp-block-heading">Step 5: Check the operations run correctly</h3> <ul class="wp-block-list"> <li>Locate the newly created job in the <strong>Object Explorer</strong> under the <strong>Jobs</strong> node. Right-click on the job and select <strong>Start Job at Step…</strong> from the context menu.</li> </ul> <p class="has-text-align-center"><img src="https://lh7-us.googleusercontent.com/7QdplbDPzc82nnbwhkNhgr-dZNIw8IdOLuChN6YmnBHY6SXBWeuBkCKPDhxjEqt9aJpSc_PC5qL91t6R9zNytQ7pp8DiSpQMq68I7Lf2f5gPfsva3vCfSY6RMz89qSINmD3W3AzFiHTPRW7ELNFovfg" loading="lazy" width="370" height="422"></p> <p>When the job is completed, a success message appears.</p> <p><img src="https://lh7-us.googleusercontent.com/reKdFUhi801aAiTudS-ThegQ-P-n152RV2xtIiPnD3Ufn5LsP0yU5rVssA1KlQuTnFWYLJYvqAMV-8dPegfvJff4GS2am6F7IHatFCxc6RaJJAY8mQ2x8vKTjdEprnd2GSO9IUTwrrkpOqHx-LJt-vc" loading="lazy" width="423" height="247"></p> <figure class="wp-block-table"><table><tbody><tr><td><br><img src="https://lh7-us.googleusercontent.com/0Nan89acsGCmC0DVKUCtu-hZXo3YviFPQztWOdepIF-0yBNouLlbWJVr2uiWOdHKUAIJzb2xidzbJIs_z5eD7vQbtUp7KdvLKx9GAgxMq4bKYxry1CKUeJ1-z3pB1dS1griTSW_86zsSZCPh06NFcn4" loading="lazy" width="35" height="35"></td><td><strong>Information: </strong>You can view the operations performed using the following query:<br><br><strong>SELECT</strong> * <strong>FROM</strong> [DBAtools].[dbo].[CommandLog]</td></tr></tbody></table></figure> <div class="article-widgets"> <div class="aw-box top-articles"> <div class="widget-title">Top Articles</div> <div class="widget-content"> <p><a href="https://www.invicti.com/support/what-is-invicti/">What is Invicti?</a></p> <p><a href="https://www.invicti.com/support/scan-policies-invicti/">Overview of Scan Policies</a></p> <p><a href="https://www.invicti.com/support/scheduling-scans/">Scheduling Scans</a></p> <p><a href="https://www.invicti.com/support/managing-integrations-invicti-enterprise/">Managing Integrations</a></p> <p><a href="https://www.invicti.com/support/built-in-reports-invicti/">Built-In Reports</a></p> </div> </div> <div class="aw-box article-share"> <a class="share-button share-twitter" href="https://twitter.com/intent/tweet?url=https://www.invicti.com/support/custom-db-maintenance/&amp;text=Configuring custom database maintenance"> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M19.375 4.27735C18.6717 4.58296 17.9275 4.7843 17.166 4.87501C17.9663 4.4064 18.5681 3.66195 18.8586 2.78126C18.102 3.22367 17.2756 3.5341 16.4148 3.69922C16.0524 3.31935 15.6165 3.01716 15.1336 2.811C14.6507 2.60484 14.1309 2.49904 13.6059 2.50001C11.4801 2.50001 9.75977 4.19532 9.75977 6.28516C9.75826 6.57585 9.79157 6.86567 9.85898 7.14844C8.33464 7.07698 6.842 6.68812 5.47656 6.00674C4.11111 5.32537 2.90292 4.36647 1.9293 3.19141C1.58772 3.76724 1.40708 4.42424 1.40625 5.09375C1.40625 6.40625 2.09102 7.56641 3.125 8.2461C2.51239 8.23156 1.91234 8.06942 1.37578 7.77344V7.82032C1.37578 9.65625 2.70391 11.1836 4.46172 11.5313C4.13117 11.6194 3.79053 11.664 3.44844 11.6641C3.20569 11.6645 2.9635 11.6409 2.72539 11.5938C3.21406 13.0977 4.63633 14.1914 6.32109 14.2227C4.9521 15.2777 3.27134 15.8479 1.54297 15.8438C1.23618 15.8433 0.929674 15.825 0.625 15.7891C2.38327 16.9118 4.42713 17.5057 6.51328 17.5C13.5977 17.5 17.468 11.7305 17.468 6.72657C17.468 6.5625 17.4637 6.39844 17.4559 6.23829C18.2071 5.70393 18.857 5.03989 19.375 4.27735Z" fill="white" /> </svg> Tweet </a> <a class="share-button share-facebook" href="https://www.facebook.com/sharer.php?u=https://www.invicti.com/support/custom-db-maintenance/"> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M18.75 10.0527C18.75 5.2207 14.832 1.30273 10 1.30273C5.16797 1.30273 1.25 5.2207 1.25 10.0527C1.25 14.4199 4.44922 18.0398 8.63281 18.6969V12.5828H6.41055V10.0527H8.63281V8.125C8.63281 5.93242 9.93945 4.72031 11.9379 4.72031C12.8953 4.72031 13.8969 4.89141 13.8969 4.89141V7.04492H12.793C11.7066 7.04492 11.3668 7.71914 11.3668 8.41211V10.0527H13.7934L13.4059 12.5828H11.3672V18.6976C15.5508 18.041 18.75 14.4211 18.75 10.0527Z" fill="white" /> </svg> Share </a> <a class="share-button share-linkedin" href="https://www.linkedin.com/sharing/share-offsite/?url=https://www.invicti.com/support/custom-db-maintenance/"> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M17.3504 1.25H2.74531C1.94727 1.25 1.25 1.82422 1.25 2.61289V17.2504C1.25 18.0434 1.94727 18.75 2.74531 18.75H17.3461C18.1484 18.75 18.75 18.0387 18.75 17.2504V2.61289C18.7547 1.82422 18.1484 1.25 17.3504 1.25ZM6.67461 15.8371H4.16758V8.04219H6.67461V15.8371ZM5.50781 6.85703H5.48984C4.6875 6.85703 4.16797 6.25977 4.16797 5.51211C4.16797 4.75078 4.70117 4.16758 5.52148 4.16758C6.3418 4.16758 6.84375 4.74648 6.86172 5.51211C6.86133 6.25977 6.3418 6.85703 5.50781 6.85703ZM15.8371 15.8371H13.3301V11.575C13.3301 10.5539 12.9652 9.85625 12.0582 9.85625C11.3652 9.85625 10.9551 10.325 10.7727 10.7816C10.7043 10.9457 10.6859 11.1691 10.6859 11.3973V15.8371H8.17891V8.04219H10.6859V9.12695C11.0508 8.60742 11.6207 7.85977 12.9469 7.85977C14.5926 7.85977 15.8375 8.94453 15.8375 11.2832L15.8371 15.8371Z" fill="white" /> </svg> Share </a> <a class="share-button share-mail" href="mailto:someone@gmail.com?body=https://www.invicti.com/support/custom-db-maintenance/"> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M16.5625 3.75H3.4375C2.57456 3.75 1.875 4.44956 1.875 5.3125V14.6875C1.875 15.5504 2.57456 16.25 3.4375 16.25H16.5625C17.4254 16.25 18.125 15.5504 18.125 14.6875V5.3125C18.125 4.44956 17.4254 3.75 16.5625 3.75Z" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> <path d="M4.375 6.25L10 10.625L15.625 6.25" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> </svg> Email </a> </div> </div> </main> <aside class="toc"> <div class="open-ticket-sidebar"> <div> <h3>Invicti Help Center</h3> <p>Our Support team is ready to provide you with technical help.</p> </div> <div> <a class="large" href="https://support.invicti.com/" target="blank"> Go to Help Center <svg class="svg-icon" viewBox="0 0 11 13" width="0.5em" height="0.63em"> <path fill="currentColor" d="M11,6.5L0,13V0L11,6.5z"></path> </svg> </a> <small>This will redirect you to our ticketing system.</small> </div> </div> <div class="toc-sticky"> <div class="toc-box"> <div class="toc-title">In this topic</div> <div id="toc-content"> </div> </div> </div> </aside> </div> </div> <footer class="site-footer"> <div class="container primary-footer"> <div class="company-info-wrapper"> <figure> <img class="logo-icon footerlogo" src="https://cdn.invicti.com/branding/invicti-logo-black.svg" alt="Invicti Logo - The Largest Dynamic Application Security Solutions Provider In The World" width="128" height="36" /> </figure> <div class="social-icons"> <a href="https://twitter.com/InvictiSecurity" aria-label="Twitter" target="_blank" rel="noopener noreferrer" title="Twitter"> <svg xmlns="http://www.w3.org/2000/svg" width="20.616" height="16.969"> <path d="M20.532 2.035a8.514 8.514 0 01-2.085.595c.336-.057.827-.663 1.025-.909a3.838 3.838 0 00.693-1.262c.017-.036.031-.081-.005-.109a.119.119 0 00-.111.009 10.543 10.543 0 01-2.472.946.168.168 0 01-.171-.044 1.845 1.845 0 00-.216-.221 4.377 4.377 0 00-1.2-.734 4.167 4.167 0 00-1.836-.3 4.4 4.4 0 00-1.743.493 4.473 4.473 0 00-1.405 1.148 4.316 4.316 0 00-.84 1.682 4.557 4.557 0 00-.044 1.775c.013.1 0 .112-.085.1A13.2 13.2 0 011.543.881c-.1-.112-.154-.112-.235.009a4.307 4.307 0 00.734 5.089c.167.158.339.315.522.46a4.342 4.342 0 01-1.639-.46c-.1-.062-.149-.026-.158.087a2.622 2.622 0 00.027.486 4.357 4.357 0 002.683 3.473 2.548 2.548 0 00.544.165 4.841 4.841 0 01-1.608.05c-.116-.022-.162.036-.116.149a4.523 4.523 0 003.38 2.829c.154.026.306.026.46.062-.009.014-.018.014-.027.027a5.364 5.364 0 01-2.306 1.223 8.282 8.282 0 01-3.5.449c-.189-.028-.228-.026-.279 0s-.006.076.054.125c.239.158.482.3.729.433a11.571 11.571 0 002.343.936 12.471 12.471 0 0012.106-2.831c2.481-2.465 3.351-5.866 3.351-9.27 0-.133.158-.207.251-.278a8.157 8.157 0 001.648-1.713.518.518 0 00.109-.328v-.018c0-.054 0-.039-.084 0z" fill="currentColor"/> </svg> </a> <a href="https://facebook.com/Invicti-Security-100090617259790/" aria-label="Facebook" target="_blank" rel="noopener noreferrer" title="Facebook"> <svg xmlns="http://www.w3.org/2000/svg" width="11.862" height="22.315"> <path d="M11.085 12.457l.615-4.008H7.854v-2.6a2 2 0 012.26-2.165h1.748V.272a21.277 21.277 0 00-3.1-.271c-3.167 0-5.237 1.92-5.237 5.395v3.055H.003v4.008h3.522v9.69a14.013 14.013 0 002.166.168 14.013 14.013 0 002.166-.168v-9.69z" fill="currentColor"/> </svg> </a> <a href="https://www.linkedin.com/company/invicti-security" aria-label="Linkedin" target="_blank" rel="noopener noreferrer" title="Linkedin"> <svg xmlns="http://www.w3.org/2000/svg" width="20.636" height="20.588"> <path d="M.342 6.834h4.282v13.754H.342zM2.483-.002a2.478 2.478 0 012.478 2.477 2.48 2.48 0 01-2.478 2.481 2.482 2.482 0 01-2.481-2.48A2.48 2.48 0 012.483-.002M7.305 6.834h4.1v1.882h.056a4.5 4.5 0 014.049-2.219c4.329 0 5.125 2.847 5.125 6.551v7.543h-4.271v-6.686c0-1.6-.032-3.648-2.223-3.648-2.226 0-2.564 1.737-2.564 3.53v6.8H7.305z" fill="currentColor"/> </svg> </a> <a href="https://www.invicti.com/blog/feed/" aria-label="RSS Feed" target="_blank" rel="noopener noreferrer" title="RSS Feed"> <svg width="20" height="20" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1 6.34887C6.05667 6.08303 9.25 9.2772 8.985 14.3339" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> <path d="M1.83333 14.3339C2.29357 14.3339 2.66667 13.9608 2.66667 13.5005C2.66667 13.0403 2.29357 12.6672 1.83333 12.6672C1.3731 12.6672 1 13.0403 1 13.5005C1 13.9608 1.3731 14.3339 1.83333 14.3339Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> <path d="M1 1.02553C9.42833 0.583866 14.7508 5.90637 14.3083 14.3339" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </a> </div> <div class="company-info"> <p>Invicti Security Corp <br>1000 N Lamar Blvd Suite 300 <br>Austin, TX 78703, US</p> </div> <div class="copyright hidden-md"> <p>© Invicti 2025</p> </div> </div> <ul id="footer-primary-menu" class="footer-primary-menu"><li id="menu-item-50" class="footer-menu-title menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-50"><a href="#">RESOURCES</a> <ul class="sub-menu level--1"> <li id="menu-item-51" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-51"><a href="https://www.invicti.com/features/">Features</a></li> <li id="menu-item-52" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-52"><a href="https://www.invicti.com/integrations/">Integrations</a></li> <li id="menu-item-53" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-53"><a href="https://www.invicti.com/plans/">Plans</a></li> <li id="menu-item-54" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-54"><a href="https://www.invicti.com/case-studies/">Case Studies</a></li> <li id="menu-item-55" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55"><a href="https://www.invicti.com/changelogs/">Changelogs</a></li> <li id="menu-item-22395" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22395"><a href="https://www.invicti.com/learn/welcome/">Invicti Learn</a></li> </ul> </li> <li id="menu-item-57" class="footer-menu-title menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-57"><a href="#">USE CASES</a> <ul class="sub-menu level--1"> <li id="menu-item-58" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-58"><a href="https://www.invicti.com/penetration-testing-software/">Penetration Testing Software</a></li> <li id="menu-item-59" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-59"><a href="https://www.invicti.com/website-security-scanner/">Website Security Scanner</a></li> <li id="menu-item-60" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-60"><a href="https://www.invicti.com/ethical-hacking-software/">Ethical Hacking Software</a></li> <li id="menu-item-61" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-61"><a href="https://www.invicti.com/web-vulnerability-scanner/">Web Vulnerability Scanner</a></li> <li id="menu-item-62" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-62"><a href="https://www.invicti.com/vulnerability-scanner-comparison/">Comparisons</a></li> <li id="menu-item-63" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-63"><a href="https://www.invicti.com/online-web-application-security-scanner/">Online Application Scanner</a></li> </ul> </li> <li id="menu-item-64" class="footer-menu-title menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-64"><a href="#">WEB SECURITY</a> <ul class="sub-menu level--1"> <li id="menu-item-70" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-70"><a href="https://www.invicti.com/blog/web-security/false-positives-web-application-security/">The Problem with False Positives</a></li> <li id="menu-item-69" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-69"><a href="https://www.invicti.com/blog/web-security/comparison-commercial-non-commercial-web-application-security-scanner/">Why Pay for Web Scanners</a></li> <li id="menu-item-68" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-68"><a href="https://www.invicti.com/blog/web-security/sql-injection-cheat-sheet/">SQL Injection Cheat Sheet</a></li> <li id="menu-item-67" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-67"><a href="https://www.invicti.com/blog/web-security/getting-started-web-application-security/">Getting Started with Web Security</a></li> <li id="menu-item-66" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-66"><a href="https://www.invicti.com/web-vulnerability-scanner/vulnerabilities/">Vulnerability Index</a></li> <li id="menu-item-65" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-65"><a href="https://www.invicti.com/blog/web-security/content-security-policy/">Using Content Security Policy to Secure Web Applications</a></li> </ul> </li> <li id="menu-item-55407" class="footer-menu-title menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-55407"><a href="#">COMPARISON</a> <ul class="sub-menu level--1"> <li id="menu-item-55410" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55410"><a href="https://www.invicti.com/vulnerability-scanner-comparison/invicti-vs-acunetix/">Acunetix vs. Invicti</a></li> <li id="menu-item-55408" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55408"><a href="https://www.invicti.com/vulnerability-scanner-comparison/invicti-vs-burp-suite/">Burp Suite vs. Invicti</a></li> <li id="menu-item-100775" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-100775"><a href="https://www.invicti.com/vulnerability-scanner-comparison/invicti-vs-checkmarx/">Checkmarx vs. Invicti</a></li> <li id="menu-item-55409" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55409"><a href="https://www.invicti.com/vulnerability-scanner-comparison/invicti-vs-probely/">Probely vs. Invicti</a></li> <li id="menu-item-55411" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55411"><a href="https://www.invicti.com/vulnerability-scanner-comparison/invicti-vs-qualys/">Qualys vs. Invicti</a></li> <li id="menu-item-55412" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55412"><a href="https://www.invicti.com/vulnerability-scanner-comparison/invicti-vs-nessus/">Tenable Nessus vs. Invicti</a></li> </ul> </li> <li id="menu-item-71" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-71"><a href="#">COMPANY</a> <ul class="sub-menu level--1"> <li id="menu-item-72" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-72"><a href="https://www.invicti.com/about/">About Us</a></li> <li id="menu-item-73" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-73"><a href="https://www.invicti.com/contact/">Contact Us</a></li> <li id="menu-item-74" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-74"><a href="https://www.invicti.com/support/">Support</a></li> <li id="menu-item-75" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-75"><a href="https://www.invicti.com/careers/">Careers</a></li> <li id="menu-item-76" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-76"><a href="https://www.invicti.com/resources/">Resources</a></li> <li id="menu-item-77" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-77"><a href="https://www.invicti.com/partners/">Partners</a></li> </ul> </li> </ul> </div> <div class="container copyright-mobile testing-class-here"> © Invicti 2025 </div> <div class="container"> <ul id="footer-bottom-menu" class="footer-bottom-menu"><li id="menu-item-55180" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55180"><a href="https://www.invicti.com/compliance/">Compliance</a></li> <li id="menu-item-78" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-78"><a href="https://www.invicti.com/legal/">Legal</a></li> <li id="menu-item-79" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-79"><a href="https://www.invicti.com/compliance/privacy-policy/">Privacy Policy</a></li> <li id="menu-item-8973" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8973"><a href="https://www.invicti.com/compliance/california-privacy-rights/">California Privacy Rights</a></li> <li id="menu-item-80" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-80"><a href="https://www.invicti.com/legal/terms/">Terms of Use</a></li> <li id="menu-item-81" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-81"><a href="https://www.invicti.com/accessibility/">Accessibility</a></li> <li id="menu-item-82" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-82"><a href="https://www.invicti.com/sitemap/">Sitemap</a></li> </ul> </div> </footer> <div class="cookie-notice" id="cookie-notice-bar"> <p> By using this website you agree with our use of cookies to improve its performance and enhance your experience. More information in our <a href="https://www.invicti.com/privacy-policy" rel="noreferrer">Privacy Policy</a>. </p> <button class="cookie-notice-button" title="OK">OK</button> </div><link rel='stylesheet' id='wp-block-library-css' href='https://www.invicti.com/wp/wp-includes/css/dist/block-library/style.min.css' type='text/css' media='all' /> <style id='wp-block-library-inline-css' type='text/css'> .is-style-quote-primary.wp-block-quote{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgb(204 139 219/var(--tw-border-opacity));border-left-width:0;color:rgb(16 24 32/var(--tw-text-opacity));margin-bottom:0;margin-left:2.5rem;padding-left:1.25rem;position:relative}@media (min-width:767px){.is-style-quote-primary.wp-block-quote{border-left-width:5px;margin-left:65px;padding-bottom:.1875rem;padding-left:2.5rem;padding-top:.1875rem}}.is-style-quote-primary.wp-block-quote a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));-webkit-text-decoration-line:underline;text-decoration-line:underline}.is-style-quote-primary.wp-block-quote cite{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));display:block;font-size:.75rem;font-weight:500;margin-top:.625rem}@media (min-width:576px){.is-style-quote-primary.wp-block-quote cite{font-size:.875rem}}.is-style-quote-primary.wp-block-quote:before{--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity));height:100%;left:-45px;position:absolute;top:0;width:37px}@media (min-width:767px){.is-style-quote-primary.wp-block-quote:before{--tw-bg-opacity:1;background-color:rgb(204 139 219/var(--tw-bg-opacity));left:-65px;width:21px}}.is-style-quote-primary.wp-block-quote:before{content:"";-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z'/%3E%3C/svg%3E") top/contain no-repeat;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z'/%3E%3C/svg%3E") top/contain no-repeat}@media (min-width:767px){.is-style-quote-primary.wp-block-quote:before{-webkit-mask-position:center;mask-position:center}} .is-style-quote-warning.wp-block-quote,blockquote.warning{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(242 222 222/var(--tw-bg-opacity));border-color:rgb(235 204 209/var(--tw-border-opacity));border-width:1px;color:rgb(169 68 66/var(--tw-text-opacity));font-size:1rem;margin-bottom:0;padding:1.25rem 1.5625rem 1.25rem 4rem;position:relative}.is-style-quote-warning.wp-block-quote a,blockquote.warning a{--tw-text-opacity:1;color:rgb(169 68 66/var(--tw-text-opacity));-webkit-text-decoration-line:underline;text-decoration-line:underline}.is-style-quote-warning.wp-block-quote a:hover,blockquote.warning a:hover{--tw-text-opacity:1;color:rgb(109 36 35/var(--tw-text-opacity))}.is-style-quote-warning.wp-block-quote:before,blockquote.warning:before{--tw-bg-opacity:1;background-color:rgb(169 68 66/var(--tw-bg-opacity));content:"";height:100%;left:17px;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-2 -3 24 24'%3E%3Cpath fill='currentColor' d='m12.8 1.613 6.701 11.161c.963 1.603.49 3.712-1.057 4.71a3.213 3.213 0 0 1-1.743.516H3.298C1.477 18 0 16.47 0 14.581c0-.639.173-1.264.498-1.807L7.2 1.613C8.162.01 10.196-.481 11.743.517c.428.276.79.651 1.057 1.096zm-2.22.839a1.077 1.077 0 0 0-1.514.365L2.365 13.98a1.17 1.17 0 0 0-.166.602c0 .63.492 1.14 1.1 1.14H16.7c.206 0 .407-.06.581-.172a1.164 1.164 0 0 0 .353-1.57L10.933 2.817a1.12 1.12 0 0 0-.352-.365zM10 14a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm0-9a1 1 0 0 1 1 1v4a1 1 0 0 1-2 0V6a1 1 0 0 1 1-1z'/%3E%3C/svg%3E") top/contain no-repeat;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-2 -3 24 24'%3E%3Cpath fill='currentColor' d='m12.8 1.613 6.701 11.161c.963 1.603.49 3.712-1.057 4.71a3.213 3.213 0 0 1-1.743.516H3.298C1.477 18 0 16.47 0 14.581c0-.639.173-1.264.498-1.807L7.2 1.613C8.162.01 10.196-.481 11.743.517c.428.276.79.651 1.057 1.096zm-2.22.839a1.077 1.077 0 0 0-1.514.365L2.365 13.98a1.17 1.17 0 0 0-.166.602c0 .63.492 1.14 1.1 1.14H16.7c.206 0 .407-.06.581-.172a1.164 1.164 0 0 0 .353-1.57L10.933 2.817a1.12 1.12 0 0 0-.352-.365zM10 14a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm0-9a1 1 0 0 1 1 1v4a1 1 0 0 1-2 0V6a1 1 0 0 1 1-1z'/%3E%3C/svg%3E") top/contain no-repeat;-webkit-mask-position:top;mask-position:top;position:absolute;width:30px} .is-style-quote-info.wp-block-quote,blockquote.info{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(217 237 247/var(--tw-bg-opacity));border-color:rgb(188 232 241/var(--tw-border-opacity));border-width:1px;color:rgb(49 112 143/var(--tw-text-opacity));font-size:1rem;margin-bottom:0;padding:1.25rem 1.5625rem 1.25rem 4rem;position:relative}.is-style-quote-info.wp-block-quote a,blockquote.info a{--tw-text-opacity:1;color:rgb(49 112 143/var(--tw-text-opacity));-webkit-text-decoration-line:underline;text-decoration-line:underline}.is-style-quote-info.wp-block-quote a:hover,blockquote.info a:hover{--tw-text-opacity:1;color:rgb(19 69 95/var(--tw-text-opacity))}.is-style-quote-info.wp-block-quote:before,blockquote.info:before{--tw-bg-opacity:1;background-color:rgb(49 112 143/var(--tw-bg-opacity));content:"";height:100%;left:20px;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='%2331708f'%3E%3Cpath d='M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 128c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.3-32-32 14.3-32 32-32zm40 256h-80c-13.2 0-24-10.7-24-24s10.75-24 24-24h16v-64h-8c-13.25 0-24-10.75-24-24s10.8-24 24-24h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24s-10.7 24-24 24z'/%3E%3C/svg%3E") top/contain no-repeat;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='%2331708f'%3E%3Cpath d='M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 128c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.3-32-32 14.3-32 32-32zm40 256h-80c-13.2 0-24-10.7-24-24s10.75-24 24-24h16v-64h-8c-13.25 0-24-10.75-24-24s10.8-24 24-24h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24s-10.7 24-24 24z'/%3E%3C/svg%3E") top/contain no-repeat;-webkit-mask-position:top;mask-position:top;position:absolute;width:25px} .is-style-quote-tips.wp-block-quote,blockquote.tips{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 254 250/var(--tw-bg-opacity));border-color:rgb(255 243 204/var(--tw-border-opacity));border-width:1px;color:rgb(121 108 16/var(--tw-text-opacity));font-size:1rem;margin-bottom:0;padding:1.25rem 1.5625rem 1.25rem 4rem;position:relative}.is-style-quote-tips.wp-block-quote a,blockquote.tips a{--tw-text-opacity:1;color:rgb(121 108 16/var(--tw-text-opacity));-webkit-text-decoration-line:underline;text-decoration-line:underline}.is-style-quote-tips.wp-block-quote a:hover,blockquote.tips a:hover{--tw-text-opacity:1;color:rgb(77 70 14/var(--tw-text-opacity))}.is-style-quote-tips.wp-block-quote:before,blockquote.tips:before{--tw-bg-opacity:1;background-color:rgb(255 196 0/var(--tw-bg-opacity));content:"";height:100%;left:23px;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1536'%3E%3Cpath d='M736 448q0 13-9.5 22.5T704 480t-22.5-9.5T672 448q0-46-54-71t-106-25q-13 0-22.5-9.5T480 320t9.5-22.5T512 288q50 0 99.5 16t87 54 37.5 90zm160 0q0-72-34.5-134t-90-101.5-123-62T512 128t-136.5 22.5-123 62-90 101.5T128 448q0 101 68 180 10 11 30.5 33t30.5 33q128 153 141 298h228q13-145 141-298 10-11 30.5-33t30.5-33q68-79 68-180zm128 0q0 155-103 268-45 49-74.5 87T787 898.5 753 1006q47 28 47 82 0 37-25 64 25 27 25 64 0 52-45 81 13 23 13 47 0 46-31.5 71t-77.5 25q-20 44-60 70t-87 26-87-26-60-70q-46 0-77.5-25t-31.5-71q0-24 13-47-45-29-45-81 0-37 25-64-25-27-25-64 0-54 47-82-4-50-34-107.5T177.5 803 103 716Q0 603 0 448q0-99 44.5-184.5t117-142 164-89T512 0t186.5 32.5 164 89 117 142T1024 448z'/%3E%3C/svg%3E") top/contain no-repeat;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1536'%3E%3Cpath d='M736 448q0 13-9.5 22.5T704 480t-22.5-9.5T672 448q0-46-54-71t-106-25q-13 0-22.5-9.5T480 320t9.5-22.5T512 288q50 0 99.5 16t87 54 37.5 90zm160 0q0-72-34.5-134t-90-101.5-123-62T512 128t-136.5 22.5-123 62-90 101.5T128 448q0 101 68 180 10 11 30.5 33t30.5 33q128 153 141 298h228q13-145 141-298 10-11 30.5-33t30.5-33q68-79 68-180zm128 0q0 155-103 268-45 49-74.5 87T787 898.5 753 1006q47 28 47 82 0 37-25 64 25 27 25 64 0 52-45 81 13 23 13 47 0 46-31.5 71t-77.5 25q-20 44-60 70t-87 26-87-26-60-70q-46 0-77.5-25t-31.5-71q0-24 13-47-45-29-45-81 0-37 25-64-25-27-25-64 0-54 47-82-4-50-34-107.5T177.5 803 103 716Q0 603 0 448q0-99 44.5-184.5t117-142 164-89T512 0t186.5 32.5 164 89 117 142T1024 448z'/%3E%3C/svg%3E") top/contain no-repeat;-webkit-mask-position:top;mask-position:top;position:absolute;width:20px} .wp-block-group.is-style-group-info{--tw-border-opacity:1;border-color:rgb(250 249 247/var(--tw-border-opacity));border-width:1px;padding:1.5625rem} .is-style-whitepaper-primary-query.wp-block-query .is-layout-flow{list-style-type:none;padding:0}.is-style-whitepaper-primary-query.wp-block-query li .wp-block-group{padding:0!important}.is-style-whitepaper-primary-query.wp-block-query li .wp-block-post-title{font-size:1.125rem;font-style:normal;font-weight:500;margin-top:1rem}.is-style-whitepaper-primary-query.wp-block-query li .wp-block-post-title a{color:#1d1c29!important}.is-style-whitepaper-primary-query.wp-block-query li .wp-block-post-title a:hover{color:var(--color-primary-invictipurple)!important}@media (max-width:766px){.is-style-whitepaper-primary-query.wp-block-query .wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:100%}}@media (min-width:767px) and (max-width:991px){.is-style-whitepaper-primary-query.wp-block-query .wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:calc(50% - .9375em)}} .is-style-whitepaper-featured-query.wp-block-query .is-layout-flow{list-style-type:none;padding:0}.is-style-whitepaper-featured-query.wp-block-query li .wp-block-group{padding:0!important}.is-style-whitepaper-featured-query.wp-block-query li .wp-block-post-title{font-size:1.625rem;font-style:normal;font-weight:500;line-height:1.16;margin-bottom:0;margin-top:.625rem}.is-style-whitepaper-featured-query.wp-block-query li .wp-block-post-title a{color:#1d1c29!important}.is-style-whitepaper-featured-query.wp-block-query li .wp-block-post-title a:hover{color:var(--color-primary-invictipurple)!important}.is-style-whitepaper-featured-query.wp-block-query .wp-block-post-excerpt__excerpt{--tw-text-opacity:1;color:rgb(99 101 105/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1rem;font-style:normal;font-weight:400;line-height:1.36;padding-bottom:1.875rem;padding-top:1.25rem} .is-style-webinar-primary-query.wp-block-query ul{list-style-type:none;padding-left:0}.is-style-webinar-primary-query.wp-block-query ul li{margin-bottom:2rem}.is-style-webinar-primary-query.wp-block-query .is-layout-flow{list-style-type:none;padding:0}.is-style-webinar-primary-query.wp-block-query li .wp-block-post-featured-image{min-height:160px}.is-style-webinar-primary-query.wp-block-query li .wp-block-post-title{font-size:1.125rem;font-style:normal;font-weight:500;margin-bottom:.3125rem;margin-top:1rem}.is-style-webinar-primary-query.wp-block-query li .wp-block-post-title a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));transition-duration:.3s}.is-style-webinar-primary-query.wp-block-query li .wp-block-post-title a:hover{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity))}@media (max-width:766px){.is-style-webinar-primary-query.wp-block-query .wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:100%}}@media (min-width:767px) and (max-width:991px){.is-style-webinar-primary-query.wp-block-query .wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:calc(50% - .9375em)}} @charset "UTF-8";.is-style-webinar-featured-query.wp-block-query .is-layout-flow{list-style-type:none;padding:0}.is-style-webinar-featured-query.wp-block-query li .wp-block-post-featured-image{margin-left:auto;margin-right:auto;max-width:600px}.is-style-webinar-featured-query.wp-block-query li .wp-block-post-title{font-size:1.25rem;font-style:normal;font-weight:500;line-height:1.16;margin-bottom:.625rem;margin-top:1.25rem}@media (min-width:767px){.is-style-webinar-featured-query.wp-block-query li .wp-block-post-title{margin-top:0}}@media (min-width:992px){.is-style-webinar-featured-query.wp-block-query li .wp-block-post-title{font-size:1.625rem}}.is-style-webinar-featured-query.wp-block-query li .wp-block-post-title a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));transition-duration:.3s}.is-style-webinar-featured-query.wp-block-query li .wp-block-post-title a:hover{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity))}.is-style-webinar-featured-query.wp-block-query li .wp-block-post-excerpt{margin-bottom:1.25rem;margin-top:1.25rem}.is-style-webinar-featured-query.wp-block-query li .wp-block-post-excerpt p{line-height:1.5}@media (min-width:992px){.is-style-webinar-featured-query.wp-block-query li .wp-block-post-excerpt p{font-size:.9375rem}}@media (min-width:1200px){.is-style-webinar-featured-query.wp-block-query li .wp-block-post-excerpt p{font-size:1rem}}.is-style-webinar-featured-query.wp-block-query li .wp-block-read-more{--tw-text-opacity:1;color:rgb(44 81 189/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;margin-bottom:0;position:relative}.is-style-webinar-featured-query.wp-block-query li .wp-block-read-more:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.is-style-webinar-featured-query.wp-block-query li .wp-block-read-more:after{content:"▶";font-size:.875rem;margin-left:.3125rem} .wp-block-code.is-style-code-highlighter>code{border-style:none;padding:.625rem 0}.wp-block-code.is-style-code-highlighter>code .punctuation{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity))}.wp-block-code.is-style-code-highlighter>code .line-numbers-rows{padding-bottom:.625rem;padding-top:.625rem}.wp-block-code.is-style-code-highlighter+.toolbar{right:.3em}.wp-block-code.is-style-code-highlighter+.toolbar>.toolbar-item>button{--tw-bg-opacity:1;--tw-text-opacity:1;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;background-color:rgb(177 177 178/var(--tw-bg-opacity));border-radius:.25rem;border-width:0;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:rgb(255 255 255/var(--tw-text-opacity));line-height:1;padding:.25rem .625rem;text-transform:lowercase} </style> <style id='wp-block-library-theme-inline-css' type='text/css'> .wp-block-audio :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio :where(figcaption){color:#ffffffa6}.wp-block-audio{margin:0 0 1em}.wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em}.wp-block-embed :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed :where(figcaption){color:#ffffffa6}.wp-block-embed{margin:0 0 1em}.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:#ffffffa6}:root :where(.wp-block-image figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme :root :where(.wp-block-image figcaption){color:#ffffffa6}.wp-block-image{margin:0 0 1em}.wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote cite,.wp-block-pullquote footer,.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase}.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote:where(.has-text-align-right){border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote:where(.has-text-align-center){border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote:where(.is-style-plain){border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}:where(.wp-block-group.has-background){padding:1.25em 2.375em}.wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table :where(figcaption){color:#ffffffa6}.wp-block-video :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video :where(figcaption){color:#ffffffa6}.wp-block-video{margin:0 0 1em}:root :where(.wp-block-template-part.has-background){margin-bottom:0;margin-top:0;padding:1.25em 2.375em} </style> <script type="text/javascript" id="app-footer-js" nonce="wo123jejr234982dfn">!function(){"use strict";var r,n={},t={};function e(r){var o=t[r];if(void 0!==o)return o.exports;var u=t[r]={exports:{}};return n[r](u,u.exports,e),u.exports}e.m=n,r=[],e.O=function(n,t,o,u){if(!t){var i=1/0;for(s=0;s<r.length;s++){t=r[s][0],o=r[s][1],u=r[s][2];for(var f=!0,c=0;c<t.length;c++)(!1&u||i>=u)&&Object.keys(e.O).every((function(r){return e.O[r](t[c])}))?t.splice(c--,1):(f=!1,u<i&&(i=u));if(f){r.splice(s--,1);var a=o();void 0!==a&&(n=a)}}return n}u=u||0;for(var s=r.length;s>0&&r[s-1][2]>u;s--)r[s]=r[s-1];r[s]=[t,o,u]},e.o=function(r,n){return Object.prototype.hasOwnProperty.call(r,n)},function(){var r={8546:0,8138:0,2365:0,9049:0,4522:0,8056:0,3626:0,2917:0,7260:0,995:0,5398:0,1697:0,3896:0,687:0,7555:0,9484:0,1120:0,4167:0,3615:0,2229:0,9944:0,196:0,896:0,1785:0,1548:0,2651:0,1739:0,7532:0,1891:0,3973:0,9047:0,7368:0,6469:0,3415:0,2078:0,8320:0,1010:0,4906:0,2855:0,4098:0,973:0,8201:0,7089:0,6840:0,8043:0,3770:0,4216:0,226:0,383:0,2285:0,6045:0,6567:0,1575:0,1855:0,9489:0,7215:0,4674:0,5177:0,9190:0,9402:0,4346:0,175:0,1121:0,6231:0,4055:0,5517:0,4298:0,7695:0,7916:0,8947:0,4915:0,547:0,7258:0,8624:0,2039:0,7381:0,1625:0,7123:0,5839:0,3501:0,2132:0,1518:0,530:0,148:0,1909:0,5605:0,3375:0,188:0,1981:0,6362:0,798:0,2212:0,5950:0,8517:0,7991:0,5551:0,2125:0,1099:0,5760:0,9331:0,2126:0,4692:0,495:0,4777:0,961:0,9598:0,2845:0,2019:0,2879:0};e.O.j=function(n){return 0===r[n]};var n=function(n,t){var o,u,i=t[0],f=t[1],c=t[2],a=0;if(i.some((function(n){return 0!==r[n]}))){for(o in f)e.o(f,o)&&(e.m[o]=f[o]);if(c)var s=c(e)}for(n&&n(t);a<i.length;a++)u=i[a],e.o(r,u)&&r[u]&&r[u][0](),r[i[a]]=0;return e.O(s)},t=self.webpackChunk=self.webpackChunk||[];t.forEach(n.bind(null,0)),t.push=n.bind(null,t.push.bind(t))}()}(); !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.lozad=e()}(this,(function(){"use strict";var t="undefined"!=typeof document&&document.documentMode,e={rootMargin:"0px",threshold:0,load:function(e){if("picture"===e.nodeName.toLowerCase()){var r=e.querySelector("img"),a=!1;null===r&&(r=document.createElement("img"),a=!0),t&&e.getAttribute("data-iesrc")&&(r.src=e.getAttribute("data-iesrc")),e.getAttribute("data-alt")&&(r.alt=e.getAttribute("data-alt")),a&&e.append(r)}if("video"===e.nodeName.toLowerCase()&&!e.getAttribute("data-src")&&e.children){for(var o=e.children,i=void 0,n=0;n<=o.length-1;n++)(i=o[n].getAttribute("data-src"))&&(o[n].src=i);e.load()}e.getAttribute("data-poster")&&(e.poster=e.getAttribute("data-poster")),e.getAttribute("data-src")&&(e.src=e.getAttribute("data-src")),e.getAttribute("data-srcset")&&e.setAttribute("srcset",e.getAttribute("data-srcset"));var d=",";if(e.getAttribute("data-background-delimiter")&&(d=e.getAttribute("data-background-delimiter")),e.getAttribute("data-background-image"))e.style.backgroundImage="url('"+e.getAttribute("data-background-image").split(d).join("'),url('")+"')";else if(e.getAttribute("data-background-image-set")){var u=e.getAttribute("data-background-image-set").split(d),g=u[0].substr(0,u[0].indexOf(" "))||u[0];g=-1===g.indexOf("url(")?"url("+g+")":g,1===u.length?e.style.backgroundImage=g:e.setAttribute("style",(e.getAttribute("style")||"")+"background-image: "+g+"; background-image: -webkit-image-set("+u+"); background-image: image-set("+u+")")}e.getAttribute("data-toggle-class")&&e.classList.toggle(e.getAttribute("data-toggle-class"))},loaded:function(){}};function r(t){t.setAttribute("data-loaded",!0)}var a=function(t){return"true"===t.getAttribute("data-loaded")},o=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:document;return t instanceof Element?[t]:t instanceof NodeList?t:e.querySelectorAll(t)};return function(){var t,i,n=0<arguments.length&&void 0!==arguments[0]?arguments[0]:".lozad",d=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},u=Object.assign({},e,d),g=u.root,s=u.rootMargin,c=u.threshold,l=u.load,b=u.loaded,f=void 0;"undefined"!=typeof window&&window.IntersectionObserver&&(f=new IntersectionObserver((t=l,i=b,function(e,o){e.forEach((function(e){(0<e.intersectionRatio||e.isIntersecting)&&(o.unobserve(e.target),a(e.target)||(t(e.target),r(e.target),i(e.target)))}))}),{root:g,rootMargin:s,threshold:c}));for(var A,m=o(n,g),v=0;v<m.length;v++)(A=m[v]).getAttribute("data-placeholder-background")&&(A.style.background=A.getAttribute("data-placeholder-background"));return{observe:function(){for(var t=o(n,g),e=0;e<t.length;e++)a(t[e])||(f?f.observe(t[e]):(l(t[e]),r(t[e]),b(t[e])))},triggerLoad:function(t){a(t)||(l(t),r(t),b(t))},observer:f}}})); !function(e){var n;if("function"==typeof define&&define.amd&&(define(e),n=!0),"object"==typeof exports&&(module.exports=e(),n=!0),!n){var t=window.Cookies,o=window.Cookies=e();o.noConflict=function(){return window.Cookies=t,o}}}((function(){function e(){for(var e=0,n={};e<arguments.length;e++){var t=arguments[e];for(var o in t)n[o]=t[o]}return n}function n(e){return e.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}return function t(o){function r(){}function i(n,t,i){if("undefined"!=typeof document){"number"==typeof(i=e({path:"/"},r.defaults,i)).expires&&(i.expires=new Date(1*new Date+864e5*i.expires)),i.expires=i.expires?i.expires.toUTCString():"";try{var c=JSON.stringify(t);/^[\{\[]/.test(c)&&(t=c)}catch(e){}t=o.write?o.write(t,n):encodeURIComponent(String(t)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),n=encodeURIComponent(String(n)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var f="";for(var u in i)i[u]&&(f+="; "+u,!0!==i[u]&&(f+="="+i[u].split(";")[0]));return document.cookie=n+"="+t+f}}function c(e,t){if("undefined"!=typeof document){for(var r={},i=document.cookie?document.cookie.split("; "):[],c=0;c<i.length;c++){var f=i[c].split("="),u=f.slice(1).join("=");t||'"'!==u.charAt(0)||(u=u.slice(1,-1));try{var a=n(f[0]);if(u=(o.read||o)(u,a)||n(u),t)try{u=JSON.parse(u)}catch(e){}if(r[a]=u,e===a)break}catch(e){}}return e?r[e]:r}}return r.set=i,r.get=function(e){return c(e,!1)},r.getJSON=function(e){return c(e,!0)},r.remove=function(n,t){i(n,"",e(t,{expires:-1}))},r.defaults={},r.withConverter=t,r}((function(){}))})); (self.webpackChunk=self.webpackChunk||[]).push([[9742],{4006:function(){var e=function(){"use strict";var e={},t=[];return e.extend=function(t,o){e[t]=o},e.init=function(e){t.push(e)},e.getAll=function(){return e},e.on=function(e,t,o,n){if(!e)throw new Error("Please provide an element to attach the event to.");if(!t)throw new Error("Please provide an event to listen for.");if(!o||"function"!=typeof o)throw new Error("Please provide a valid callback function to run");e.addEventListener(t,o,n||!1)},e.off=function(e,t){e.removeEventListener(t,t)},e.imageLazyLoading=function(){lozad(".lozad",{rootMargin:"300px",threshold:0}).observe()},e.pageSettings=function(){var e=0,t=document.querySelector(":root"),o=document.querySelector(".site-footer"),n=document.querySelector(".site-header");if(n){var i=n.offsetHeight;e+=i,t.style.setProperty("--header-height",i+"px")}if(o){var a=o.offsetHeight;e+=a,t.style.setProperty("--footer-height",a+"px")}t.style.setProperty("--add-height",e+"px")},e.ready=function(){var e=new Event("ready");document.dispatchEvent(e)},document.addEventListener("DOMContentLoaded",e.ready),e.init(e.imageLazyLoading),e.init(e.pageSettings),window.onload=function(){e.pageSettings()},window.onresize=function(){e.pageSettings()},document.addEventListener("DOMContentLoaded",(function(){t.forEach((function(e){e.call()}))})),e}();window.App=e,e.init((function(){var e=document.getElementById("cookie-notice-bar"),t=e.getElementsByClassName("cookie-notice-button")[0],o=new Event("cookiesAllowed");Cookies.get("cookiebar")||e.classList.add("active"),t.onclick=function(){Cookies.set("cookiebar","hide",{expires:999}),window.dispatchEvent(o)},window.addEventListener("cookiesAllowed",(function(t){t.preventDefault(),e.classList.remove("active")}),!1)})),e.extend("utm",{nsUtmKeys:["utm_source","utm_campaign","utm_medium","utm_content","utm_term","utm_concept","vwo_id","vwo_variation","gclid"],localStoragePrefix:"",localStorageLandingPageKey:"ns_landing_page_key",localStorageReferrerKey:"referrerUrl",saveUtmDataToLocalStorage:function(){var e=this;try{var t=new URLSearchParams(window.location.search);this.nsUtmKeys.forEach((function(o){!0===t.has(o)&&null!=t.get(o)&&"null"!=t.get(o)&&localStorage.setItem(e.localStoragePrefix+o,t.get(o))})),Cookies.get(this.localStorageLandingPageKey)||(Cookies.set(this.localStorageLandingPageKey,window.location.protocol+"//"+window.location.host+window.location.pathname,{expires:1/48}),e.saveReferrer())}catch(e){console.error(e)}},saveReferrer:function(){var e=this,t=document.referrer;""!==t&&(t=(t=(t=(t=t.replace("http://","")).replace("https://","")).replace("www.","")).replace("/","")),localStorage.setItem(this.localStorageReferrerKey,t);var o=localStorage.getItem(e.localStoragePrefix+"utm_source");if(""!==t&&(null===o||""==o)){var n=e.getSearchEngine(t);localStorage.setItem(e.localStoragePrefix+"utm_source",n),localStorage.setItem(e.localStoragePrefix+"utm_medium",n!=t?"organic":"referral")}""!==t&&-1===t.indexOf("invicti.com")||null!==o&&""!=o||(localStorage.setItem(e.localStoragePrefix+"utm_source","direct"),localStorage.setItem(e.localStoragePrefix+"utm_medium","direct"))},getSearchEngine:function(e){return null==e?e:-1!=e.indexOf("google")?"google":-1!=e.indexOf("bing.com")?"bing":-1!=e.indexOf("duckduckgo.com")?"duckduckgo":-1!=e.indexOf("yahoo")?"yahoo":-1!=e.indexOf("baidu.com")?"baidu":-1!=e.indexOf("ecosia.org")?"ecosia.org ":-1!=e.indexOf("yandex")?"yandex":-1!=e.indexOf("qwant.com")?"qwant":-1!=e.indexOf("naver.com")?"naver":-1!=e.indexOf("ask")?"ask.com ":-1!=e.indexOf("so.com")?"so.com ":-1!=e.indexOf("sogou.com")?"sogou":e},vwoInit:function(){window.VWO=window.VWO||[],window.VWO.push(["onVariationApplied",function(e){if(e){var t=e[1],o=e[2];if(void 0!==window._vwo_exp[t].comb_n[o]&&["VISUAL_AB","VISUAL","SPLIT_URL","SURVEY"].indexOf(window._vwo_exp[t].type)>-1){var n=parseInt(sessionStorage.getItem("ns_vwo_id"),10);(isNaN(n)||n>t)&&(sessionStorage.setItem("ns_vwo_id",t),sessionStorage.setItem("ns_vwo_variation",o))}}}])},init:function(){var t=e.utm;t.vwoInit(),t.saveUtmDataToLocalStorage()}}),e.init(e.utm.init),e.init((function(){"function"==typeof WOW&&new WOW({boxClass:"wow",animateClass:"animated",offset:165,mobile:!1,live:!1}).init()})),e.init((function(){var e=document.querySelector(".invicti-bar"),t=localStorage.getItem("hello_bar");if(e&&(null==t||"hide"!==t)){var o=document.querySelector(".bar-close"),n=document.querySelector("body"),i=document.querySelector(".transparent-header");n.classList.add("invicti-bar-active"),i&&n.classList.add("transparent-header-active"),o.addEventListener("click",(function(){localStorage.setItem("hello_bar","hide"),n.classList.remove("invicti-bar-active"),n.classList.remove("transparent-header-active")}))}}))}},function(e){var t;t=4006,e(e.s=t)}]); /* PrismJS 1.29.0 https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+aspnet+c+csharp+graphql+java+json+json5+jsonp+markup-templating+nginx+php+python+regex+ruby+sql&plugins=line-numbers+toolbar+copy-to-clipboard */ var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(e){var n=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,r={},a={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(n){return n instanceof i?new i(n.type,e(n.content),n.alias):Array.isArray(n)?n.map(e):n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(n,t){var r,i;switch(t=t||{},a.util.type(n)){case"Object":if(i=a.util.objId(n),t[i])return t[i];for(var l in r={},t[i]=r,n)n.hasOwnProperty(l)&&(r[l]=e(n[l],t));return r;case"Array":return i=a.util.objId(n),t[i]?t[i]:(r=[],t[i]=r,n.forEach((function(n,a){r[a]=e(n,t)})),r);default:return n}},getLanguage:function(e){for(;e;){var t=n.exec(e.className);if(t)return t[1].toLowerCase();e=e.parentElement}return"none"},setLanguage:function(e,t){e.className=e.className.replace(RegExp(n,"gi"),""),e.classList.add("language-"+t)},currentScript:function(){if("undefined"==typeof document)return null;if("currentScript"in document)return document.currentScript;try{throw new Error}catch(r){var e=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(r.stack)||[])[1];if(e){var n=document.getElementsByTagName("script");for(var t in n)if(n[t].src==e)return n[t]}return null}},isActive:function(e,n,t){for(var r="no-"+n;e;){var a=e.classList;if(a.contains(n))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!t}},languages:{plain:r,plaintext:r,text:r,txt:r,extend:function(e,n){var t=a.util.clone(a.languages[e]);for(var r in n)t[r]=n[r];return t},insertBefore:function(e,n,t,r){var i=(r=r||a.languages)[e],l={};for(var o in i)if(i.hasOwnProperty(o)){if(o==n)for(var s in t)t.hasOwnProperty(s)&&(l[s]=t[s]);t.hasOwnProperty(o)||(l[o]=i[o])}var u=r[e];return r[e]=l,a.languages.DFS(a.languages,(function(n,t){t===u&&n!=e&&(this[n]=l)})),l},DFS:function e(n,t,r,i){i=i||{};var l=a.util.objId;for(var o in n)if(n.hasOwnProperty(o)){t.call(n,o,n[o],r||o);var s=n[o],u=a.util.type(s);"Object"!==u||i[l(s)]?"Array"!==u||i[l(s)]||(i[l(s)]=!0,e(s,t,o,i)):(i[l(s)]=!0,e(s,t,null,i))}}},plugins:{},highlightAll:function(e,n){a.highlightAllUnder(document,e,n)},highlightAllUnder:function(e,n,t){var r={callback:t,container:e,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};a.hooks.run("before-highlightall",r),r.elements=Array.prototype.slice.apply(r.container.querySelectorAll(r.selector)),a.hooks.run("before-all-elements-highlight",r);for(var i,l=0;i=r.elements[l++];)a.highlightElement(i,!0===n,r.callback)},highlightElement:function(n,t,r){var i=a.util.getLanguage(n),l=a.languages[i];a.util.setLanguage(n,i);var o=n.parentElement;o&&"pre"===o.nodeName.toLowerCase()&&a.util.setLanguage(o,i);var s={element:n,language:i,grammar:l,code:n.textContent};function u(e){s.highlightedCode=e,a.hooks.run("before-insert",s),s.element.innerHTML=s.highlightedCode,a.hooks.run("after-highlight",s),a.hooks.run("complete",s),r&&r.call(s.element)}if(a.hooks.run("before-sanity-check",s),(o=s.element.parentElement)&&"pre"===o.nodeName.toLowerCase()&&!o.hasAttribute("tabindex")&&o.setAttribute("tabindex","0"),!s.code)return a.hooks.run("complete",s),void(r&&r.call(s.element));if(a.hooks.run("before-highlight",s),s.grammar)if(t&&e.Worker){var c=new Worker(a.filename);c.onmessage=function(e){u(e.data)},c.postMessage(JSON.stringify({language:s.language,code:s.code,immediateClose:!0}))}else u(a.highlight(s.code,s.grammar,s.language));else u(a.util.encode(s.code))},highlight:function(e,n,t){var r={code:e,grammar:n,language:t};if(a.hooks.run("before-tokenize",r),!r.grammar)throw new Error('The language "'+r.language+'" has no grammar.');return r.tokens=a.tokenize(r.code,r.grammar),a.hooks.run("after-tokenize",r),i.stringify(a.util.encode(r.tokens),r.language)},tokenize:function(e,n){var t=n.rest;if(t){for(var r in t)n[r]=t[r];delete n.rest}var a=new s;return u(a,a.head,e),o(e,a,n,a.head,0),function(e){for(var n=[],t=e.head.next;t!==e.tail;)n.push(t.value),t=t.next;return n}(a)},hooks:{all:{},add:function(e,n){var t=a.hooks.all;t[e]=t[e]||[],t[e].push(n)},run:function(e,n){var t=a.hooks.all[e];if(t&&t.length)for(var r,i=0;r=t[i++];)r(n)}},Token:i};function i(e,n,t,r){this.type=e,this.content=n,this.alias=t,this.length=0|(r||"").length}function l(e,n,t,r){e.lastIndex=n;var a=e.exec(t);if(a&&r&&a[1]){var i=a[1].length;a.index+=i,a[0]=a[0].slice(i)}return a}function o(e,n,t,r,s,g){for(var f in t)if(t.hasOwnProperty(f)&&t[f]){var h=t[f];h=Array.isArray(h)?h:[h];for(var d=0;d<h.length;++d){if(g&&g.cause==f+","+d)return;var v=h[d],p=v.inside,m=!!v.lookbehind,y=!!v.greedy,k=v.alias;if(y&&!v.pattern.global){var x=v.pattern.toString().match(/[imsuy]*$/)[0];v.pattern=RegExp(v.pattern.source,x+"g")}for(var b=v.pattern||v,w=r.next,A=s;w!==n.tail&&!(g&&A>=g.reach);A+=w.value.length,w=w.next){var E=w.value;if(n.length>e.length)return;if(!(E instanceof i)){var P,L=1;if(y){if(!(P=l(b,A,e,m))||P.index>=e.length)break;var S=P.index,O=P.index+P[0].length,j=A;for(j+=w.value.length;S>=j;)j+=(w=w.next).value.length;if(A=j-=w.value.length,w.value instanceof i)continue;for(var C=w;C!==n.tail&&(j<O||"string"==typeof C.value);C=C.next)L++,j+=C.value.length;L--,E=e.slice(A,j),P.index-=A}else if(!(P=l(b,0,E,m)))continue;S=P.index;var N=P[0],_=E.slice(0,S),M=E.slice(S+N.length),W=A+E.length;g&&W>g.reach&&(g.reach=W);var z=w.prev;if(_&&(z=u(n,z,_),A+=_.length),c(n,z,L),w=u(n,z,new i(f,p?a.tokenize(N,p):N,k,N)),M&&u(n,w,M),L>1){var I={cause:f+","+d,reach:W};o(e,n,t,w.prev,A,I),g&&I.reach>g.reach&&(g.reach=I.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},n={value:null,prev:e,next:null};e.next=n,this.head=e,this.tail=n,this.length=0}function u(e,n,t){var r=n.next,a={value:t,prev:n,next:r};return n.next=a,r.prev=a,e.length++,a}function c(e,n,t){for(var r=n.next,a=0;a<t&&r!==e.tail;a++)r=r.next;n.next=r,r.prev=n,e.length-=a}if(e.Prism=a,i.stringify=function e(n,t){if("string"==typeof n)return n;if(Array.isArray(n)){var r="";return n.forEach((function(n){r+=e(n,t)})),r}var i={type:n.type,content:e(n.content,t),tag:"span",classes:["token",n.type],attributes:{},language:t},l=n.alias;l&&(Array.isArray(l)?Array.prototype.push.apply(i.classes,l):i.classes.push(l)),a.hooks.run("wrap",i);var o="";for(var s in i.attributes)o+=" "+s+'="'+(i.attributes[s]||"").replace(/"/g,"&quot;")+'"';return"<"+i.tag+' class="'+i.classes.join(" ")+'"'+o+">"+i.content+"</"+i.tag+">"},!e.document)return e.addEventListener?(a.disableWorkerMessageHandler||e.addEventListener("message",(function(n){var t=JSON.parse(n.data),r=t.language,i=t.code,l=t.immediateClose;e.postMessage(a.highlight(i,a.languages[r],r)),l&&e.close()}),!1),a):a;var g=a.util.currentScript();function f(){a.manual||a.highlightAll()}if(g&&(a.filename=g.src,g.hasAttribute("data-manual")&&(a.manual=!0)),!a.manual){var h=document.readyState;"loading"===h||"interactive"===h&&g&&g.defer?document.addEventListener("DOMContentLoaded",f):window.requestAnimationFrame?window.requestAnimationFrame(f):window.setTimeout(f,16)}return a}(_self);"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism); Prism.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup,Prism.hooks.add("wrap",(function(a){"entity"===a.type&&(a.attributes.title=a.content.replace(/&amp;/,"&"))})),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(a,e){var s={};s["language-"+e]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:Prism.languages[e]},s.cdata=/^<!\[CDATA\[|\]\]>$/i;var t={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:s}};t["language-"+e]={pattern:/[\s\S]+/,inside:Prism.languages[e]};var n={};n[a]={pattern:RegExp("(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[^])*?(?=</__>)".replace(/__/g,(function(){return a})),"i"),lookbehind:!0,greedy:!0,inside:t},Prism.languages.insertBefore("markup","cdata",n)}}),Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(a,e){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp("(^|[\"'\\s])(?:"+a+")\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))","i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[e,"language-"+e],inside:Prism.languages[e]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml; !function(s){var e=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;s.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:[^;{\\s\"']|\\s+(?!\\s)|"+e.source+")*?(?:;|(?=\\s*\\{))"),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+e.source+"|(?:[^\\\\\r\n()\"']|\\\\[^])*)\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+e.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+e.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:e,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},s.languages.css.atrule.inside.rest=s.languages.css;var t=s.languages.markup;t&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(Prism); Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}; Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp("(^|[^\\w$])(?:NaN|Infinity|0[bB][01]+(?:_[01]+)*n?|0[oO][0-7]+(?:_[0-7]+)*n?|0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?|\\d+(?:_\\d+)*n|(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?)(?![\\w$])"),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp("((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/(?:(?:\\[(?:[^\\]\\\\\r\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\r\n])+/[dgimyus]{0,7}|(?:\\[(?:[^[\\]\\\\\r\n]|\\\\.|\\[(?:[^[\\]\\\\\r\n]|\\\\.|\\[(?:[^[\\]\\\\\r\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\r\n])+/[dgimyus]{0,7}v[dgimyus]{0,7})(?=(?:\\s|/\\*(?:[^*]|\\*(?!/))*\\*/)*(?:$|[\r\n,.;:})\\]]|//))"),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute("on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)","javascript")),Prism.languages.js=Prism.languages.javascript; !function(e){function n(e,n){return e.replace(/<<(\d+)>>/g,(function(e,s){return"(?:"+n[+s]+")"}))}function s(e,s,a){return RegExp(n(e,s),a||"")}function a(e,n){for(var s=0;s<n;s++)e=e.replace(/<<self>>/g,(function(){return"(?:"+e+")"}));return e.replace(/<<self>>/g,"[^\\s\\S]")}var t="bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",r="class enum interface record struct",i="add alias and ascending async await by descending from(?=\\s*(?:\\w|$)) get global group into init(?=\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\s*{)",o="abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield";function l(e){return"\\b(?:"+e.trim().replace(/ /g,"|")+")\\b"}var d=l(r),p=RegExp(l(t+" "+r+" "+i+" "+o)),c=l(r+" "+i+" "+o),u=l(t+" "+r+" "+o),g=a("<(?:[^<>;=+\\-*/%&|^]|<<self>>)*>",2),b=a("\\((?:[^()]|<<self>>)*\\)",2),h="@?\\b[A-Za-z_]\\w*\\b",f=n("<<0>>(?:\\s*<<1>>)?",[h,g]),m=n("(?!<<0>>)<<1>>(?:\\s*\\.\\s*<<1>>)*",[c,f]),k="\\[\\s*(?:,\\s*)*\\]",y=n("<<0>>(?:\\s*(?:\\?\\s*)?<<1>>)*(?:\\s*\\?)?",[m,k]),w=n("[^,()<>[\\];=+\\-*/%&|^]|<<0>>|<<1>>|<<2>>",[g,b,k]),v=n("\\(<<0>>+(?:,<<0>>+)+\\)",[w]),x=n("(?:<<0>>|<<1>>)(?:\\s*(?:\\?\\s*)?<<2>>)*(?:\\s*\\?)?",[v,m,k]),$={keyword:p,punctuation:/[<>()?,.:[\]]/},_="'(?:[^\r\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'",B='"(?:\\\\.|[^\\\\"\r\n])*"';e.languages.csharp=e.languages.extend("clike",{string:[{pattern:s("(^|[^$\\\\])<<0>>",['@"(?:""|\\\\[^]|[^\\\\"])*"(?!")']),lookbehind:!0,greedy:!0},{pattern:s("(^|[^@$\\\\])<<0>>",[B]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:s("(\\busing\\s+static\\s+)<<0>>(?=\\s*;)",[m]),lookbehind:!0,inside:$},{pattern:s("(\\busing\\s+<<0>>\\s*=\\s*)<<1>>(?=\\s*;)",[h,x]),lookbehind:!0,inside:$},{pattern:s("(\\busing\\s+)<<0>>(?=\\s*=)",[h]),lookbehind:!0},{pattern:s("(\\b<<0>>\\s+)<<1>>",[d,f]),lookbehind:!0,inside:$},{pattern:s("(\\bcatch\\s*\\(\\s*)<<0>>",[m]),lookbehind:!0,inside:$},{pattern:s("(\\bwhere\\s+)<<0>>",[h]),lookbehind:!0},{pattern:s("(\\b(?:is(?:\\s+not)?|as)\\s+)<<0>>",[y]),lookbehind:!0,inside:$},{pattern:s("\\b<<0>>(?=\\s+(?!<<1>>|with\\s*\\{)<<2>>(?:\\s*[=,;:{)\\]]|\\s+(?:in|when)\\b))",[x,u,h]),inside:$}],keyword:p,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:[dflmu]|lu|ul)?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),e.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),e.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:s("([(,]\\s*)<<0>>(?=\\s*:)",[h]),lookbehind:!0,alias:"punctuation"}}),e.languages.insertBefore("csharp","class-name",{namespace:{pattern:s("(\\b(?:namespace|using)\\s+)<<0>>(?:\\s*\\.\\s*<<0>>)*(?=\\s*[;{])",[h]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:s("(\\b(?:default|sizeof|typeof)\\s*\\(\\s*(?!\\s))(?:[^()\\s]|\\s(?!\\s)|<<0>>)*(?=\\s*\\))",[b]),lookbehind:!0,alias:"class-name",inside:$},"return-type":{pattern:s("<<0>>(?=\\s+(?:<<1>>\\s*(?:=>|[({]|\\.\\s*this\\s*\\[)|this\\s*\\[))",[x,m]),inside:$,alias:"class-name"},"constructor-invocation":{pattern:s("(\\bnew\\s+)<<0>>(?=\\s*[[({])",[x]),lookbehind:!0,inside:$,alias:"class-name"},"generic-method":{pattern:s("<<0>>\\s*<<1>>(?=\\s*\\()",[h,g]),inside:{function:s("^<<0>>",[h]),generic:{pattern:RegExp(g),alias:"class-name",inside:$}}},"type-list":{pattern:s("\\b((?:<<0>>\\s+<<1>>|record\\s+<<1>>\\s*<<5>>|where\\s+<<2>>)\\s*:\\s*)(?:<<3>>|<<4>>|<<1>>\\s*<<5>>|<<6>>)(?:\\s*,\\s*(?:<<3>>|<<4>>|<<6>>))*(?=\\s*(?:where|[{;]|=>|$))",[d,f,h,x,p.source,b,"\\bnew\\s*\\(\\s*\\)"]),lookbehind:!0,inside:{"record-arguments":{pattern:s("(^(?!new\\s*\\()<<0>>\\s*)<<1>>",[f,b]),lookbehind:!0,greedy:!0,inside:e.languages.csharp},keyword:p,"class-name":{pattern:RegExp(x),greedy:!0,inside:$},punctuation:/[,()]/}},preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(#)\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var E=B+"|"+_,R=n("/(?![*/])|//[^\r\n]*[\r\n]|/\\*(?:[^*]|\\*(?!/))*\\*/|<<0>>",[E]),z=a(n("[^\"'/()]|<<0>>|\\(<<self>>*\\)",[R]),2),S="\\b(?:assembly|event|field|method|module|param|property|return|type)\\b",j=n("<<0>>(?:\\s*\\(<<1>>*\\))?",[m,z]);e.languages.insertBefore("csharp","class-name",{attribute:{pattern:s("((?:^|[^\\s\\w>)?])\\s*\\[\\s*)(?:<<0>>\\s*:\\s*)?<<1>>(?:\\s*,\\s*<<1>>)*(?=\\s*\\])",[S,j]),lookbehind:!0,greedy:!0,inside:{target:{pattern:s("^<<0>>(?=\\s*:)",[S]),alias:"keyword"},"attribute-arguments":{pattern:s("\\(<<0>>*\\)",[z]),inside:e.languages.csharp},"class-name":{pattern:RegExp(m),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var A=":[^}\r\n]+",F=a(n("[^\"'/()]|<<0>>|\\(<<self>>*\\)",[R]),2),P=n("\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}",[F,A]),U=a(n("[^\"'/()]|/(?!\\*)|/\\*(?:[^*]|\\*(?!/))*\\*/|<<0>>|\\(<<self>>*\\)",[E]),2),Z=n("\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}",[U,A]);function q(n,a){return{interpolation:{pattern:s("((?:^|[^{])(?:\\{\\{)*)<<0>>",[n]),lookbehind:!0,inside:{"format-string":{pattern:s("(^\\{(?:(?![}:])<<0>>)*)<<1>>(?=\\}$)",[a,A]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:e.languages.csharp}}},string:/[\s\S]+/}}e.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:s('(^|[^\\\\])(?:\\$@|@\\$)"(?:""|\\\\[^]|\\{\\{|<<0>>|[^\\\\{"])*"',[P]),lookbehind:!0,greedy:!0,inside:q(P,F)},{pattern:s('(^|[^@\\\\])\\$"(?:\\\\.|\\{\\{|<<0>>|[^\\\\"{])*"',[Z]),lookbehind:!0,greedy:!0,inside:q(Z,U)}],char:{pattern:RegExp(_),greedy:!0}}),e.languages.dotnet=e.languages.cs=e.languages.csharp}(Prism); Prism.languages.aspnet=Prism.languages.extend("markup",{"page-directive":{pattern:/<%\s*@.*%>/,alias:"tag",inside:{"page-directive":{pattern:/<%\s*@\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,alias:"tag"},rest:Prism.languages.markup.tag.inside}},directive:{pattern:/<%.*%>/,alias:"tag",inside:{directive:{pattern:/<%\s*?[$=%#:]{0,2}|%>/,alias:"tag"},rest:Prism.languages.csharp}}}),Prism.languages.aspnet.tag.pattern=/<(?!%)\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/,Prism.languages.insertBefore("inside","punctuation",{directive:Prism.languages.aspnet.directive},Prism.languages.aspnet.tag.inside["attr-value"]),Prism.languages.insertBefore("aspnet","comment",{"asp-comment":{pattern:/<%--[\s\S]*?--%>/,alias:["asp","comment"]}}),Prism.languages.insertBefore("aspnet",Prism.languages.javascript?"script":"tag",{"asp-script":{pattern:/(<script(?=.*runat=['"]?server\b)[^>]*>)[\s\S]*?(?=<\/script>)/i,lookbehind:!0,alias:["asp","script"],inside:Prism.languages.csharp||{}}}); Prism.languages.c=Prism.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),Prism.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),Prism.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},Prism.languages.c.string],char:Prism.languages.c.char,comment:Prism.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:Prism.languages.c}}}}),Prism.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete Prism.languages.c.boolean; Prism.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:Prism.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},Prism.hooks.add("after-tokenize",(function(n){if("graphql"===n.language)for(var t=n.tokens.filter((function(n){return"string"!=typeof n&&"comment"!==n.type&&"scalar"!==n.type})),e=0;e<t.length;){var a=t[e++];if("keyword"===a.type&&"mutation"===a.content){var r=[];if(c(["definition-mutation","punctuation"])&&"("===l(1).content){e+=2;var i=f(/^\($/,/^\)$/);if(-1===i)continue;for(;e<i;e++){var o=l(0);"variable"===o.type&&(b(o,"variable-input"),r.push(o.content))}e=i+1}if(c(["punctuation","property-query"])&&"{"===l(0).content&&(e++,b(l(0),"property-mutation"),r.length>0)){var s=f(/^\{$/,/^\}$/);if(-1===s)continue;for(var u=e;u<s;u++){var p=t[u];"variable"===p.type&&r.indexOf(p.content)>=0&&b(p,"variable-input")}}}}function l(n){return t[e+n]}function c(n,t){t=t||0;for(var e=0;e<n.length;e++){var a=l(e+t);if(!a||a.type!==n[e])return!1}return!0}function f(n,a){for(var r=1,i=e;i<t.length;i++){var o=t[i],s=o.content;if("punctuation"===o.type&&"string"==typeof s)if(n.test(s))r++;else if(a.test(s)&&0==--r)return i}return-1}function b(n,t){var e=n.alias;e?Array.isArray(e)||(n.alias=e=[e]):n.alias=e=[],e.push(t)}})); !function(e){var n=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,t="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",s={pattern:RegExp("(^|[^\\w.])"+t+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[s,{pattern:RegExp("(^|[^\\w.])"+t+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:s.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+t+"[A-Z]\\w*\\b"),lookbehind:!0,inside:s.inside}],keyword:n,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":s,keyword:n,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+t+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:s.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+t+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:s.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!<keyword>)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(/<keyword>/g,(function(){return n.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism); Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},Prism.languages.webmanifest=Prism.languages.json; !function(n){var e=/("|')(?:\\(?:\r\n?|\n|.)|(?!\1)[^\\\r\n])*\1/;n.languages.json5=n.languages.extend("json",{property:[{pattern:RegExp(e.source+"(?=\\s*:)"),greedy:!0},{pattern:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/,alias:"unquoted"}],string:{pattern:e,greedy:!0},number:/[+-]?\b(?:NaN|Infinity|0x[a-fA-F\d]+)\b|[+-]?(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+\b)?/})}(Prism); Prism.languages.jsonp=Prism.languages.extend("json",{punctuation:/[{}[\]();,.]/}),Prism.languages.insertBefore("jsonp","punctuation",{function:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*\()/}); !function(e){function n(e,n){return"___"+e.toUpperCase()+n+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(t,a,r,o){if(t.language===a){var c=t.tokenStack=[];t.code=t.code.replace(r,(function(e){if("function"==typeof o&&!o(e))return e;for(var r,i=c.length;-1!==t.code.indexOf(r=n(a,i));)++i;return c[i]=e,r})),t.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(t,a){if(t.language===a&&t.tokenStack){t.grammar=e.languages[a];var r=0,o=Object.keys(t.tokenStack);!function c(i){for(var u=0;u<i.length&&!(r>=o.length);u++){var g=i[u];if("string"==typeof g||g.content&&"string"==typeof g.content){var l=o[r],s=t.tokenStack[l],f="string"==typeof g?g:g.content,p=n(a,l),k=f.indexOf(p);if(k>-1){++r;var m=f.substring(0,k),d=new e.Token(a,e.tokenize(s,t.grammar),"language-"+a,s),h=f.substring(k+p.length),v=[];m&&v.push.apply(v,c([m])),v.push(d),h&&v.push.apply(v,c([h])),"string"==typeof g?i.splice.apply(i,[u,1].concat(v)):g.content=v}}else g.content&&c(g.content)}return i}(t.tokens)}}}})}(Prism); !function(e){var n=/\$(?:\w[a-z\d]*(?:_[^\x00-\x1F\s"'\\()$]*)?|\{[^}\s"'\\]+\})/i;e.languages.nginx={comment:{pattern:/(^|[\s{};])#.*/,lookbehind:!0,greedy:!0},directive:{pattern:/(^|\s)\w(?:[^;{}"'\\\s]|\\.|"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|\s+(?:#.*(?!.)|(?![#\s])))*?(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:{string:{pattern:/((?:^|[^\\])(?:\\\\)*)(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,lookbehind:!0,greedy:!0,inside:{escape:{pattern:/\\["'\\nrt]/,alias:"entity"},variable:n}},comment:{pattern:/(\s)#.*/,lookbehind:!0,greedy:!0},keyword:{pattern:/^\S+/,greedy:!0},boolean:{pattern:/(\s)(?:off|on)(?!\S)/,lookbehind:!0},number:{pattern:/(\s)\d+[a-z]*(?!\S)/i,lookbehind:!0},variable:n}},punctuation:/[{};]/}}(Prism); !function(e){var a=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,t=[{pattern:/\b(?:false|true)\b/i,alias:"boolean"},{pattern:/(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,greedy:!0,lookbehind:!0},{pattern:/(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,greedy:!0,lookbehind:!0},/\b(?:null)\b/i,/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],i=/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,n=/<?=>|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,s=/[{}\[\](),:;]/;e.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:a,variable:/\$+(?:\w+\b|(?=\{))/,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:"class-name"},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:"function"},keyword:[{pattern:/(\(\s*)\b(?:array|bool|boolean|float|int|integer|object|string)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|never|object|self|static|string|void)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:array(?!\s*\()|bool|float|int|iterable|mixed|object|string|void)\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:false|null)\b|\b(?:false|null)(?=\s*\|)/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|never|new|or|parent|print|private|protected|public|readonly|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s*)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:t,function:{pattern:/(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i,lookbehind:!0,inside:{punctuation:/\\/}},property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:i,operator:n,punctuation:s};var l={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:e.languages.php},r=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:l}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:l}}];e.languages.insertBefore("php","variable",{string:r,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:a,string:r,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:t,number:i,operator:n,punctuation:s}},delimiter:{pattern:/^#\[|\]$/,alias:"punctuation"}}}}),e.hooks.add("before-tokenize",(function(a){/<\?/.test(a.code)&&e.languages["markup-templating"].buildPlaceholders(a,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/g)})),e.hooks.add("after-tokenize",(function(a){e.languages["markup-templating"].tokenizePlaceholders(a,"php")}))}(Prism); Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python; !function(a){var e={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},n=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/,t="(?:[^\\\\-]|"+n.source+")",s=RegExp(t+"-"+t),i={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"};a.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:s,inside:{escape:n,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":e,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:n}},"special-escape":e,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":i}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:n,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":i}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}}}(Prism); !function(e){e.languages.ruby=e.languages.extend("clike",{comment:{pattern:/#.*|^=begin\s[\s\S]*?^=end/m,greedy:!0},"class-name":{pattern:/(\b(?:class|module)\s+|\bcatch\s+\()[\w.\\]+|\b[A-Z_]\w*(?=\s*\.\s*new\b)/,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/,operator:/\.{2,3}|&\.|===|<?=>|[!=]?~|(?:&&|\|\||<<|>>|\*\*|[+\-*/%<>!^&|=])=?|[?:]/,punctuation:/[(){}[\].,;]/}),e.languages.insertBefore("ruby","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}});var n={pattern:/((?:^|[^\\])(?:\\{2})*)#\{(?:[^{}]|\{[^{}]*\})*\}/,lookbehind:!0,inside:{content:{pattern:/^(#\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:e.languages.ruby},delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"}}};delete e.languages.ruby.function;var t="(?:"+["([^a-zA-Z0-9\\s{(\\[<=])(?:(?!\\1)[^\\\\]|\\\\[^])*\\1","\\((?:[^()\\\\]|\\\\[^]|\\((?:[^()\\\\]|\\\\[^])*\\))*\\)","\\{(?:[^{}\\\\]|\\\\[^]|\\{(?:[^{}\\\\]|\\\\[^])*\\})*\\}","\\[(?:[^\\[\\]\\\\]|\\\\[^]|\\[(?:[^\\[\\]\\\\]|\\\\[^])*\\])*\\]","<(?:[^<>\\\\]|\\\\[^]|<(?:[^<>\\\\]|\\\\[^])*>)*>"].join("|")+")",i='(?:"(?:\\\\.|[^"\\\\\r\n])*"|(?:\\b[a-zA-Z_]\\w*|[^\\s\0-\\x7F]+)[?!]?|\\$.)';e.languages.insertBefore("ruby","keyword",{"regex-literal":[{pattern:RegExp("%r"+t+"[egimnosux]{0,6}"),greedy:!0,inside:{interpolation:n,regex:/[\s\S]+/}},{pattern:/(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/,lookbehind:!0,greedy:!0,inside:{interpolation:n,regex:/[\s\S]+/}}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:[{pattern:RegExp("(^|[^:]):"+i),lookbehind:!0,greedy:!0},{pattern:RegExp("([\r\n{(,][ \t]*)"+i+"(?=:(?!:))"),lookbehind:!0,greedy:!0}],"method-definition":{pattern:/(\bdef\s+)\w+(?:\s*\.\s*\w+)?/,lookbehind:!0,inside:{function:/\b\w+$/,keyword:/^self\b/,"class-name":/^\w+/,punctuation:/\./}}}),e.languages.insertBefore("ruby","string",{"string-literal":[{pattern:RegExp("%[qQiIwWs]?"+t),greedy:!0,inside:{interpolation:n,string:/[\s\S]+/}},{pattern:/("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/,greedy:!0,inside:{interpolation:n,string:/[\s\S]+/}},{pattern:/<<[-~]?([a-z_]\w*)[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?[a-z_]\w*|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?/}},interpolation:n,string:/[\s\S]+/}},{pattern:/<<[-~]?'([a-z_]\w*)'[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?'[a-z_]\w*'|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?'|'$/}},string:/[\s\S]+/}}],"command-literal":[{pattern:RegExp("%x"+t),greedy:!0,inside:{interpolation:n,command:{pattern:/[\s\S]+/,alias:"string"}}},{pattern:/`(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|[^\\`#\r\n])*`/,greedy:!0,inside:{interpolation:n,command:{pattern:/[\s\S]+/,alias:"string"}}}]}),delete e.languages.ruby.string,e.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\b/,constant:/\b[A-Z][A-Z0-9_]*(?:[?!]|\b)/}),e.languages.rb=e.languages.ruby}(Prism); Prism.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}; !function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document){var e="line-numbers",n=/\n(?!$)/g,t=Prism.plugins.lineNumbers={getLine:function(n,t){if("PRE"===n.tagName&&n.classList.contains(e)){var i=n.querySelector(".line-numbers-rows");if(i){var r=parseInt(n.getAttribute("data-start"),10)||1,s=r+(i.children.length-1);t<r&&(t=r),t>s&&(t=s);var l=t-r;return i.children[l]}}},resize:function(e){r([e])},assumeViewportIndependence:!0},i=void 0;window.addEventListener("resize",(function(){t.assumeViewportIndependence&&i===window.innerWidth||(i=window.innerWidth,r(Array.prototype.slice.call(document.querySelectorAll("pre.line-numbers"))))})),Prism.hooks.add("complete",(function(t){if(t.code){var i=t.element,s=i.parentNode;if(s&&/pre/i.test(s.nodeName)&&!i.querySelector(".line-numbers-rows")&&Prism.util.isActive(i,e)){i.classList.remove(e),s.classList.add(e);var l,o=t.code.match(n),a=o?o.length+1:1,u=new Array(a+1).join("<span></span>");(l=document.createElement("span")).setAttribute("aria-hidden","true"),l.className="line-numbers-rows",l.innerHTML=u,s.hasAttribute("data-start")&&(s.style.counterReset="linenumber "+(parseInt(s.getAttribute("data-start"),10)-1)),t.element.appendChild(l),r([s]),Prism.hooks.run("line-numbers",t)}}})),Prism.hooks.add("line-numbers",(function(e){e.plugins=e.plugins||{},e.plugins.lineNumbers=!0}))}function r(e){if(0!=(e=e.filter((function(e){var n,t=(n=e,n?window.getComputedStyle?getComputedStyle(n):n.currentStyle||null:null)["white-space"];return"pre-wrap"===t||"pre-line"===t}))).length){var t=e.map((function(e){var t=e.querySelector("code"),i=e.querySelector(".line-numbers-rows");if(t&&i){var r=e.querySelector(".line-numbers-sizer"),s=t.textContent.split(n);r||((r=document.createElement("span")).className="line-numbers-sizer",t.appendChild(r)),r.innerHTML="0",r.style.display="block";var l=r.getBoundingClientRect().height;return r.innerHTML="",{element:e,lines:s,lineHeights:[],oneLinerHeight:l,sizer:r}}})).filter(Boolean);t.forEach((function(e){var n=e.sizer,t=e.lines,i=e.lineHeights,r=e.oneLinerHeight;i[t.length-1]=void 0,t.forEach((function(e,t){if(e&&e.length>1){var s=n.appendChild(document.createElement("span"));s.style.display="block",s.textContent=e}else i[t]=r}))})),t.forEach((function(e){for(var n=e.sizer,t=e.lineHeights,i=0,r=0;r<t.length;r++)void 0===t[r]&&(t[r]=n.children[i++].getBoundingClientRect().height)})),t.forEach((function(e){var n=e.sizer,t=e.element.querySelector(".line-numbers-rows");n.style.display="none",n.innerHTML="",e.lineHeights.forEach((function(e,n){t.children[n].style.height=e+"px"}))}))}}}(); !function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document){var e=[],t={},n=function(){};Prism.plugins.toolbar={};var a=Prism.plugins.toolbar.registerButton=function(n,a){var r;r="function"==typeof a?a:function(e){var t;return"function"==typeof a.onClick?((t=document.createElement("button")).type="button",t.addEventListener("click",(function(){a.onClick.call(this,e)}))):"string"==typeof a.url?(t=document.createElement("a")).href=a.url:t=document.createElement("span"),a.className&&t.classList.add(a.className),t.textContent=a.text,t},n in t?console.warn('There is a button with the key "'+n+'" registered already.'):e.push(t[n]=r)},r=Prism.plugins.toolbar.hook=function(a){var r=a.element.parentNode;if(r&&/pre/i.test(r.nodeName)&&!r.parentNode.classList.contains("code-toolbar")){var o=document.createElement("div");o.classList.add("code-toolbar"),r.parentNode.insertBefore(o,r),o.appendChild(r);var i=document.createElement("div");i.classList.add("toolbar");var l=e,d=function(e){for(;e;){var t=e.getAttribute("data-toolbar-order");if(null!=t)return(t=t.trim()).length?t.split(/\s*,\s*/g):[];e=e.parentElement}}(a.element);d&&(l=d.map((function(e){return t[e]||n}))),l.forEach((function(e){var t=e(a);if(t){var n=document.createElement("div");n.classList.add("toolbar-item"),n.appendChild(t),i.appendChild(n)}})),o.appendChild(i)}};a("label",(function(e){var t=e.element.parentNode;if(t&&/pre/i.test(t.nodeName)&&t.hasAttribute("data-label")){var n,a,r=t.getAttribute("data-label");try{a=document.querySelector("template#"+r)}catch(e){}return a?n=a.content:(t.hasAttribute("data-url")?(n=document.createElement("a")).href=t.getAttribute("data-url"):n=document.createElement("span"),n.textContent=r),n}})),Prism.hooks.add("complete",r)}}(); !function(){function t(t){var e=document.createElement("textarea");e.value=t.getText(),e.style.top="0",e.style.left="0",e.style.position="fixed",document.body.appendChild(e),e.focus(),e.select();try{var o=document.execCommand("copy");setTimeout((function(){o?t.success():t.error()}),1)}catch(e){setTimeout((function(){t.error(e)}),1)}document.body.removeChild(e)}"undefined"!=typeof Prism&&"undefined"!=typeof document&&(Prism.plugins.toolbar?Prism.plugins.toolbar.registerButton("copy-to-clipboard",(function(e){var o=e.element,n=function(t){var e={copy:"Copy","copy-error":"Press Ctrl+C to copy","copy-success":"Copied!","copy-timeout":5e3};for(var o in e){for(var n="data-prismjs-"+o,c=t;c&&!c.hasAttribute(n);)c=c.parentElement;c&&(e[o]=c.getAttribute(n))}return e}(o),c=document.createElement("button");c.className="copy-to-clipboard-button",c.setAttribute("type","button");var r=document.createElement("span");return c.appendChild(r),u("copy"),function(e,o){e.addEventListener("click",(function(){!function(e){navigator.clipboard?navigator.clipboard.writeText(e.getText()).then(e.success,(function(){t(e)})):t(e)}(o)}))}(c,{getText:function(){return o.textContent},success:function(){u("copy-success"),i()},error:function(){u("copy-error"),setTimeout((function(){!function(t){window.getSelection().selectAllChildren(t)}(o)}),1),i()}}),c;function i(){setTimeout((function(){u("copy")}),n["copy-timeout"])}function u(t){r.textContent=n[t],c.setAttribute("data-copy-state",t)}})):console.warn("Copy to Clipboard plugin loaded before Toolbar plugin."))}(); (self.webpackChunk=self.webpackChunk||[]).push([[1137],{2768:function(){App.init((function(){document.querySelectorAll(".is-style-code-highlighter").forEach((function(e){-1===e.classList.value.search("language-")&&e.classList.add("language-javascript"),e.classList.add("line-numbers"),e.parentNode.classList.add("line-numbers")})),Prism.highlightAll(document.querySelector("main.main"))}))}},function(e){var s;s=2768,e(e.s=s)}]); (self.webpackChunk=self.webpackChunk||[]).push([[9772],{2540:function(){App.init((function(){document.querySelectorAll(".single-support-entry img:not(.inline-img)").forEach((function(e){e.classList.contains("unpretty")||(e.parentElement.getAttribute("data-target")?e.parentElement.setAttribute("open-in-lb",e.getAttribute("src")):e.complete&&e.naturalWidth>0?App.lightbox.createLightboxLink(e,!1):e.addEventListener("load",(function(){App.lightbox.createLightboxLink(e,!0)})))})),document.querySelectorAll(".entry-content h2, .entry-content h3").forEach((function(e){null==e.getAttribute("id")&&e.setAttribute("id",function(e){e=(e=e.replace(/^\s+|\s+$/g,"")).toLowerCase();for(var t="åàáãäâèéëêìíïîòóöôùúüûñç·/_,:;",n=0,o=t.length;n<o;n++)e=e.replace(new RegExp(t.charAt(n),"g"),"aaaaaaeeeeiiiioooouuuunc------".charAt(n));return e.replace(/[^a-z0-9 -]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+/,"").replace(/-+$/,"")}(e.textContent))}));var e=document.querySelector("aside.toc");void 0!==e&&null!=e&&tocbot.init({tocSelector:"#toc-content",contentSelector:".entry-content",headingSelector:"h2",hasInnerContainers:!0,headingsOffset:80,scrollSmoothOffset:80,collapseDepth:1,scrollSmooth:!1})}))}},function(e){var t;t=2540,e(e.s=t)}]); (self.webpackChunk=self.webpackChunk||[]).push([[1815],{320:function(){App.extend("lightbox",{lightboxClose:new Event("lightboxClose"),body:document.querySelector("body"),modalOutClicks:function(e){"BODY"==e.target.tagName&&(document.removeEventListener("click",this.modalOutClicks,{modal:!0}),window.dispatchEvent(App.lightbox.lightboxClose))},appendImage:function(e,t){var n=new Image;n.src=e,n.addEventListener("load",(function(){document.body.appendChild(n);var e=n.offsetWidth;document.body.removeChild(n),n.style.width=e+"px",t.querySelector("figure").classList.add("image"),t.querySelector("figure").appendChild(n),t.querySelector(".loading").remove()}))},appendVideo:function(e,t,n,o){var i=new URLSearchParams([]);i.append("autoplay","1"),i.append("start",o);var l=document.createElement("iframe");if(l.width=728,l.height=504,l.title=this.playLabel,l.allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",l.allowFullscreen=!0,"youtube"==n)l.src="https://www.youtube-nocookie.com/embed/".concat(encodeURIComponent(e),"?").concat(i.toString());else{var c=o?"#t=".concat(o,"s"):"";l.src="https://player.vimeo.com/video/".concat(encodeURIComponent(e),"?").concat(i.toString()).concat(c)}t.querySelector("figure").classList.add("video"),t.querySelector("figure").appendChild(l),l.focus(),t.querySelector(".loading").remove()},appendContent:function(e,t){var n=document.getElementsByClassName(e)[0];if(n){var o,i=document.createElement("div"),l=t.querySelector("figure");i.classList.add("temp-location"),n.parentNode.insertBefore(i,n.nextSibling),l.classList.add("custom-content"),l.appendChild(n),null===(o=l.querySelector(".".concat(e," style")))||void 0===o||o.remove(),l.querySelector(".".concat(e)).style.display="block",t.querySelector(".loading").remove()}},createLightbox:function(e){var t=this;e.addEventListener("click",(function(n){n.preventDefault();var o=document.querySelector("body"),i=e.getAttribute("open-in-lb"),l=e.getAttribute("video-lb"),c=e.getAttribute("time-lb"),r=e.getAttribute("class-lb");if(void 0!==i||"undefined"!=r){var a=document.createElement("div");a.setAttribute("class","invicti-lightbox"),a.innerHTML='\n <button class="lightbox-close"><svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path fill-rule="evenodd" clip-rule="evenodd" d="M15 13.5858L1.41422 0L0 1.41422L13.5858 15L0.150757 28.435L1.56497 29.8492L15 16.4142L28.2843 29.6985L29.6985 28.2843L16.4142 15L29.8492 1.56497L28.435 0.150757L15 13.5858Z" fill="#591769"></path>\n </svg></button>\n <figure><span class="loading"></span></figure>\n ',o.appendChild(a),l?t.appendVideo(i,a,l,c):r?t.appendContent(r,a):t.appendImage(i,a),setTimeout((function(){return a.classList.add("active")}),10);var d=a.querySelector(".lightbox-close");document.addEventListener("click",t.modalOutClicks,{modal:!0}),o.classList.add("invicti-lightbox-active"),d.addEventListener("click",(function(){window.dispatchEvent(t.lightboxClose)}))}})),e.addEventListener("mouseover",(function(){if(void 0===e.getAttribute("video-lb")){var t=e.getAttribute("open-in-lb");if(!e.classList.contains("prefetched")){e.classList.add("prefetched");var n=document.createElement("link");n.rel="prefetch",n.href=t,document.head.append(n)}}}))},createLightboxLink:function(e,t){var n=document.createElement("a");n.href=e.getAttribute("src"),n.setAttribute("open-in-lb",e.getAttribute("src")),(null!==e.getAttribute("width")&&e.getAttribute("width")<e.naturalWidth||e.naturalWidth>900)&&(e.parentNode.insertBefore(n,e),n.appendChild(e),t&&App.lightbox.createLightbox(n))},init:function(){var e=App.lightbox,t=document.querySelectorAll("[open-in-lb]");document.body.addEventListener("keydown",(function(t){"Escape"==t.key&&window.dispatchEvent(e.lightboxClose)})),window.addEventListener("lightboxClose",(function(){var t=document.querySelector(".invicti-lightbox");null==t||t.classList.remove("active"),e.body.classList.remove("invicti-lightbox-active");var n=document.querySelector(".temp-location");if(n){var o,i=t.querySelector(".custom-content").childNodes[0];i.style.display="none",n.parentNode.insertBefore(i,n),n.remove(),null==t||null===(o=t.parentNode)||void 0===o||o.removeChild(t)}else setTimeout((function(){var e;return null==t||null===(e=t.parentNode)||void 0===e?void 0:e.removeChild(t)}),300)})),t.forEach((function(t){e.createLightbox(t)}))}}),App.init(App.lightbox.init)}},function(e){var t;t=320,e(e.s=t)}]); function At(n,t){for(var e=0;e<t.length;e++){var i=t[e];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(n,i.key,i)}}var n,t;n=this,t=function(){"use strict";var n="splide",t="data-"+n;function e(n){n.length=0}function i(n){return!s(n)&&"object"==typeof n}function o(n){return Array.isArray(n)}function r(n){return"string"==typeof n}function u(n){return void 0===n}function s(n){return null===n}function c(n){return n instanceof HTMLElement}function a(n){return o(n)?n:[n]}function f(n,t){a(n).forEach(t)}function l(n,t){return-1<n.indexOf(t)}function d(n,t){return n.push.apply(n,a(t)),n}var p=Array.prototype;function h(n,t,e){return p.slice.call(n,t,e)}function g(n,t,e){n&&f(t,(function(t){t&&n.classList[e?"add":"remove"](t)}))}function v(n,t){g(n,r(t)?t.split(" "):t,!0)}function m(n,t){f(t,n.appendChild.bind(n))}function y(n,t){f(n,(function(n){var e=t.parentNode;e&&e.insertBefore(n,t)}))}function b(n,t){return c(n)&&(n.msMatchesSelector||n.matches).call(n,t)}function w(n,t){return n?h(n.children).filter((function(n){return b(n,t)})):[]}function x(n,t){return t?w(n,t)[0]:n.firstElementChild}function E(n,t,e){if(n)for(var i=Object.keys(n),o=(i=e?i.reverse():i,0);o<i.length;o++){var r=i[o];if("__proto__"!==r&&!1===t(n[r],r))break}return n}function S(n){return h(arguments,1).forEach((function(t){E(t,(function(e,i){n[i]=t[i]}))})),n}function P(n,t){return E(t,(function(t,e){o(t)?n[e]=t.slice():i(t)?n[e]=P(i(n[e])?n[e]:{},t):n[e]=t})),n}function k(n,t){n&&f(t,(function(t){n.removeAttribute(t)}))}function _(n,t,e){i(t)?E(t,(function(t,e){_(n,e,t)})):s(e)?k(n,t):n.setAttribute(t,String(e))}function A(n,t,e){return n=document.createElement(n),t&&(r(t)?v:_)(n,t),e&&m(e,n),n}function L(n,t,e){if(u(e))return getComputedStyle(n)[t];s(e)||(n=n.style)[t]!==(e=""+e)&&(n[t]=e)}function z(n,t){L(n,"display",t)}function C(n,t){return n.getAttribute(t)}function D(n,t){return n&&n.classList.contains(t)}function M(n){return n.getBoundingClientRect()}function I(n){f(n,(function(n){n&&n.parentNode&&n.parentNode.removeChild(n)}))}function N(n){return x((new DOMParser).parseFromString(n,"text/html").body)}function T(n,t){n.preventDefault(),t&&(n.stopPropagation(),n.stopImmediatePropagation())}function O(n,t){return n&&n.querySelector(t)}function R(n,t){return h(n.querySelectorAll(t))}function F(n,t){g(n,t,!1)}function j(n){return r(n)?n:n?n+"px":""}function W(t,e){if(void 0===e&&(e=""),!t)throw new Error("["+n+"] "+e)}function B(n){setTimeout(n)}function X(){}function H(n){return requestAnimationFrame(n)}var G=Math.min,Y=Math.max,q=Math.floor,U=Math.ceil,J=Math.abs;function K(n,t,e,i){var o=G(t,e);e=Y(t,e);return i?o<n&&n<e:o<=n&&n<=e}function Q(n,t,e){var i=G(t,e);e=Y(t,e);return G(Y(i,n),e)}function V(n){return(0<n)-(n<0)}function Z(n,t){return f(t,(function(t){n=n.replace("%s",""+t)})),n}function $(n){return n<10?"0"+n:""+n}var nn={};var tn="mounted",en="move",on="moved",rn="shifted",un="click",sn="slide:keydown",cn="refresh",an="updated",fn="resize",ln="resized",dn="repositioned",pn="scrolled",hn="destroy",gn="navigation:mounted",vn="lazyload:loaded";function mn(n){var t=n.event,e={},i=[];function o(n,t,e){r(n,t,(function(n,t){i=i.filter((function(i){return!!(i[0]!==n||i[1]!==t||e&&i[2]!==e)||(n.removeEventListener(t,i[2],i[3]),!1)}))}))}function r(n,t,e){f(n,(function(n){n&&t.split(" ").forEach(e.bind(null,n))}))}function u(){i=i.filter((function(n){return o(n[0],n[1])})),t.offBy(e)}return t.on(hn,u,e),{on:function(n,i,o){t.on(n,i,e,o)},off:function(n){t.off(n,e)},emit:t.emit,bind:function(n,t,e,o){r(n,t,(function(n,t){i.push([n,t,e,o]),n.addEventListener(t,e,o)}))},unbind:o,destroy:u}}function yn(n,t,e,i){var o,r,u=Date.now,s=0,c=!0,a=0;function f(){if(!c){var r=u()-o;if(n<=r?(s=1,o=u()):s=r/n,e&&e(s),1===s&&(t(),i&&++a>=i))return l();H(f)}}function l(){c=!0}function d(){cancelAnimationFrame(r),c=!(r=s=0)}return{start:function(t){t||d(),o=u()-(t?s*n:0),c=!1,H(f)},rewind:function(){o=u(),s=0,e&&e(s)},pause:l,cancel:d,set:function(t){n=t},isPaused:function(){return c}}}function bn(n,t){var e;return function(){var i=arguments,o=this;e||(e=yn(t||0,(function(){n.apply(o,i),e=null}),null,1)).start()}}var wn={marginRight:["marginBottom","marginLeft"],autoWidth:["autoHeight"],fixedWidth:["fixedHeight"],paddingLeft:["paddingTop","paddingRight"],paddingRight:["paddingBottom","paddingLeft"],width:["height"],left:["top","right"],right:["bottom","left"],x:["y"],X:["Y"],Y:["X"],ArrowLeft:["ArrowUp","ArrowRight"],ArrowRight:["ArrowDown","ArrowLeft"]},xn=n,En=n+"__slide",Sn=En+"--clone",Pn=n+"__arrows",kn=n+"__arrow",_n=kn+"--prev",An=kn+"--next",Ln=n+"__pagination",zn=n+"__progress",Cn="is-active",Dn="is-prev",Mn="is-next",In="is-visible",Nn="is-loading",Tn=[Cn,In,Dn,Mn,Nn],On="role",Rn="aria-controls",Fn="aria-current",jn="aria-label",Wn="aria-hidden",Bn="tabindex",Xn="aria-orientation",Hn=[On,Rn,Fn,jn,Wn,Xn,Bn,"disabled"],Gn="slide",Yn="loop",qn="fade";var Un={passive:!1,capture:!0},Jn="touchmove mousemove",Kn="touchend touchcancel mouseup",Qn=["Left","Right","Up","Down"],Vn="keydown",Zn=t+"-lazy",$n=Zn+"-srcset",nt=[" ","Enter","Spacebar"],tt=Object.freeze({__proto__:null,Options:function(n,e,i){var o,r,u,s=bn(a);function c(n){n&&removeEventListener("resize",s)}function a(){var t;(t=(t=function(n){return n[1].matches},h(r).filter(t)[0]||[]))[0]!==u&&function(t){(t=i.breakpoints[t]||o).destroy?(n.options=o,n.destroy("completely"===t.destroy)):(n.state.is(5)&&(c(!0),n.mount()),n.options=t)}(u=t[0])}return{setup:function(){try{P(i,JSON.parse(C(n.root,t)))}catch(u){W(!1,u.message)}o=P({},i);var e,u=i.breakpoints;u&&(e="min"===i.mediaQuery,r=Object.keys(u).sort((function(n,t){return e?+t-+n:+n-+t})).map((function(n){return[n,matchMedia("("+(e?"min":"max")+"-width:"+n+"px)")]})),a())},mount:function(){r&&addEventListener("resize",s)},destroy:c}},Direction:function(n,t,e){return{resolve:function(n,t){var i=e.direction;return wn[n]["rtl"!==i||t?"ttb"===i?0:-1:1]||n},orient:function(n){return n*("rtl"===e.direction?1:-1)}}},Elements:function(t,i,o){var r,u,s,c,a=mn(t).on,f=t.root,l={},p=[];function h(){var t;!function(){u=x(f,".splide__slider"),s=O(f,".splide__track"),c=x(s,".splide__list"),W(s&&c,"A track/list element is missing."),d(p,w(c,"."+En+":not(."+Sn+")"));var n=b(".splide__autoplay"),t=b("."+Pn);S(l,{root:f,slider:u,track:s,list:c,slides:p,arrows:t,autoplay:n,prev:O(t,"."+_n),next:O(t,"."+An),bar:O(b("."+zn),".splide__progress__bar"),play:O(n,".splide__play"),pause:O(n,".splide__pause")})}(),t=f.id||function(n){return""+n+$(nn[n]=(nn[n]||0)+1)}(n),f.id=t,s.id=s.id||t+"-track",c.id=c.id||t+"-list",v(f,r=E())}function g(){[f,s,c].forEach((function(n){k(n,"style")})),e(p),F(f,r)}function m(){g(),h()}function y(){F(f,r),v(f,r=E())}function b(n){return x(f,n)||x(u,n)}function E(){return[xn+"--"+o.type,xn+"--"+o.direction,o.drag&&xn+"--draggable",o.isNavigation&&xn+"--nav",Cn]}return S(l,{setup:h,mount:function(){a(cn,m,8),a(an,y)},destroy:g})},Slides:function(n,t,i){var o=mn(n),u=o.on,s=o.emit,d=o.bind,p=(o=t.Elements).slides,h=o.list,w=[];function E(){p.forEach((function(n,t){A(n,t,-1)}))}function S(){T((function(n){n.destroy()})),e(w)}function P(){S(),E()}function A(t,e,i){(t=function(n,t,e,i){var o,r=mn(n),u=r.on,s=r.emit,c=r.bind,a=r.destroy,f=n.Components,l=n.root,d=n.options,p=d.isNavigation,h=d.updateOnMove,v=f.Direction.resolve,m=C(i,"style"),y=-1<e,b=x(i,".splide__slide__container"),w=d.focusableNodes&&R(i,d.focusableNodes);function E(){var o=y?e:t,r=Z(d.i18n.slideX,o+1);o=n.splides.map((function(n){return n.splide.root.id})).join(" "),_(i,jn,r),_(i,Rn,o),_(i,On,"menuitem"),A(z())}function S(){o||P()}function P(){var e;o||(e=n.index,A(z()),function(n){var t=!n&&(!z()||y);_(i,Wn,t||null),_(i,Bn,!t&&d.slideFocus?0:null),w&&w.forEach((function(n){_(n,Bn,t?-1:null)})),n!==D(i,In)&&(g(i,In,n),s(n?"visible":"hidden",I))}(function(){if(n.is(qn))return z();var t=M(f.Elements.track),e=M(i),o=v("left"),r=v("right");return q(t[o])<=U(e[o])&&q(e[r])<=U(t[r])}()),g(i,Dn,t===e-1),g(i,Mn,t===e+1))}function A(n){n!==D(i,Cn)&&(g(i,Cn,n),p&&_(i,Fn,n||null),s(n?"active":"inactive",I))}function z(){var i=n.index;return i===t||d.cloneStatus&&i===e}var I={index:t,slideIndex:e,slide:i,container:b,isClone:y,mount:function(){y||(i.id=l.id+"-slide"+$(t+1)),c(i,"click keydown",(function(n){s("click"===n.type?un:sn,I,n)})),u([cn,dn,rn,on,pn],P),u(gn,E),h&&u(en,S)},destroy:function(){o=!0,a(),F(i,Tn),k(i,Hn),_(i,"style",m)},update:P,style:function(n,t,e){L(e&&b||i,n,t)},isWithin:function(e,i){return e=J(e-t),(e=y||!d.rewind&&!n.is(Yn)?e:G(e,n.length-e))<=i}};return I}(n,e,i,t)).mount(),w.push(t)}function z(n){return n?O((function(n){return!n.isClone})):w}function T(n,t){z(t).forEach(n)}function O(n){return w.filter("function"==typeof n?n:function(t){return r(n)?b(t.slide,n):l(a(n),t.index)})}return{mount:function(){E(),u(cn,P),u([tn,cn],(function(){w.sort((function(n,t){return n.index-t.index}))}))},destroy:S,update:function(){T((function(n){n.update()}))},register:A,get:z,getIn:function(n){var e=t.Controller,o=e.toIndex(n),r=e.hasFocus()?1:i.perPage;return O((function(n){return K(n.index,o,o+r-1)}))},getAt:function(n){return O(n)[0]},add:function(n,t){f(n,(function(n){var e,o,u;c(n=r(n)?N(n):n)&&((e=p[t])?y(n,e):m(h,n),v(n,i.classes.slide),n=n,o=s.bind(null,fn),n=R(n,"img"),(u=n.length)?n.forEach((function(n){d(n,"load error",(function(){--u||o()}))})):o())})),s(cn)},remove:function(n){I(O(n).map((function(n){return n.slide}))),s(cn)},forEach:T,filter:O,style:function(n,t,e){T((function(i){i.style(n,t,e)}))},getLength:function(n){return(n?p:w).length},isEnough:function(){return w.length>i.perPage}}},Layout:function(n,t,e){var o,r,u=mn(n),s=u.on,c=u.bind,a=u.emit,f=t.Slides,l=t.Direction.resolve,d=(t=t.Elements).root,p=t.track,h=t.list,g=f.getAt;function v(){r=null,o="ttb"===e.direction,L(d,"maxWidth",j(e.width)),L(p,l("paddingLeft"),y(!1)),L(p,l("paddingRight"),y(!0)),m()}function m(){var n=M(d);r&&r.width===n.width&&r.height===n.height||(L(p,"height",function(){var n="";return o&&(W(n=b(),"height or heightRatio is missing."),n="calc("+n+" - "+y(!1)+" - "+y(!0)+")"),n}()),f.style(l("marginRight"),j(e.gap)),f.style("width",(e.autoWidth?"":j(e.fixedWidth)||(o?"":w()))||null),f.style("height",j(e.fixedHeight)||(o?e.autoHeight?"":w():b())||null,!0),r=n,a(ln))}function y(n){var t=e.padding;n=l(n?"right":"left");return t&&j(t[n]||(i(t)?0:t))||"0px"}function b(){return j(e.height||M(h).width*e.heightRatio)}function w(){var n=j(e.gap);return"calc((100%"+(n&&" + "+n)+")/"+(e.perPage||1)+(n&&" - "+n)+")"}function x(n,t){var e=g(n);return e?(n=M(e.slide)[l("right")],e=M(h)[l("left")],J(n-e)+(t?0:E())):0}function E(){var n=g(0);return n&&parseFloat(L(n.slide,l("marginRight")))||0}return{mount:function(){v(),c(window,"resize load",bn(a.bind(this,fn))),s([an,cn],v),s(fn,m)},listSize:function(){return M(h)[l("width")]},slideSize:function(n,t){return(n=g(n||0))?M(n.slide)[l("width")]+(t?0:E()):0},sliderSize:function(){return x(n.length-1,!0)-x(-1,!0)},totalSize:x,getPadding:function(n){return parseFloat(L(p,l("padding"+(n?"Right":"Left"))))||0}}},Clones:function(n,t,i){var o,u=mn(n),s=u.on,c=u.emit,a=t.Elements,f=t.Slides,l=t.Direction.resolve,p=[];function h(){(o=x())&&(function(t){var e=f.get().slice(),o=e.length;if(o){for(;e.length<t;)d(e,e);d(e.slice(-t),e.slice(0,t)).forEach((function(r,u){var s=u<t,c=function(t,e){return v(t=t.cloneNode(!0),i.classes.clone),t.id=n.root.id+"-clone"+$(e+1),t}(r.slide,u);s?y(c,e[0].slide):m(a.list,c),d(p,c),f.register(c,u-t+(s?0:o),r.index)}))}}(o),c(fn))}function g(){I(p),e(p)}function b(){g(),h()}function w(){o<x()&&c(cn)}function x(){var t,e,o=i.clones;return n.is(Yn)?o||(t=a.list,r(e=i[l("fixedWidth")])&&(e=M(t=A("div",{style:"width: "+e+"; position: absolute;"},t)).width,I(t)),o=((e=e)&&U(M(a.track)[l("width")]/e)||i[l("autoWidth")]&&n.length||i.perPage)*(i.drag?(i.flickMaxPages||1)+1:2)):o=0,o}return{mount:function(){h(),s(cn,b),s([an,fn],w)},destroy:g}},Move:function(n,t,e){var i,o=mn(n),r=o.on,s=o.emit,c=(o=t.Layout).slideSize,a=o.getPadding,f=o.totalSize,l=o.listSize,d=o.sliderSize,p=(o=t.Direction).resolve,h=o.orient,g=(o=t.Elements).list,v=o.track;function m(){P()||(t.Scroll.cancel(),y(n.index),s(dn))}function y(n){b(x(n,!0))}function b(t,e){n.is(qn)||(e=e?t:function(t){var e,i;return n.is(Yn)&&(i=h(t-E()),e=_(!1,t)&&i<0,i=_(!0,t)&&0<i,(e||i)&&(t=w(t,i))),t}(t),g.style.transform="translate"+p("X")+"("+e+"px)",t!==e&&s(rn))}function w(n,t){var e=n-S(t),i=d();return n-h(i*(U(J(e)/i)||1))*(t?1:-1)}function x(t,i){var o=h(f(t-1)-(o=t,"center"===(t=e.focus)?(l()-c(o,!0))/2:+t*c(o)||0));return i?function(t){return e.trimSpace&&n.is(Gn)&&(t=Q(t,0,h(d()-l()))),t}(o):o}function E(){var n=p("left");return M(g)[n]-M(v)[n]+h(a(!1))}function S(n){return x(n?t.Controller.getEnd():0,!!e.trimSpace)}function P(){return n.state.is(4)&&e.waitForTransition}function _(n,t){t=u(t)?E():t;var e=!0!==n&&h(t)<h(S(!1));t=!1!==n&&h(t)>h(S(!0));return e||t}return{mount:function(){i=t.Transition,r([tn,ln,an,cn],m)},destroy:function(){k(g,"style")},move:function(o,r,u,c){var a,f;P()||(a=n.state.set,f=E(),o!==r&&(i.cancel(),b(w(f,r<o),!0)),a(4),s(en,r,u,o),i.start(r,(function(){a(3),s(on,r,u,o),"move"===e.trimSpace&&o!==u&&f===E()?t.Controller.go(u<o?">":"<",!1,c):c&&c()})))},jump:y,translate:b,shift:w,cancel:function(){b(E()),i.cancel()},toIndex:function(n){for(var e=t.Slides.get(),i=0,o=1/0,r=0;r<e.length;r++){var u=e[r].index,s=J(x(u,!0)-n);if(!(s<=o))break;o=s,i=u}return i},toPosition:x,getPosition:E,getLimit:S,isBusy:P,exceededLimit:_}},Controller:function(n,t,e){var i,o,s,c=mn(n).on,a=t.Move,f=a.getPosition,l=a.getLimit,d=t.Slides,p=d.isEnough,h=d.getLength,g=n.is(Yn),v=n.is(Gn),m=e.start||0,y=m;function b(){i=h(!0),o=e.perMove,s=e.perPage,m=Q(m,0,i-1)}function w(n,e,i,o,r){var u=e?n:z(n);t.Scroll.scroll(e||i?a.toPosition(u,!0):n,o,(function(){C(a.toIndex(a.getPosition())),r&&r()}))}function x(n){return S(!1,n)}function E(n){return S(!0,n)}function S(n,t){var e,i,r=o||(D()?1:s),u=P(m+r*(n?-1:1),m);return-1!==u||!v||(e=f(),i=l(!n),r=1,J(e-i)<r)?t?u:_(u):n?0:k()}function P(n,t,r){var u;return p()?(u=k(),n<0||u<n?n=K(0,n,t,!0)||K(u,t,n,!0)?A(L(n)):g?o||D()?n:n<0?-(i%s||s):i:e.rewind?n<0?u:0:-1:r||n===t||(n=o?n:A(L(t)+(n<t?-1:1)))):n=-1,n}function k(){var n=i-s;return(D()||g&&o)&&(n=i-1),Y(n,0)}function _(n){return g?p()?n%i+(n<0?i:0):-1:n}function A(n){return Q(D()?n:s*n,0,k())}function L(n){return D()||(n=K(n,i-s,i-1)?i-1:n,n=q(n/s)),n}function z(n){return n=a.toIndex(n),v?Q(n,0,k()):n}function C(n){n!==m&&(y=m,m=n)}function D(){return!u(e.focus)||e.isNavigation}return{mount:function(){b(),c([an,cn],b,9)},go:function(n,t,i){var o=function(n){var t,e,i=m;return r(n)?(t=(e=n.match(/([+\-<>])(\d+)?/)||[])[1],e=e[2],"+"===t||"-"===t?i=P(m+ +(""+t+(+e||1)),m,!0):">"===t?i=e?A(+e):x(!0):"<"===t&&(i=E(!0))):i=g?n:Q(n,0,k()),i}(n);e.useScroll?w(o,!0,!0,e.speed,i):-1<(n=_(o))&&!a.isBusy()&&(t||n!==m)&&(C(n),a.move(o,n,y,i))},scroll:w,getNext:x,getPrev:E,getAdjacent:S,getEnd:k,setIndex:C,getIndex:function(n){return n?y:m},toIndex:A,toPage:L,toDest:z,hasFocus:D}},Arrows:function(n,t,e){var i,o=mn(n),r=o.on,u=o.bind,s=o.emit,c=e.classes,a=e.i18n,f=t.Elements,l=t.Controller,d=f.arrows,p=f.prev,h=f.next,g={};function v(){var t,o;e.arrows&&(p&&h||(d=A("div",c.arrows),p=b(!0),h=b(!1),i=!0,m(d,[p,h]),y(d,x("slider"===e.arrows&&f.slider||n.root)))),p&&h&&(g.prev?z(d,!1===e.arrows?"none":""):(t=f.track.id,_(p,Rn,t),_(h,Rn,t),g.prev=p,g.next=h,o=l.go,r([tn,on,an,cn,pn],w),u(h,"click",(function(){o(">",!0)})),u(p,"click",(function(){o("<",!0)})),s("arrows:mounted",p,h)))}function b(n){return N('<button class="'+c.arrow+" "+(n?c.prev:c.next)+'" type="button"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" width="40" height="40"><path d="'+(e.arrowPath||"m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z")+'" />')}function w(){var t=n.index,e=l.getPrev(),i=l.getNext(),o=-1<e&&t<e?a.last:a.prev;t=-1<i&&i<t?a.first:a.next;p.disabled=e<0,h.disabled=i<0,_(p,jn,o),_(h,jn,t),s("arrows:updated",p,h,e,i)}return{arrows:g,mount:function(){v(),r(an,v)},destroy:function(){i?I(d):(k(p,Hn),k(h,Hn))}}},Autoplay:function(n,t,e){var i,o,r,u=mn(n),s=u.on,c=u.bind,a=u.emit,f=yn(e.interval,n.go.bind(n,">"),(function(n){var t=d.bar;t&&L(t,"width",100*n+"%"),a("autoplay:playing",n)})),l=f.isPaused,d=t.Elements;function p(n){var t=n?"pause":"play",i=d[t];i&&(_(i,Rn,d.track.id),_(i,jn,e.i18n[t]),c(i,"click",n?g:h))}function h(){l()&&t.Slides.isEnough()&&(f.start(!e.resetProgress),o=i=r=!1,a("autoplay:play"))}function g(n){void 0===n&&(n=!0),l()||(f.pause(),a("autoplay:pause")),r=n}function v(){r||(i||o?g(!1):h())}function m(){var i=t.Slides.getAt(n.index);f.set(i&&+C(i.slide,"data-splide-interval")||e.interval)}return{mount:function(){var n=e.autoplay;n&&(p(!0),p(!1),function(){var n=d.root;e.pauseOnHover&&c(n,"mouseenter mouseleave",(function(n){i="mouseenter"===n.type,v()})),e.pauseOnFocus&&c(n,"focusin focusout",(function(n){o="focusin"===n.type,v()})),s([en,"scroll",cn],f.rewind),s(en,m)}(),"pause"!==n&&h())},destroy:f.cancel,play:h,pause:g,isPaused:l}},Cover:function(n,t,e){var i=mn(n).on;function o(n){t.Slides.forEach((function(t){var e=x(t.container||t.slide,"img");e&&e.src&&r(n,e,t)}))}function r(n,t,e){e.style("background",n?'center/cover no-repeat url("'+t.src+'")':"",!0),z(t,n?"none":"")}return{mount:function(){e.cover&&(i(vn,(function(n,t){r(!0,n,t)})),i([tn,an,cn],o.bind(null,!0)))},destroy:function(){o(!1)}}},Scroll:function(n,t,e){var i,o,r=mn(n),u=r.on,s=r.emit,c=t.Move,a=c.getPosition,f=c.getLimit,l=c.exceededLimit;function d(){var t=a(),e=c.toIndex(t);K(e,0,n.length-1)||c.translate(c.shift(t,0<e),!0),o&&o(),s(pn)}function p(){i&&i.cancel()}function h(){i&&!i.isPaused()&&(p(),d())}return{mount:function(){u(en,p),u([an,cn],h)},destroy:p,scroll:function t(r,u,h,g){var v,m=a(),y=1;u=u||(v=J(r-m),Y(v/1.5,800)),o=h,p(),i=yn(u,d,(function(i){var o=a(),u=(m+(r-m)*(u=i,(i=e.easingFunc)?i(u):1-Math.pow(1-u,4))-a())*y;c.translate(o+u),n.is(Gn)&&!g&&l()&&(y*=.6,J(u)<10&&(u=l(!1),t(f(!u),600,null,!0)))}),1),s("scroll"),i.start()},cancel:h}},Drag:function(n,t,e){var o,r,u,s,c,a,f,l,d,p=mn(n),h=p.on,g=p.emit,v=p.bind,m=p.unbind,y=t.Move,w=t.Scroll,x=t.Controller,E=t.Elements.track,S=(p=t.Direction).resolve,P=p.orient,k=y.getPosition,_=y.exceededLimit,A=!1;function L(){var n=e.drag;j(!n),c="free"===n}function z(n){var t,i;l||(i=e.noDrag,t=F(n),i=!i||!b(n.target,i),f=!1,!i||!t&&n.button||(y.isBusy()?T(n,!0):(d=t?E:window,s=u=null,v(d,Jn,C,Un),v(d,Kn,D,Un),y.cancel(),w.cancel(),M(n))))}function C(t){var u,c,l;s||g("drag"),(s=t).cancelable&&(u=O(t)-O(r),a?(y.translate(o+u/(A&&n.is(Gn)?5:1)),c=200<R(t)-R(r),l=A!==(A=_()),(c||l)&&M(t),g("dragging"),f=!0,T(t)):(l=i(l=e.dragMinThreshold)?l:{mouse:0,touch:+l||10},a=J(u)>(F(t)?l.touch:l.mouse),N()&&T(t)))}function D(i){m(d,Jn,C),m(d,Kn,D);var o,f,l=n.index;s?((a||i.cancelable&&N())&&(f=o=function(t){if(n.is(Yn)||!A){var e=r===s&&u||r,i=O(s)-O(e);e=R(t)-R(e),t=R(t)-R(s)<200;if(e&&t)return i/e}return 0}(i),f=k()+V(f)*G(J(f)*(e.flickPower||600),c?1/0:t.Layout.listSize()*(e.flickMaxPages||1)),c?x.scroll(f):n.is(qn)?x.go(l+P(V(o))):x.go(x.toDest(f),!0),T(i)),g("dragged")):c||k()===y.toPosition(l)||x.go(l,!0),a=!1}function M(n){u=r,r=n,o=k()}function I(n){!l&&f&&T(n,!0)}function N(){var n=J(O(s)-O(r));return J(O(s,!0)-O(r,!0))<n}function O(n,t){return(F(n)?n.touches[0]:n)["page"+S(t?"Y":"X")]}function R(n){return n.timeStamp}function F(n){return"undefined"!=typeof TouchEvent&&n instanceof TouchEvent}function j(n){l=n}return{mount:function(){v(E,Jn,X,Un),v(E,Kn,X,Un),v(E,"touchstart mousedown",z,Un),v(E,"click",I,{capture:!0}),v(E,"dragstart",T),h([tn,an],L)},disable:j,isDragging:function(){return a}}},Keyboard:function(n,t,e){var i,o,r=mn(n),u=r.on,s=r.bind,a=r.unbind,f=n.root,d=t.Direction.resolve;function p(){var n=e.keyboard;n&&("focused"===n?_(i=f,Bn,0):i=window,s(i,Vn,m))}function h(){a(i,Vn),c(i)&&k(i,Bn)}function g(){var n=o;o=!0,B((function(){o=n}))}function v(){h(),p()}function m(t){o||(t=t.key,(t=l(Qn,t)?"Arrow"+t:t)===d("ArrowLeft")?n.go("<"):t===d("ArrowRight")&&n.go(">"))}return{mount:function(){p(),u(an,v),u(en,g)},destroy:h,disable:function(n){o=n}}},LazyLoad:function(n,t,e){var i=mn(n),o=i.on,r=i.off,u=i.bind,s=i.emit,c="sequential"===e.lazyLoad,a=[],f=0;function l(){p(),d()}function d(){t.Slides.forEach((function(n){R(n.slide,"[data-splide-lazy], [data-splide-lazy-srcset]").forEach((function(t){var i,o,r=C(t,Zn),u=C(t,$n);r===t.src&&u===t.srcset||(i=e.classes.spinner,_(o=x(o=t.parentElement,"."+i)||A("span",i,o),On,"presentation"),a.push({o:t,e:n,src:r,srcset:u,c:o}),t.src||z(t,"none"))}))})),c&&m()}function p(){f=0,a=[]}function h(){(a=a.filter((function(t){var i=e.perPage*((e.preloadPages||1)+1)-1;return!t.e.isWithin(n.index,i)||g(t)}))).length||r(on)}function g(n){var t=n.o;v(n.e.slide,Nn),u(t,"load error",(function(t){!function(n,t){var e=n.e;F(e.slide,Nn),t||(I(n.c),z(n.o,""),s(vn,n.o,e),s(fn)),c&&m()}(n,"error"===t.type)})),["src","srcset"].forEach((function(e){n[e]&&(_(t,e,n[e]),k(t,"src"===e?Zn:$n))}))}function m(){f<a.length&&g(a[f++])}return{mount:function(){e.lazyLoad&&(d(),o(cn,l),c||o([tn,cn,on,pn],h))},destroy:p}},Pagination:function(n,t,i){var o,r=mn(n),u=r.on,s=r.emit,c=r.bind,a=r.unbind,f=t.Slides,l=t.Elements,d=t.Controller,p=d.hasFocus,h=d.getIndex,g=[];function m(){y(),i.pagination&&f.isEnough()&&(function(){var t=n.length,e=i.classes,r=i.i18n,u=i.perPage,s="slider"===i.pagination&&l.slider||l.root,a=p()?t:U(t/u);o=A("ul",e.pagination,s);for(var d=0;d<a;d++){var h=A("li",null,o),v=A("button",{class:e.page,type:"button"},h),m=f.getIn(d).map((function(n){return n.slide.id})),y=!p()&&1<u?r.pageX:r.slideX;c(v,"click",b.bind(null,d)),_(v,Rn,m.join(" ")),_(v,jn,Z(y,d+1)),g.push({li:h,button:v,page:d})}}(),s("pagination:mounted",{list:o,items:g},w(n.index)),x())}function y(){o&&(I(o),g.forEach((function(n){a(n.button,"click")})),e(g),o=null)}function b(n){d.go(">"+n,!0,(function(){var t=f.getAt(d.toIndex(n));t&&((t=t.slide).setActive&&t.setActive()||t.focus({preventScroll:!0}))}))}function w(n){return g[d.toPage(n)]}function x(){var n=w(h(!0)),t=w(h());n&&(F(n.button,Cn),k(n.button,Fn)),t&&(v(t.button,Cn),_(t.button,Fn,!0)),s("pagination:updated",{list:o,items:g},n,t)}return{items:g,mount:function(){m(),u([an,cn],m),u([en,pn],x)},destroy:y,getAt:w,update:x}},Sync:function(n,t,i){var o=t.Elements.list,r=[];function u(){var t,e;n.splides.forEach((function(t){var e;t.isParent||(e=t.splide,[n,e].forEach((function(t){var i=mn(t),o=t===n?e:n;i.on(en,(function(n,t,e){o.go(o.is(Yn)?e:n)})),r.push(i)})))})),i.isNavigation&&((e=(t=mn(n)).on)(un,a),e(sn,f),e([tn,an],c),_(o,On,"menu"),r.push(t),t.emit(gn,n.splides))}function s(){k(o,Hn),r.forEach((function(n){n.destroy()})),e(r)}function c(){_(o,Xn,"ttb"!==i.direction?"horizontal":null)}function a(t){n.go(t.index)}function f(n,t){l(nt,t.key)&&(a(n),T(t))}return{mount:u,destroy:s,remount:function(){s(),u()}}},Wheel:function(n,t,e){var i=mn(n).bind;function o(i){var o;!i.cancelable||(o=i.deltaY)&&(n.go((o=o<0)?"<":">"),o=o,e.releaseWheel&&!n.state.is(4)&&-1===t.Controller.getAdjacent(o)||T(i))}return{mount:function(){e.wheel&&i(t.Elements.track,"wheel",o,Un)}}}}),et={type:"slide",speed:400,waitForTransition:!0,perPage:1,cloneStatus:!0,arrows:!0,pagination:!0,interval:5e3,pauseOnHover:!0,pauseOnFocus:!0,resetProgress:!0,keyboard:!0,easing:"cubic-bezier(0.25, 1, 0.5, 1)",drag:!0,direction:"ltr",slideFocus:!0,trimSpace:!0,focusableNodes:"a, button, textarea, input, select, iframe",classes:{slide:En,clone:Sn,arrows:Pn,arrow:kn,prev:_n,next:An,pagination:Ln,page:Ln+"__page",spinner:n+"__spinner"},i18n:{prev:"Previous slide",next:"Next slide",first:"Go to first slide",last:"Go to last slide",slideX:"Go to slide %s",pageX:"Go to page %s",play:"Start autoplay",pause:"Pause autoplay"}};function it(n,t,e){var i=mn(n).on;return{mount:function(){i([tn,cn],(function(){B((function(){t.Slides.style("transition","opacity "+e.speed+"ms "+e.easing)}))}))},start:function(n,e){var i=t.Elements.track;L(i,"height",j(M(i).height)),B((function(){e(),L(i,"height","")}))},cancel:X}}function ot(n,t,e){var i,o=mn(n).bind,r=t.Move,u=t.Controller,s=t.Elements.list;function c(){a("")}function a(n){L(s,"transition",n)}return{mount:function(){o(s,"transitionend",(function(n){n.target===s&&i&&(c(),i())}))},start:function(t,o){var s=r.toPosition(t,!0),c=r.getPosition(),f=function(t){var i=e.rewindSpeed;if(n.is(Gn)&&i){var o=u.getIndex(!0),r=u.getEnd();if(0===o&&r<=t||r<=o&&0===t)return i}return e.speed}(t);1<=J(s-c)&&1<=f?(a("transform "+f+"ms "+e.easing),r.translate(s,!0),i=o):(r.jump(t),o())},cancel:c}}return(Ln=function(){function n(t,e){this.event=function(){var n={};function t(t,i){e(t,(function(t,e){var o=n[t];n[t]=o&&o.filter((function(n){return n.n?n.n!==i:i||n.t!==e}))}))}function e(n,t){a(n).join(" ").split(" ").forEach((function(n){n=n.split("."),t(n[0],n[1])}))}return{on:function(t,i,o,r){void 0===r&&(r=10),e(t,(function(t,e){n[t]=n[t]||[],d(n[t],{i:t,r:i,t:e,u:r,n:o}).sort((function(n,t){return n.u-t.u}))}))},off:t,offBy:function(e){E(n,(function(n,i){t(i,e)}))},emit:function(t){var e=arguments;(n[t]||[]).forEach((function(n){n.r.apply(n,h(e,1))}))},destroy:function(){n={}}}}(),this.Components={},this.state=function(n){var t=n;return{set:function(n){t=n},is:function(n){return l(a(n),t)}}}(1),this.splides=[],this.f={},this.a={},W(t=r(t)?O(document,t):t,t+" is invalid."),this.root=t,P(et,n.defaults),P(P(this.f,et),e||{})}var t,i=n.prototype;return i.mount=function(n,t){var e=this,i=this.state,o=this.Components;return W(i.is([1,5]),"Already mounted!"),i.set(1),this.s=o,this.l=t||this.l||(this.is(qn)?it:ot),this.a=n||this.a,E(S({},tt,this.a,{Transition:this.l}),(function(n,t){n=n(e,o,e.f),(o[t]=n).setup&&n.setup()})),E(o,(function(n){n.mount&&n.mount()})),this.emit(tn),v(this.root,"is-initialized"),i.set(3),this.emit("ready"),this},i.sync=function(n){return this.splides.push({splide:n}),n.splides.push({splide:this,isParent:!0}),this.state.is(3)&&(this.s.Sync.remount(),n.Components.Sync.remount()),this},i.go=function(n){return this.s.Controller.go(n),this},i.on=function(n,t){return this.event.on(n,t,null,20),this},i.off=function(n){return this.event.off(n),this},i.emit=function(n){var t;return(t=this.event).emit.apply(t,[n].concat(h(arguments,1))),this},i.add=function(n,t){return this.s.Slides.add(n,t),this},i.remove=function(n){return this.s.Slides.remove(n),this},i.is=function(n){return this.f.type===n},i.refresh=function(){return this.emit(cn),this},i.destroy=function(n){void 0===n&&(n=!0);var t=this.event,i=this.state;return i.is(1)?t.on("ready",this.destroy.bind(this,n),this):(E(this.s,(function(t){t.destroy&&t.destroy(n)}),!0),t.emit(hn),t.destroy(),n&&e(this.splides),i.set(5)),this},t=n,(i=[{key:"options",get:function(){return this.f},set:function(n){var t=this.f;P(t,n),this.state.is(1)||this.emit(an,t)}},{key:"length",get:function(){return this.s.Slides.getLength(!0)}},{key:"index",get:function(){return this.s.Controller.getIndex()}}])&&At(t.prototype,i),n}()).defaults={},Ln.STATES={CREATED:1,MOUNTED:2,IDLE:3,MOVING:4,DESTROYED:5},Ln},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).Splide=t(); (self.webpackChunk=self.webpackChunk||[]).push([[2653],{9241:function(){App.extend("accordions",{accordionBlocks:document.querySelectorAll(".invicti-block.accordion"),run:function(n){n.querySelectorAll(".accordion-heading").forEach((function(c){c.onclick=function(){var o=c.parentNode.closest(".accordion-section"),i=n.querySelectorAll(".accordion-section.active");o.classList.contains("active")?o.classList.remove("active"):o.classList.add("active"),i.forEach((function(n){n.classList.remove("active")}))}}))},setHeight:function(n){n.querySelectorAll(".accordion-section").forEach((function(n){var c=n.querySelector(".accordion-text").clientHeight+1;n.setAttribute("style","--accordion-height:".concat(c,"px"))}))},init:function(){var n=window.App.accordions;n.accordionBlocks.forEach((function(c){n.run(c),n.setHeight(c),window.addEventListener("resize",(function(){n.setHeight(c)}))}))}}),App.init(App.accordions.init)},4616:function(){},1914:function(){},1242:function(){},3110:function(){},2564:function(){},1345:function(){},9240:function(){},6890:function(){},3945:function(){},3683:function(){},7314:function(){},8616:function(){},3050:function(){},8843:function(){},9889:function(){},8464:function(){},4377:function(){},9683:function(){},3085:function(){},4556:function(){},6546:function(){},4234:function(){},6837:function(){},2340:function(){},2700:function(){},9760:function(){},9845:function(){},8289:function(){},2457:function(){},9876:function(){},5265:function(){},6602:function(){},678:function(){},2223:function(){},6278:function(){},8153:function(){},809:function(){},668:function(){},5733:function(){},5456:function(){},1972:function(){},6190:function(){},4012:function(){},812:function(){},1116:function(){},4140:function(){},4787:function(){},4665:function(){},6051:function(){},6276:function(){},9324:function(){},9960:function(){},7140:function(){},3743:function(){},5433:function(){},2871:function(){},8523:function(){},321:function(){},2555:function(){},2581:function(){},8374:function(){},1183:function(){},6789:function(){},5257:function(){},7592:function(){},2177:function(){},2525:function(){},4804:function(){},8925:function(){},751:function(){},7066:function(){},633:function(){},675:function(){},4736:function(){},788:function(){},9817:function(){},912:function(){},6630:function(){},3316:function(){},8931:function(){},2562:function(){},6625:function(){},2146:function(){},5444:function(){},9594:function(){},6157:function(){},2696:function(){},3403:function(){},1548:function(){},2379:function(){},4633:function(){},8313:function(){},5249:function(){},7207:function(){},6232:function(){},578:function(){},2188:function(){},3606:function(){},3614:function(){},4361:function(){},8002:function(){},988:function(){},8670:function(){},7636:function(){},9477:function(){},5295:function(){},1319:function(){},1943:function(){}},function(n){var c=function(c){return n(n.s=c)};n.O(0,[8138,2365,9049,4522,8056,3626,2917,7260,995,5398,1697,3896,687,7555,9484,1120,4167,3615,2229,9944,196,896,1785,1548,2651,1739,7532,1891,3973,9047,7368,6469,3415,2078,8320,1010,4906,2855,4098,973,8201,7089,6840,8043,3770,4216,226,383,2285,6045,6567,1575,1855,9489,7215,4674,5177,9190,9402,4346,175,1121,6231,4055,5517,4298,7695,7916,8947,4915,547,7258,8624,2039,7381,1625,7123,5839,3501,2132,1518,530,148,1909,5605,3375,188,1981,6362,798,2212,5950,8517,7991,5551,2125,1099,5760,9331,2126,4692,495,4777,961,9598,2845,2019,2879],(function(){return c(9241),c(5257),c(788),c(6157),c(2188),c(1943),c(7314),c(9889),c(8464),c(4377),c(9683),c(3085),c(4556),c(6546),c(4234),c(6837),c(2340),c(2700),c(9760),c(9845),c(8289),c(2457),c(9876),c(5265),c(6602),c(678),c(2223),c(6278),c(8153),c(809),c(668),c(5733),c(5456),c(1972),c(6190),c(4012),c(812),c(1116),c(4140),c(4787),c(4665),c(6051),c(6276),c(9324),c(9960),c(7140),c(3743),c(5433),c(2871),c(8523),c(321),c(2555),c(2581),c(8374),c(1183),c(6789),c(7592),c(2177),c(2525),c(4804),c(8925),c(751),c(7066),c(633),c(675),c(4736),c(9817),c(912),c(6630),c(3316),c(8931),c(2562),c(6625),c(2146),c(5444),c(9594),c(2696),c(3403),c(1548),c(2379),c(4633),c(8313),c(5249),c(7207),c(6232),c(578),c(3606),c(3614),c(4361),c(8002),c(988),c(8670),c(7636),c(9477),c(5295),c(1319),c(4616),c(1914),c(1242),c(3110),c(2564),c(1345),c(9240),c(6890),c(3945),c(3683),c(8616),c(3050),c(8843)}));n.O()}]); (self.webpackChunk=self.webpackChunk||[]).push([[4998],{1035:function(){App.extend("navbar",{stickyHeader:function(){var e=document.querySelector("body"),t=document.querySelector(".sticky-header-observer");t&&new IntersectionObserver((function(t){t[0].isIntersecting?e.classList.remove("sticky-header"):e.classList.add("sticky-header")})).observe(t)},mobileSubMenu:function(){document.querySelectorAll("#site-navigation .menu-item-has-children a").forEach((function(e){App.on(e,"click",(function(){App.mobileMenuActive&&(e.parentElement.classList.contains("active-sub-menu")?e.parentElement.classList.remove("active-sub-menu"):e.parentElement.classList.add("active-sub-menu"))}))}))},mobileMenu:function(){var e=document.querySelectorAll(".navbar-toggle"),t=document.querySelector("body");e&&e.forEach((function(e){App.on(e,"click",(function(){var e=document.querySelector(".site-header"),n=document.querySelector(".primary-menu-wrapper"),i=window.innerHeight;t.classList.contains("mobile-menu-active")?(n.removeAttribute("style"),t.classList.remove("mobile-menu-active"),App.extend("mobileMenuActive",!1)):(n.style.height=i-e.offsetHeight+"px",t.classList.add("mobile-menu-active"),App.extend("mobileMenuActive",!0))}))}))},resizer:function(){App.on(window,"resize",(function(){var e=document.querySelector(".primary-menu-wrapper");e&&(e.removeAttribute("style"),document.querySelector("body").classList.remove("mobile-menu-active"))}))},init:function(){var e=App.navbar;e.stickyHeader(),e.mobileMenu(),e.mobileSubMenu(),e.resizer()}}),App.init(App.navbar.init)}},function(e){var t;t=1035,e(e.s=t)}]); !function(e){var t={};function n(o){if(t[o])return t[o].exports;var l=t[o]={i:o,l:!1,exports:{}};return e[o].call(l.exports,l,l.exports,n),l.l=!0,l.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var l in e)n.d(o,l,function(t){return e[t]}.bind(null,l));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){(function(o){var l,r,i;!function(o,s){r=[],l=function(e){"use strict";var t,o,l,r=n(2),i={},s={},c=n(3),a=n(4),u=n(5),d=!!(e&&e.document&&e.document.querySelector&&e.addEventListener);if("undefined"!=typeof window||d){var f=Object.prototype.hasOwnProperty;return s.destroy=function(){if(!i.skipRendering)try{document.querySelector(i.tocSelector).innerHTML=""}catch(e){console.warn("Element not found: "+i.tocSelector)}i.scrollContainer&&document.querySelector(i.scrollContainer)?(document.querySelector(i.scrollContainer).removeEventListener("scroll",this._scrollListener,!1),document.querySelector(i.scrollContainer).removeEventListener("resize",this._scrollListener,!1),t&&document.querySelector(i.scrollContainer).removeEventListener("click",this._clickListener,!1)):(document.removeEventListener("scroll",this._scrollListener,!1),document.removeEventListener("resize",this._scrollListener,!1),t&&document.removeEventListener("click",this._clickListener,!1))},s.init=function(e){if(d&&(i=function(){for(var e={},t=0;t<arguments.length;t++){var n=arguments[t];for(var o in n)f.call(n,o)&&(e[o]=n[o])}return e}(r,e||{}),this.options=i,this.state={},i.scrollSmooth&&(i.duration=i.scrollSmoothDuration,i.offset=i.scrollSmoothOffset,s.scrollSmooth=n(6).initSmoothScrolling(i)),t=c(i),o=a(i),this._buildHtml=t,this._parseContent=o,s.destroy(),null!==(l=o.selectHeadings(i.contentSelector,i.headingSelector)))){var h=o.nestHeadingsArray(l).nest;i.skipRendering||t.render(i.tocSelector,h),this._scrollListener=m((function(e){t.updateToc(l),!i.disableTocScrollSync&&u(i);var n=e&&e.target&&e.target.scrollingElement&&0===e.target.scrollingElement.scrollTop;(e&&(0===e.eventPhase||null===e.currentTarget)||n)&&(t.updateToc(l),i.scrollEndCallback&&i.scrollEndCallback(e))}),i.throttleTimeout),this._scrollListener(),i.scrollContainer&&document.querySelector(i.scrollContainer)?(document.querySelector(i.scrollContainer).addEventListener("scroll",this._scrollListener,!1),document.querySelector(i.scrollContainer).addEventListener("resize",this._scrollListener,!1)):(document.addEventListener("scroll",this._scrollListener,!1),document.addEventListener("resize",this._scrollListener,!1));var p=null;return this._clickListener=m((function(e){i.scrollSmooth&&t.disableTocAnimation(e),t.updateToc(l),p&&clearTimeout(p),p=setTimeout((function(){t.enableTocAnimation()}),i.scrollSmoothDuration)}),i.throttleTimeout),i.scrollContainer&&document.querySelector(i.scrollContainer)?document.querySelector(i.scrollContainer).addEventListener("click",this._clickListener,!1):document.addEventListener("click",this._clickListener,!1),this}},s.refresh=function(e){s.destroy(),s.init(e||this.options)},e.tocbot=s,s}function m(e,t,n){var o,l;return t||(t=250),function(){var r=n||this,i=+new Date,s=arguments;o&&i<o+t?(clearTimeout(l),l=setTimeout((function(){o=i,e.apply(r,s)}),t)):(o=i,e.apply(r,s))}}}(o),void 0===(i="function"==typeof l?l.apply(t,r):l)||(e.exports=i)}(void 0!==o?o:this.window||this.global)}).call(this,n(1))},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t){e.exports={tocSelector:".js-toc",contentSelector:".js-toc-content",headingSelector:"h1, h2, h3",ignoreSelector:".js-toc-ignore",hasInnerContainers:!1,linkClass:"toc-link",extraLinkClasses:"",activeLinkClass:"is-active-link",listClass:"toc-list",extraListClasses:"",isCollapsedClass:"is-collapsed",collapsibleClass:"is-collapsible",listItemClass:"toc-list-item",activeListItemClass:"is-active-li",collapseDepth:0,scrollSmooth:!0,scrollSmoothDuration:420,scrollSmoothOffset:0,scrollEndCallback:function(e){},headingsOffset:1,throttleTimeout:50,positionFixedSelector:null,positionFixedClass:"is-position-fixed",fixedSidebarOffset:"auto",includeHtml:!1,onClick:function(e){},orderedList:!0,scrollContainer:null,skipRendering:!1,headingLabelCallback:!1,ignoreHiddenElements:!1,headingObjectCallback:null,basePath:"",disableTocScrollSync:!1}},function(e,t){e.exports=function(e){var t=[].forEach,n=[].some,o=document.body,l=!0,r=" ";function i(n,o){var l=o.appendChild(function(n){var o=document.createElement("li"),l=document.createElement("a");return e.listItemClass&&o.setAttribute("class",e.listItemClass),e.onClick&&(l.onclick=e.onClick),e.includeHtml&&n.childNodes.length?t.call(n.childNodes,(function(e){l.appendChild(e.cloneNode(!0))})):l.textContent=n.textContent,l.setAttribute("href",e.basePath+"#"+n.id),l.setAttribute("class",e.linkClass+r+"node-name--"+n.nodeName+r+e.extraLinkClasses),o.appendChild(l),o}(n));if(n.children.length){var c=s(n.isCollapsed);n.children.forEach((function(e){i(e,c)})),l.appendChild(c)}}function s(t){var n=e.orderedList?"ol":"ul",o=document.createElement(n),l=e.listClass+r+e.extraListClasses;return t&&(l+=r+e.collapsibleClass,l+=r+e.isCollapsedClass),o.setAttribute("class",l),o}return{enableTocAnimation:function(){l=!0},disableTocAnimation:function(t){var n=t.target||t.srcElement;"string"==typeof n.className&&-1!==n.className.indexOf(e.linkClass)&&(l=!1)},render:function(e,t){var n=s(!1);t.forEach((function(e){i(e,n)}));var o=document.querySelector(e);if(null!==o)return o.firstChild&&o.removeChild(o.firstChild),0===t.length?o:o.appendChild(n)},updateToc:function(i){var s;s=e.scrollContainer&&document.querySelector(e.scrollContainer)?document.querySelector(e.scrollContainer).scrollTop:document.documentElement.scrollTop||o.scrollTop,e.positionFixedSelector&&function(){var t;t=e.scrollContainer&&document.querySelector(e.scrollContainer)?document.querySelector(e.scrollContainer).scrollTop:document.documentElement.scrollTop||o.scrollTop;var n=document.querySelector(e.positionFixedSelector);"auto"===e.fixedSidebarOffset&&(e.fixedSidebarOffset=document.querySelector(e.tocSelector).offsetTop),t>e.fixedSidebarOffset?-1===n.className.indexOf(e.positionFixedClass)&&(n.className+=r+e.positionFixedClass):n.className=n.className.split(r+e.positionFixedClass).join("")}();var c,a=i;if(l&&null!==document.querySelector(e.tocSelector)&&a.length>0){n.call(a,(function(t,n){return function t(n){var o=0;return n!==document.querySelector(e.contentSelector&&null!=n)&&(o=n.offsetTop,e.hasInnerContainers&&(o+=t(n.offsetParent))),o}(t)>s+e.headingsOffset+10?(c=a[0===n?n:n-1],!0):n===a.length-1?(c=a[a.length-1],!0):void 0}));var u=document.querySelector(e.tocSelector).querySelectorAll("."+e.linkClass);t.call(u,(function(t){t.className=t.className.split(r+e.activeLinkClass).join("")}));var d=document.querySelector(e.tocSelector).querySelectorAll("."+e.listItemClass);t.call(d,(function(t){t.className=t.className.split(r+e.activeListItemClass).join("")}));var f=document.querySelector(e.tocSelector).querySelector("."+e.linkClass+".node-name--"+c.nodeName+'[href="'+e.basePath+"#"+c.id.replace(/([ #;&,.+*~':"!^$[\]()=>|/@])/g,"\\$1")+'"]');-1===f.className.indexOf(e.activeLinkClass)&&(f.className+=r+e.activeLinkClass);var m=f.parentNode;m&&-1===m.className.indexOf(e.activeListItemClass)&&(m.className+=r+e.activeListItemClass);var h=document.querySelector(e.tocSelector).querySelectorAll("."+e.listClass+"."+e.collapsibleClass);t.call(h,(function(t){-1===t.className.indexOf(e.isCollapsedClass)&&(t.className+=r+e.isCollapsedClass)})),f.nextSibling&&-1!==f.nextSibling.className.indexOf(e.isCollapsedClass)&&(f.nextSibling.className=f.nextSibling.className.split(r+e.isCollapsedClass).join("")),function t(n){return-1!==n.className.indexOf(e.collapsibleClass)&&-1!==n.className.indexOf(e.isCollapsedClass)?(n.className=n.className.split(r+e.isCollapsedClass).join(""),t(n.parentNode.parentNode)):n}(f.parentNode.parentNode)}}}}},function(e,t){e.exports=function(e){var t=[].reduce;function n(e){return e[e.length-1]}function o(t){if(!(t instanceof window.HTMLElement))return t;if(e.ignoreHiddenElements&&(!t.offsetHeight||!t.offsetParent))return null;var n={id:t.id,children:[],nodeName:t.nodeName,headingLevel:function(e){return+e.nodeName.split("H").join("")}(t),textContent:e.headingLabelCallback?String(e.headingLabelCallback(t.textContent)):t.textContent.trim()};return e.includeHtml&&(n.childNodes=t.childNodes),e.headingObjectCallback?e.headingObjectCallback(n,t):n}return{nestHeadingsArray:function(l){return t.call(l,(function(t,l){var r=o(l);return r&&function(t,l){for(var r=o(t),i=r.headingLevel,s=l,c=n(s),a=i-(c?c.headingLevel:0);a>0;)(c=n(s))&&void 0!==c.children&&(s=c.children),a--;i>=e.collapseDepth&&(r.isCollapsed=!0),s.push(r)}(r,t.nest),t}),{nest:[]})},selectHeadings:function(t,n){var o=n;e.ignoreSelector&&(o=n.split(",").map((function(t){return t.trim()+":not("+e.ignoreSelector+")"})));try{return document.querySelector(t).querySelectorAll(o)}catch(e){return console.warn("Element not found: "+t),null}}}}},function(e,t){e.exports=function(e){var t=document.querySelector(e.tocSelector);if(t&&t.scrollHeight>t.clientHeight){var n=t.querySelector("."+e.activeListItemClass);n&&(t.scrollTop=n.offsetTop)}}},function(e,t){function n(e,t){var n,o,l=window.pageYOffset,r={duration:t.duration,offset:t.offset||0,callback:t.callback,easing:t.easing||function(e,t,n,o){return(e/=o/2)<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}},i=document.querySelector('[id="'+decodeURI(e).split("#").join("")+'"]'),s="string"==typeof e?r.offset+(e?i&&i.getBoundingClientRect().top||0:-(document.documentElement.scrollTop||document.body.scrollTop)):e,c="function"==typeof r.duration?r.duration(s):r.duration;function a(e){o=e-n,window.scrollTo(0,r.easing(o,l,s,c)),o<c?requestAnimationFrame(a):(window.scrollTo(0,l+s),"function"==typeof r.callback&&r.callback())}requestAnimationFrame((function(e){n=e,a(e)}))}t.initSmoothScrolling=function(e){document.documentElement.style;var t=e.duration,o=e.offset,l=location.hash?r(location.href):location.href;function r(e){return e.slice(0,e.lastIndexOf("#"))}document.body.addEventListener("click",(function(i){!function(e){return"a"===e.tagName.toLowerCase()&&(e.hash.length>0||"#"===e.href.charAt(e.href.length-1))&&(r(e.href)===l||r(e.href)+"#"===l)}(i.target)||i.target.className.indexOf("no-smooth-scroll")>-1||"#"===i.target.href.charAt(i.target.href.length-2)&&"!"===i.target.href.charAt(i.target.href.length-1)||-1===i.target.className.indexOf(e.linkClass)||n(i.target.hash,{duration:t,offset:o,callback:function(){!function(e){var t=document.getElementById(e.substring(1));t&&(/^(?:a|select|input|button|textarea)$/i.test(t.tagName)||(t.tabIndex=-1),t.focus())}(i.target.hash)}})}),!1)}}]); (self.webpackChunk=self.webpackChunk||[]).push([[6631],{6688:function(){App.init((function(){var e=document.querySelectorAll(".sidebar-menu .menu-item.menu-item-has-children"),t=document.querySelector(".support-menu-trigger");e&&(e.forEach((function(e){e.classList.contains("current-menu-ancestor")&&e.classList.add("active"),e.querySelector(".menu-item-block").addEventListener("click",(function(){e.classList.toggle("active")}))})),t.addEventListener("click",(function(){document.querySelector(".sidebar-menu").classList.toggle("active"),document.querySelector(".sidebar").classList.toggle("active")})))}))}},function(e){var t;t=6688,e(e.s=t)}]); </script> <style id="prismcss">code[class*=language-],pre[class*=language-]{color:#000;background:0 0;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{position:relative;margin:.5em 0;overflow:visible;padding:1px}pre[class*=language-]>code{position:relative;z-index:1}code[class*=language-]{max-height:inherit;height:inherit;padding:0 1em;display:block;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background-color:#fdfdfd;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:1em}:not(pre)>code[class*=language-]{position:relative;padding:.2em;border-radius:.3em;color:#c92c2c;border:1px solid rgba(0,0,0,.1);display:inline;white-space:normal}pre[class*=language-]:after,pre[class*=language-]:before{content:'';display:block;position:absolute;bottom:.75em;left:.18em;width:40%;height:20%;max-height:13em}pre[class*=language-]:after{right:.75em;left:auto;-webkit-transform:rotate(2deg);-moz-transform:rotate(2deg);-ms-transform:rotate(2deg);-o-transform:rotate(2deg);transform:rotate(2deg)}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#6b7782}.token.punctuation{color:#5f6364}.token.boolean,.token.constant,.token.deleted,.token.function-name,.token.number,.token.property,.token.symbol,.token.tag{color:#c92c2c}.token.attr-name,.token.builtin,.token.char,.token.function,.token.inserted,.token.selector,.token.string{color:#2f9c0a}.token.entity,.token.operator,.token.url,.token.variable{color:#a67f59;background:rgba(255,255,255,.5)}.token.atrule,.token.attr-value,.token.class-name,.token.keyword{color:#1990b8}.token.important,.token.regex{color:#e90}.language-css .token.string,.style .token.string{color:#a67f59;background:rgba(255,255,255,.5)}.token.important{font-weight:400}.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.namespace{opacity:.7}@media screen and (max-width:767px){pre[class*=language-]:after,pre[class*=language-]:before{bottom:14px;box-shadow:none}}pre[class*=language-].line-numbers.line-numbers{padding-left:0}pre[class*=language-].line-numbers.line-numbers code{padding-left:3.8em}pre[class*=language-].line-numbers.line-numbers .line-numbers-rows{left:0}pre[class*=language-][data-line]{padding-top:0;padding-bottom:0;padding-left:0}pre[data-line] code{position:relative;padding-left:4em}pre .line-highlight{margin-top:0}pre[class*=language-].line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #ccc;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right}div.code-toolbar{position:relative}div.code-toolbar>.toolbar{position:absolute;z-index:6;top:.3em;right:.2em;transition:opacity .3s ease-in-out;opacity:0}div.code-toolbar:hover>.toolbar{opacity:1}div.code-toolbar:focus-within>.toolbar{opacity:1}div.code-toolbar>.toolbar>.toolbar-item{display:inline-block}div.code-toolbar>.toolbar>.toolbar-item>a{cursor:pointer}div.code-toolbar>.toolbar>.toolbar-item>button{background:0 0;border:0;color:inherit;font:inherit;line-height:normal;overflow:visible;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}div.code-toolbar>.toolbar>.toolbar-item>a,div.code-toolbar>.toolbar>.toolbar-item>button,div.code-toolbar>.toolbar>.toolbar-item>span{color:#bbb;font-size:.8em;padding:0 .5em;background:#f5f2f0;background:rgba(224,224,224,.2);box-shadow:0 2px 0 0 rgba(0,0,0,.2);border-radius:.5em}div.code-toolbar>.toolbar>.toolbar-item>a:focus,div.code-toolbar>.toolbar>.toolbar-item>a:hover,div.code-toolbar>.toolbar>.toolbar-item>button:focus,div.code-toolbar>.toolbar>.toolbar-item>button:hover,div.code-toolbar>.toolbar>.toolbar-item>span:focus,div.code-toolbar>.toolbar>.toolbar-item>span:hover{color:inherit;text-decoration:none}pre[class*=language]>code{border-style:none;padding-left:0;padding-right:0;padding-top:.625rem;padding-bottom:.625rem}pre[class*=language]:not(.line-numbers){border-radius:4px!important}pre[class*=language]:not(.line-numbers)>code{border-style:none;padding:.625rem 1em}pre[class*=language]>code .punctuation{--tw-text-opacity:1;color:rgb(29 28 41 / var(--tw-text-opacity))}div.code-toolbar>pre[class*=language]>code .line-numbers-rows{padding-top:.625rem;padding-bottom:.625rem}div.code-toolbar>.toolbar{right:.3em}div.code-toolbar>.toolbar>.toolbar-item>button{border-radius:.25rem;border-width:0;--tw-bg-opacity:1;background-color:rgb(204 204 204 / var(--tw-bg-opacity));padding-left:.625rem;padding-right:.625rem;padding-top:.25rem;padding-bottom:.25rem;text-transform:lowercase;line-height:1;--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity));--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)} </style> <!-- Start VWO Async SmartCode --> <script async type='text/javascript' nonce="wo123jejr234982dfn"> window._vwo_code = window._vwo_code || (function(){ var account_id=301870, settings_tolerance=2000, library_tolerance=2500, use_existing_jquery=false, is_spa=1, hide_element='body', /* DO NOT EDIT BELOW THIS LINE */ f=false,d=document,code={use_existing_jquery:function(){return use_existing_jquery;},library_tolerance:function(){return library_tolerance;},finish:function(){if(!f){f=true;var a=d.getElementById('_vis_opt_path_hides');if(a)a.parentNode.removeChild(a);}},finished:function(){return f;},load:function(a){var b=d.createElement('script');b.src=a;b.type='text/javascript';b.innerText;b.onerror=function(){_vwo_code.finish();};d.getElementsByTagName('head')[0].appendChild(b);},init:function(){ window.settings_timer=setTimeout(function () {_vwo_code.finish() },settings_tolerance);var a=d.createElement('style'),b=hide_element?hide_element+'{opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important;}':'',h=d.getElementsByTagName('head')[0];a.setAttribute('id','_vis_opt_path_hides');a.setAttribute('type','text/css');if(a.styleSheet)a.styleSheet.cssText=b;else a.appendChild(d.createTextNode(b));h.appendChild(a);this.load('https://dev.visualwebsiteoptimizer.com/j.php?a='+account_id+'&u='+encodeURIComponent(d.URL)+'&f='+(+is_spa)+'&r='+Math.random());return settings_timer; }};window._vwo_settings_timer = code.init(); return code; }()); </script> <!-- End VWO Async SmartCode --> </body> </html> <!-- Performance optimized by Redis Object Cache. Learn more: https://wprediscache.com -->

Pages: 1 2 3 4 5 6 7 8 9 10