CINXE.COM

16 Strategies to Reduce Subscriber Churn | Recurly

<!DOCTYPE html> <!--[if lt IE 7]> <html lang="en" class="lt-ie10 lt-ie9 lt-ie8 lt-ie7"> <![endif]--> <!--[if IE 7]> <html lang="en" class="lt-ie10 lt-ie9 lt-ie8 ie7"> <![endif]--> <!--[if IE 8]> <html lang="en" class="lt-ie10 lt-ie9 ie8"> <![endif]--> <!--[if IE 9]> <html lang="en" class="lt-ie10 ie9"> <![endif]--> <!--[if gt IE 9]><!--><html lang="en" class="no-js"><!--<![endif]--> <head> <meta charset="utf-8" /> <meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="google-site-verification" content="Qg9blGKTiWCPvmRdwNzxHxWhGtoV3VViK64_ZTbuJMU" /> <title> 16 Strategies to Reduce Subscriber Churn | Recurly </title> <meta name="ROBOTS" content="NOODP" /> <meta name="description" content="Looking to reduce subscription cancels? These are the steps you can take to reduce voluntary and involuntary churn." /> <!-- Standard favicon --> <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico"> <!-- For iOS devices --> <link rel="apple-touch-icon" sizes="180x180" href="/favicon/apple-touch-icon.png"> <!-- For Android devices --> <link rel="icon" type="image/png" sizes="192x192" href="/favicon/android-chrome-192x192.png"> <link rel="icon" type="image/png" sizes="512x512" href="/favicon/android-chrome-512x512.png"> <!-- For Windows devices --> <meta name="msapplication-TileImage" sizes="70x70" content="/favicon/mstile-70x70.png"> <meta name="msapplication-TileImage" sizes="144x144" content="/favicon/mstile-144x144.png"> <meta name="msapplication-TileImage" sizes="150x150" content="/favicon/mstile-150x150.png"> <meta name="msapplication-TileImage" sizes="310x150" content="/favicon/mstile-310x150.png"> <meta name="msapplication-TileImage" sizes="310x310" content="/favicon/mstile-310x310.png"> <meta name="msapplication-TileColor" content="#FFD706"> <!-- For Safari pinned tabs --> <link rel="mask-icon" href="/favicon/safari-pinned-tab.svg" color="#FFD706"> <!-- Multiple sizes for different browsers and devices --> <link rel="icon" type="image/png" sizes="16x16" href="/favicon/favicon-16x16.png"> <link rel="icon" type="image/png" sizes="32x32" href="/favicon/favicon-32x32.png"> <!-- Web App Manifest for Android --> <link rel="manifest" href="/favicon/site.webmanifest"> <link rel="canonical" href="https://recurly.com/blog/reduce-churn/" /> <!-- facebook --> <meta property="og:title" content="16 Strategies to Reduce Subscriber Churn | Recurly" /> <meta property="og:url" content="https://recurly.com/blog/reduce-churn/" /> <meta property="og:site_name" content="Recurly, Inc." /> <meta property="og:type" content="website" /> <meta property="og:image" content="https://images.ctfassets.net/wob906kz2qeo/4OfXzydhFDKWC1Suq5ov5w/4525400ae73083706af27ccc7f4b0c59/img-08-2022-KAGTG-social-share-1200x630.png" /> <meta property="og:image:url" content="//images.ctfassets.net/wob906kz2qeo/4OfXzydhFDKWC1Suq5ov5w/4525400ae73083706af27ccc7f4b0c59/img-08-2022-KAGTG-social-share-1200x630.png" /> <meta property="og:image:secure_url" content="https://images.ctfassets.net/wob906kz2qeo/4OfXzydhFDKWC1Suq5ov5w/4525400ae73083706af27ccc7f4b0c59/img-08-2022-KAGTG-social-share-1200x630.png" /> <meta property="og:image:type" content="image/gif" /> <meta property="og:image:width" content="1500" /> <meta property="og:image:height" content="1500" /> <meta property="og:description" content="Looking to reduce subscription cancels? These are the steps you can take to reduce voluntary and involuntary churn." /> <meta property="fb:admins" content="100001307761910,2535641,1591053024" /> <!-- twitter --> <meta name="twitter:account_id" content="57871527" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:site" content="@recurly" /> <meta name="twitter:title" content="16 Strategies to Reduce Subscriber Churn | Recurly" /> <meta name="twitter:description" content="Looking to reduce subscription cancels? These are the steps you can take to reduce voluntary and involuntary churn." /> <meta name="twitter:image:src" content="https://images.ctfassets.net/wob906kz2qeo/4OfXzydhFDKWC1Suq5ov5w/4525400ae73083706af27ccc7f4b0c59/img-08-2022-KAGTG-social-share-1200x630.png" /> <meta name="twitter:image:width" content="1500" /> <meta name="twitter:image:height" content="1500" /> <meta charset="utf-8" content=""> <meta name="format-detection" content="telephone=no"> <!-- Start Optimizely Code Snipit --> <script src="https://cdn.optimizely.com/js/5280136644263936.js"></script> <!-- End Optimizely Code Snipit --> <!-- OneTrust Cookies Consent Notice start for recurly.com --> <script defer src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="40f24449-7e61-4f97-907b-5c68fbf8ad7e" ></script> <script defer type="text/javascript"> function OptanonWrapper() { // checks if cookie banner is showing. If it is, add spacing to the .wrap document.body.classList.add("cookie"); var bannerH = document.querySelector('#onetrust-banner-sdk'); setTimeout(function(){ //add 500s delay to check due to animation if(bannerH) { document.body.classList.add("cookie"); // also check if banner has display: none bannerDisplay = bannerH.style.display; if(bannerDisplay == 'none'){ document.body.classList.remove("cookie"); } } else { document.body.classList.remove("cookie"); } },500) } </script> <!-- OneTrust Cookies Consent Notice end for recurly.com --> <!-- Google Tag Manager --> <script>(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-P8SKV3B');</script> <!-- gplus --> <link href="https://plus.google.com/115228385341532659439" rel="publisher" /> <!-- Critical CSS --> <style rel="stylesheet" type="text/css">@font-face{font-family:"Gruffy";font-weight:400;font-style:normal;src:url("/img2/fonts/F37Gruffy-Regular.woff2") format("woff2"),url("/img2/fonts/F37Gruffy-Regular.woff") format("woff")}@font-face{font-family:"Gruffy";font-weight:400;font-style:italic;src:url("/img2/fonts/F37Gruffy-RegularItalic.woff2") format("woff2"),url("/img2/fonts/F37Gruffy-RegularItalic.woff") format("woff")}@font-face{font-family:"Gruffy";font-weight:700;font-style:normal;src:url("/img2/fonts/F37Gruffy-Bold.woff2") format("woff2"),url("/img2/fonts/F37Gruffy-Bold.woff") format("woff")}@font-face{font-family:"Polar";font-weight:400;font-style:normal;src:url("/img2/fonts/FTPolar-Regular.woff2") format("woff2"),url("/img2/fonts/FTPolar-Regular.woff") format("woff")}@font-face{font-family:"Polar";font-weight:400;font-style:italic;src:url("/img2/fonts/FTPolar-RegularItalic.woff2") format("woff2"),url("/img2/fonts/FTPolar-RegularItalic.woff") format("woff")}@font-face{font-family:"Polar";font-weight:700;font-style:normal;src:url("/img2/fonts/FTPolar-Bold.woff2") format("woff2"),url("/img2/fonts/FTPolar-Bold.woff") format("woff")}*{box-sizing:border-box}:root{--font-size-xs: 1.4rem;--font-size-sm: 1.5rem;--font-size-md: 1.6rem;--font-size-lg: 1.8rem;--font-size-xl: 2rem;--font-size-2xl: 2.4rem;--font-size-3xl: 3.6rem;--font-size-4xl: 4.6rem}:root,:root [data-theme="white"]{--background-primary: #fff;--text-primary: #0D0D0B;--text-highlight: #C23A00;--text-eyebrow: var(--text-primary);--btn-primary-bg: #0D0D0B;--btn-primary-text: #fff;--btn-primary-hover-bg: #FF9D88;--btn-primary-hover-text: #0D0D0B;--btn-secondary-border: #0D0D0B;--btn-secondary-text: var(--text-primary);--btn-secondary-hover-border: #FF9D88;--link-underline: var(--text-highlight);--highlight: #C23A00;--border-color: rgba(13, 13, 11, 0.12)}@media (min-width: 768px){:root{--font-size-sm: 1.6rem;--font-size-md: 1.8rem;--font-size-lg: 2rem;--font-size-xl: 2.8rem;--font-size-2xl: 3.4rem;--font-size-3xl: 5rem;--font-size-4xl: 6rem}}@media screen and (min-width: 1200px){:root{--font-size-2xl: 4.2rem;--font-size-3xl: 6rem;--font-size-4xl: 8rem}}@media screen and (min-width: 1680px){:root{--font-size-3xl: 7rem;--font-size-4xl: 8.7rem}}[data-theme="bright-gray"],[data-theme="yellow"]{--btn-secondary-hover-border: #FF5810;--link-underline: #FF5810}[data-theme="bright-gray"]{--background-primary: #f1efe3}[data-theme="yellow"]{--background-primary: #FFD706}[data-theme="black"]{--background-primary: #0D0D0B;--text-primary: #fff;--text-highlight: #FFD706;--text-eyebrow: #FFD706;--btn-primary-bg: #FF8200;--btn-primary-text: #0D0D0B;--btn-secondary-border: #fff;--btn-secondary-hover-border: #FF5810;--btn-secondary-text: #fff;--link-underline: #FF5810;--border-color: #32312D}[data-theme]{color:var(--text-primary);background:var(--background-primary)}html,body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}html{overflow-x:hidden;overflow-y:scroll;font-size:62.5%}body{margin:0;line-height:1.3;font-family:"Polar", "Helvetica Neue", Helvetica, arial, sans-serif;font-size:var(--font-size-md);color:var(--text-primary)}body:not(.home){text-align:left}p{margin-top:1.5rem;margin-bottom:1.5rem}hr{height:1px;margin:6rem auto;border:0;background:#e2e2e3}@media (min-width: 768px){hr{margin:10rem auto}}img{height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}a:not(.btn){color:inherit;-webkit-text-decoration-color:var(--link-underline);text-decoration-color:var(--link-underline);text-decoration-thickness:2px;text-underline-offset:5px;-webkit-transition:-webkit-text-decoration-color 0.25s;transition:-webkit-text-decoration-color 0.25s;transition:text-decoration-color 0.25s;transition:text-decoration-color 0.25s, -webkit-text-decoration-color 0.25s}a:not(.btn):hover{-webkit-text-decoration-color:transparent;text-decoration-color:transparent}a:not(.btn).link-no-underline{-webkit-text-decoration-color:transparent;text-decoration-color:transparent}a:not(.btn).link-no-underline:hover{-webkit-text-decoration-color:var(--link-underline);text-decoration-color:var(--link-underline)}b,strong{font-weight:600}address{font-style:normal}small{font-family:"Polar", "Helvetica Neue", Helvetica, arial, sans-serif;font-weight:300;font-size:1.5rem}dl{line-height:1rem}dl dt,dl dd{padding-left:0;margin-left:0;line-height:2.2rem}dl dt{font-weight:600}dl.inline dt,dl.inline dd{float:left}dl.inline dt{clear:left}dl.inline dt{margin-right:4px}.clearfix:before,dl.inline:before,.container:before,.header:before,.container-fluid:before,.clearfix:after,dl.inline:after,.container:after,.header:after,.container-fluid:after{content:" ";display:table}.clearfix:after,dl.inline:after,.container:after,.header:after,.container-fluid:after{clear:both}.container,.header{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px;min-width:320px}@media (min-width: 768px){.container,.header{width:750px}}@media (min-width: 992px){.container,.header{width:970px}}@media (min-width: 1200px){.container,.header{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px;min-width:320px}.row{margin-left:-15px;margin-right:-15px}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-1{width:8.3333333333%}.col-xs-2{width:16.6666666667%}.col-xs-3{width:25%}.col-xs-4{width:33.3333333333%}.col-xs-5{width:41.6666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.3333333333%}.col-xs-8{width:66.6666666667%}.col-xs-9{width:75%}.col-xs-10{width:83.3333333333%}.col-xs-11{width:91.6666666667%}.col-xs-12{width:100%}.col-xs-pull-0{right:auto}.col-xs-pull-1{right:8.3333333333%}.col-xs-pull-2{right:16.6666666667%}.col-xs-pull-3{right:25%}.col-xs-pull-4{right:33.3333333333%}.col-xs-pull-5{right:41.6666666667%}.col-xs-pull-6{right:50%}.col-xs-pull-7{right:58.3333333333%}.col-xs-pull-8{right:66.6666666667%}.col-xs-pull-9{right:75%}.col-xs-pull-10{right:83.3333333333%}.col-xs-pull-11{right:91.6666666667%}.col-xs-pull-12{right:100%}.col-xs-push-0{left:auto}.col-xs-push-1{left:8.3333333333%}.col-xs-push-2{left:16.6666666667%}.col-xs-push-3{left:25%}.col-xs-push-4{left:33.3333333333%}.col-xs-push-5{left:41.6666666667%}.col-xs-push-6{left:50%}.col-xs-push-7{left:58.3333333333%}.col-xs-push-8{left:66.6666666667%}.col-xs-push-9{left:75%}.col-xs-push-10{left:83.3333333333%}.col-xs-push-11{left:91.6666666667%}.col-xs-push-12{left:100%}.col-xs-offset-0{margin-left:0%}.col-xs-offset-1{margin-left:8.3333333333%}.col-xs-offset-2{margin-left:16.6666666667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.3333333333%}.col-xs-offset-5{margin-left:41.6666666667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.3333333333%}.col-xs-offset-8{margin-left:66.6666666667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.3333333333%}.col-xs-offset-11{margin-left:91.6666666667%}.col-xs-offset-12{margin-left:100%}.col-xs-offset-right-0{margin-right:0%}.col-xs-offset-right-1{margin-right:8.3333333333%}.col-xs-offset-right-2{margin-right:16.6666666667%}.col-xs-offset-right-3{margin-right:25%}.col-xs-offset-right-4{margin-right:33.3333333333%}.col-xs-offset-right-5{margin-right:41.6666666667%}.col-xs-offset-right-6{margin-right:50%}.col-xs-offset-right-7{margin-right:58.3333333333%}.col-xs-offset-right-8{margin-right:66.6666666667%}.col-xs-offset-right-9{margin-right:75%}.col-xs-offset-right-10{margin-right:83.3333333333%}.col-xs-offset-right-11{margin-right:91.6666666667%}.col-xs-offset-right-12{margin-right:100%}@media (min-width: 768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-1{width:8.3333333333%}.col-sm-2{width:16.6666666667%}.col-sm-3{width:25%}.col-sm-4{width:33.3333333333%}.col-sm-5{width:41.6666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.3333333333%}.col-sm-8{width:66.6666666667%}.col-sm-9{width:75%}.col-sm-10{width:83.3333333333%}.col-sm-11{width:91.6666666667%}.col-sm-12{width:100%}.col-sm-pull-0{right:auto}.col-sm-pull-1{right:8.3333333333%}.col-sm-pull-2{right:16.6666666667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.3333333333%}.col-sm-pull-5{right:41.6666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.3333333333%}.col-sm-pull-8{right:66.6666666667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.3333333333%}.col-sm-pull-11{right:91.6666666667%}.col-sm-pull-12{right:100%}.col-sm-push-0{left:auto}.col-sm-push-1{left:8.3333333333%}.col-sm-push-2{left:16.6666666667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.3333333333%}.col-sm-push-5{left:41.6666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.3333333333%}.col-sm-push-8{left:66.6666666667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.3333333333%}.col-sm-push-11{left:91.6666666667%}.col-sm-push-12{left:100%}.col-sm-offset-0{margin-left:0%}.col-sm-offset-1{margin-left:8.3333333333%}.col-sm-offset-2{margin-left:16.6666666667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.3333333333%}.col-sm-offset-5{margin-left:41.6666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.3333333333%}.col-sm-offset-8{margin-left:66.6666666667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.3333333333%}.col-sm-offset-11{margin-left:91.6666666667%}.col-sm-offset-12{margin-left:100%}.col-sm-offset-right-0{margin-right:0%}.col-sm-offset-right-1{margin-right:8.3333333333%}.col-sm-offset-right-2{margin-right:16.6666666667%}.col-sm-offset-right-3{margin-right:25%}.col-sm-offset-right-4{margin-right:33.3333333333%}.col-sm-offset-right-5{margin-right:41.6666666667%}.col-sm-offset-right-6{margin-right:50%}.col-sm-offset-right-7{margin-right:58.3333333333%}.col-sm-offset-right-8{margin-right:66.6666666667%}.col-sm-offset-right-9{margin-right:75%}.col-sm-offset-right-10{margin-right:83.3333333333%}.col-sm-offset-right-11{margin-right:91.6666666667%}.col-sm-offset-right-12{margin-right:100%}}@media (min-width: 992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-1{width:8.3333333333%}.col-md-2{width:16.6666666667%}.col-md-3{width:25%}.col-md-4{width:33.3333333333%}.col-md-5{width:41.6666666667%}.col-md-6{width:50%}.col-md-7{width:58.3333333333%}.col-md-8{width:66.6666666667%}.col-md-9{width:75%}.col-md-10{width:83.3333333333%}.col-md-11{width:91.6666666667%}.col-md-12{width:100%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.3333333333%}.col-md-pull-2{right:16.6666666667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.3333333333%}.col-md-pull-5{right:41.6666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.3333333333%}.col-md-pull-8{right:66.6666666667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.3333333333%}.col-md-pull-11{right:91.6666666667%}.col-md-pull-12{right:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.3333333333%}.col-md-push-2{left:16.6666666667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.3333333333%}.col-md-push-5{left:41.6666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.3333333333%}.col-md-push-8{left:66.6666666667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.3333333333%}.col-md-push-11{left:91.6666666667%}.col-md-push-12{left:100%}.col-md-offset-0{margin-left:0%}.col-md-offset-1{margin-left:8.3333333333%}.col-md-offset-2{margin-left:16.6666666667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.3333333333%}.col-md-offset-5{margin-left:41.6666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.3333333333%}.col-md-offset-8{margin-left:66.6666666667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.3333333333%}.col-md-offset-11{margin-left:91.6666666667%}.col-md-offset-12{margin-left:100%}.col-md-offset-right-0{margin-right:0%}.col-md-offset-right-1{margin-right:8.3333333333%}.col-md-offset-right-2{margin-right:16.6666666667%}.col-md-offset-right-3{margin-right:25%}.col-md-offset-right-4{margin-right:33.3333333333%}.col-md-offset-right-5{margin-right:41.6666666667%}.col-md-offset-right-6{margin-right:50%}.col-md-offset-right-7{margin-right:58.3333333333%}.col-md-offset-right-8{margin-right:66.6666666667%}.col-md-offset-right-9{margin-right:75%}.col-md-offset-right-10{margin-right:83.3333333333%}.col-md-offset-right-11{margin-right:91.6666666667%}.col-md-offset-right-12{margin-right:100%}}@media (min-width: 1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-1{width:8.3333333333%}.col-lg-2{width:16.6666666667%}.col-lg-3{width:25%}.col-lg-4{width:33.3333333333%}.col-lg-5{width:41.6666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.3333333333%}.col-lg-8{width:66.6666666667%}.col-lg-9{width:75%}.col-lg-10{width:83.3333333333%}.col-lg-11{width:91.6666666667%}.col-lg-12{width:100%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.3333333333%}.col-lg-pull-2{right:16.6666666667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.3333333333%}.col-lg-pull-5{right:41.6666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.3333333333%}.col-lg-pull-8{right:66.6666666667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.3333333333%}.col-lg-pull-11{right:91.6666666667%}.col-lg-pull-12{right:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.3333333333%}.col-lg-push-2{left:16.6666666667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.3333333333%}.col-lg-push-5{left:41.6666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.3333333333%}.col-lg-push-8{left:66.6666666667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.3333333333%}.col-lg-push-11{left:91.6666666667%}.col-lg-push-12{left:100%}.col-lg-offset-0{margin-left:0%}.col-lg-offset-1{margin-left:8.3333333333%}.col-lg-offset-2{margin-left:16.6666666667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.3333333333%}.col-lg-offset-5{margin-left:41.6666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.3333333333%}.col-lg-offset-8{margin-left:66.6666666667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.3333333333%}.col-lg-offset-11{margin-left:91.6666666667%}.col-lg-offset-12{margin-left:100%}.col-lg-offset-right-0{margin-right:0%}.col-lg-offset-right-1{margin-right:8.3333333333%}.col-lg-offset-right-2{margin-right:16.6666666667%}.col-lg-offset-right-3{margin-right:25%}.col-lg-offset-right-4{margin-right:33.3333333333%}.col-lg-offset-right-5{margin-right:41.6666666667%}.col-lg-offset-right-6{margin-right:50%}.col-lg-offset-right-7{margin-right:58.3333333333%}.col-lg-offset-right-8{margin-right:66.6666666667%}.col-lg-offset-right-9{margin-right:75%}.col-lg-offset-right-10{margin-right:83.3333333333%}.col-lg-offset-right-11{margin-right:91.6666666667%}.col-lg-offset-right-12{margin-right:100%}}h1,.h1,h2,.h2,h3,.h3,h4,.h4,h4,.h5,h4,.h6{display:block;margin:0 0 1.5rem;font-weight:700}p+h1,p+.h1,p+h2,p+.h2,p+h3,p+.h3,p+h4,p+.h4,p+h4,p+.h5,p+h4,p+.h6{margin-top:6rem}@media (min-width: 768px){h1,.h1,h2,.h2,h3,.h3,h4,.h4,h4,.h5,h4,.h6{margin:0 0 3rem}}h1,.h1,h3,.h3,h5,.h5,h6,.h6{font-family:"Gruffy", "Helvetica Neue", Helvetica, arial, sans-serif}h1,.h1,h2,.h2,h3,.h3,h5,.h5,h6,.h6{font-weight:700}h2,.h2,h3,.h3,h5,.h5,h6,.h6{line-height:1.1}h1,.h1{font-size:var(--font-size-4xl);line-height:1}h2,.h2{font-size:var(--font-size-3xl)}p+h2,ul+h2,p+.h2,ul+.h2{margin-top:3rem}h3,.h3{margin:1.5rem 0;font-size:var(--font-size-2xl)}p+h3,ul+h3,p+.h3,ul+.h3{margin-top:3rem}h4,.h4{margin-bottom:1.5rem;font-size:var(--font-size-xl);font-weight:700}h4.h4--light,.h4.h4--light{font-weight:400}h5,.h5{margin-bottom:1.5rem;font-size:var(--font-size-lg)}h6,.h6{font-size:1.6rem}.heading-segment{font-weight:500;font-size:2.8rem;line-height:4.4rem;color:#893999;text-align:center}@media (min-width: 768px){.heading-segment{font-size:3.5rem;margin-bottom:12.5rem}}.heading-lite,.heading-lite--centered{font-size:2.8rem;font-weight:700;color:#893999}@media (min-width: 768px){.heading-lite,.heading-lite--centered{font-size:3.5rem;line-height:4.4rem}}.heading-lite--muted{color:var(--text-primary)}.heading-lite--centered{text-align:center}.heading-lite--tall{margin-bottom:6rem}.heading-label{display:inline-block;margin:0 auto;padding-bottom:0.8rem;color:#893999;font-size:1.7rem;font-weight:600;border-bottom:2px solid #e2e2e3}.heading-label--hidden{display:none;border-bottom:2px solid transparent}@media (min-width: 992px){.heading-label--hidden{display:inline-block}}.heading-content{margin:2.2rem auto 0;font-size:2.8rem;line-height:3.5rem;color:#38383a}@media (min-width: 992px){.heading-content{font-size:3.5rem;line-height:4.4rem}}.heading-content+p{margin-top:1rem}.heading-condensed{margin:0;font-size:3.5rem;font-family:'proxima-nova-condensed', sans-serif;font-weight:400;color:#ffffff}.heading-serif{font-family:'proxima-nova', sans-serif;letter-spacing:0}@media (min-width: 768px){.segment-lead{margin-bottom:9rem}}sup{font-size:0.5em;vertical-align:super}.footnote{font-size:var(--font-size-xs);line-height:1.1;color:#807D73}.btn{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;height:40px;padding:0 1.5rem;text-align:center;border-radius:6px;font-weight:400;text-decoration:none;cursor:pointer;font-family:"Polar", "Helvetica Neue", Helvetica, arial, sans-serif;border-width:0;text-align:center}@media (min-width: 768px){.btn{height:54px;padding:0 3rem}.btn--small{height:40px;padding:0 2rem;font-size:1.6rem}}.btn-primary{background-color:var(--btn-primary-bg);color:var(--btn-primary-text);-webkit-transition:background-color 0.25s;transition:background-color 0.25s}.btn-primary:hover{background-color:var(--btn-primary-hover-bg);color:var(--btn-primary-hover-text)}.btn-secondary{background-color:transparent;color:var(--btn-secondary-text);border:1px solid var(--btn-secondary-border)}.btn-secondary:hover{border-color:var(--btn-secondary-hover-border)}.btn-group{display:-webkit-box;display:flex;flex-wrap:wrap;gap:20px;-webkit-box-align:center;align-items:center}@media screen and (min-width: 1200px){.btn-group{gap:40px}}.btn{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;height:40px;padding:0 1.5rem;text-align:center;border-radius:6px;font-weight:400;text-decoration:none;cursor:pointer;font-family:"Polar", "Helvetica Neue", Helvetica, arial, sans-serif;border-width:0;text-align:center}@media (min-width: 768px){.btn{height:54px;padding:0 3rem}.btn--small{height:40px;padding:0 2rem;font-size:1.6rem}}.btn-primary{background-color:var(--btn-primary-bg);color:var(--btn-primary-text);-webkit-transition:background-color 0.25s;transition:background-color 0.25s}.btn-primary:hover{background-color:var(--btn-primary-hover-bg);color:var(--btn-primary-hover-text)}.btn-secondary{background-color:transparent;color:var(--btn-secondary-text);border:1px solid var(--btn-secondary-border)}.btn-secondary:hover{border-color:var(--btn-secondary-hover-border)}.btn-group{display:-webkit-box;display:flex;flex-wrap:wrap;gap:20px;-webkit-box-align:center;align-items:center}@media screen and (min-width: 1200px){.btn-group{gap:40px}}.hero{position:relative;padding-top:6rem;height:calc(100vh - 12rem);min-height:45rem;max-height:60rem}@media (min-width: 768px){.hero{padding-top:6.75rem}}.hero .container,.hero .header{position:relative;height:100%}.hero--has-alert{height:calc(100vh - 16.6rem)}.hero__wrap{display:-ms-flex;display:-webkit-box;display:flex;-ms-align-items:center;-webkit-box-align:center;align-items:center;-ms-justify-content:flex-start;-webkit-box-pack:start;justify-content:flex-start;height:100%;text-align:left}.hero__content{position:relative;z-index:1}.ueno-no-flexbox .hero__content{display:table-cell;vertical-align:middle}.hero__breadcrumbs{font-size:1.4rem;color:var(--text-primary);text-decoration:none;opacity:0.5;-webkit-transition:opacity 0.25s;transition:opacity 0.25s}.hero__breadcrumbs [class^="icon-"]{display:inline-block;margin-left:0.3rem;font-size:0.8rem}.hero__breadcrumbs:hover{color:var(--text-primary);opacity:1}.hero__title{margin:0;padding:0;max-width:22ch}.hero__buttons{margin-top:1.6rem}@media (min-width: 768px){.hero__buttons{margin-top:2rem}}.hero__buttons>.btn{margin-top:1.5rem;margin-bottom:0;min-width:25rem}@media (min-width: 768px){.hero__buttons>.btn{margin-top:3rem;padding:1.6rem 3rem 1.4rem}}.hero__about{padding:15.5rem 0 10rem}@media (min-width: 768px){.hero__about{padding:16.5rem 0 10rem}}@media (min-width: 992px){.hero__about{padding:16.5rem 0 28rem}}@media (min-width: 1200px){.hero__about{padding:16.5rem 0 12.5rem}}.hero__about .container,.hero__about .header{position:relative}@media (min-width: 768px){.hero{min-height:35rem;max-height:55rem}}@media (min-width: 992px){.hero{min-height:45rem;max-height:65rem}}@media (min-width: 1200px){.hero{min-height:50rem;max-height:64rem}}.hero--small{height:35rem;min-height:0}.hero--cards{padding:0;height:auto;max-height:52.2rem;min-height:0}.hero--standard{padding:0;height:28rem;min-height:0;border-bottom:0.1rem solid var(--border-color)}.hero--standard .hero__content{width:100%}.hero--standard .hero__buttons--side{position:relative;top:0;right:0;margin-top:0}@media (min-width: 992px){.hero--standard .hero__buttons--side{position:absolute}}.hero--standard .hero__buttons--side .btn{min-width:22rem;margin-top:2rem;padding:1.25rem 3rem}.linkbox__root{position:relative}.linkbox__target::before{content:"";position:absolute;inset:0;z-index:2}.linkbox a[href],.linkbox abbr[title],.linkbox button{position:relative;z-index:3}.stack{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;row-gap:var(--stack-gap, 20px)}.stack>*{margin-top:0 !important;margin-bottom:0 !important}@media (min-width: 1680px){.container.container-v2,.container-v2.header{width:min(100vw, var(--container-v2-width, 1520px) + 30px)}}.container.container-v2::before,.container-v2.header::before,.container.container-v2::after,.container-v2.header::after{content:none}.section-space-top,.section-space-bottom{--section-space: 6rem}@media (min-width: 992px){.section-space-top,.section-space-bottom{--section-space: 8rem}}@media (min-width: 1200px){.section-space-top,.section-space-bottom{--section-space: 10rem}}@media (min-width: 1400px){.section-space-top,.section-space-bottom{--section-space: 12rem}}@media (min-width: 1680px){.section-space-top,.section-space-bottom{--section-space: 18rem}}.section-space-top{padding-top:var(--section-space)}.section-space-bottom{padding-bottom:var(--section-space)}.highlight{color:var(--text-highlight)}.list-reset{list-style:none;margin-top:0;margin-bottom:0;padding:0}.buffer{margin-bottom:6rem}.buffer.short{margin-bottom:3rem}.displaynone{display:none !important}.absolute{position:absolute}.lighter{font-weight:200}.relative{position:relative}.pull-right{float:right}@media (min-width: 480px){.xs-pull-right{float:right}}@media (min-width: 768px){.sm-pull-right{float:right}}@media (min-width: 992px){.md-pull-right{float:right}}@media (min-width: 1200px){.lg-pull-right{float:right}}.pull-left{float:left}.clear-left{clear:left}@media (min-width: 480px){.xs-clear-left{clear:left}}@media (min-width: 768px){.sm-clear-left{clear:left}}@media (min-width: 992px){.md-clear-left{clear:left}}@media (min-width: 1200px){.lg-clear-left{clear:left}}.clear-both{clear:both}.clear-right{clear:right}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-3{z-index:3}.z-4{z-index:4}.z-5{z-index:5}.z-6{z-index:6}.z-7{z-index:7}.z-8{z-index:8}.z-9{z-index:9}.z-10{z-index:10}.link-purple-lite{color:#d470ed;-webkit-transition:color 0.25s;transition:color 0.25s}.link-purple-lite:hover{color:#fff;text-decoration:underline}.list-inline{padding:0;list-style:none}.list-inline li{display:inline;position:relative;padding:0 7px 0 14px}.list-inline li:before{content:"";position:absolute;top:50%;left:0;width:4px;height:4px;margin-top:-2px;border-radius:4px}.list-inline li:first-child{padding-left:0}.list-inline li:first-child:before{display:none}.list-align{padding-left:1.8rem}.list-unstyled{padding:0;list-style:none}.upper-alpha>li{list-style:upper-alpha}.lower-roman>li{list-style:lower-roman}.superscript{vertical-align:super;font-size:50%}.inline{display:inline}.inline--block{display:inline-block}.show-desktop{display:none}@media (min-width: 768px){.show-desktop{display:block}}.show-mobile{display:block}@media (min-width: 768px){.show-mobile{display:none}}.v-center{display:-ms-flex;display:-webkit-box;display:flex;-ms-align-items:center;-webkit-box-align:center;align-items:center;height:100%}.flex-list{display:-ms-flex;display:-webkit-box;display:flex;-ms-align-items:center;-webkit-box-align:center;align-items:center;padding:0;margin:0;text-align:center;list-style:none}.flex-list>*{-webkit-box-flex:1;flex:1;display:inline-block}.block-center{display:block;margin-left:auto;margin-right:auto;text-align:center}.well{margin:3rem auto;padding:2rem;background-color:#f3f3f4;border-radius:0.3rem}.well p{margin:0}.well img{margin-right:2rem}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-inherit{text-align:inherit}.full-height{height:100%}@media (max-width: 767px){.center-xs{max-width:480px;margin-left:auto;margin-right:auto;text-align:center}}.hide-text{font:0/0 a;text-indent:-9999rem;text-shadow:none;background-color:transparent;border:0}.hide,.hidden{display:none}.visuallyhidden{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}@media (min-width: 992px){.col-padded{padding-left:4.5rem;padding-right:4.5rem}}.social a{display:inline-block;color:#5191b7;text-decoration:none;margin:0 .5rem;font-size:3.2rem}.social a:hover{color:#893999}.social a:first-child{margin-left:0}.social a:last-child{margin-right:0}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width: 767px){.visible-xs{display:block !important}table .visible-xs{display:table}tr .visible-xs{display:table-row !important}th .visible-xs,td .visible-xs{display:table-cell !important}}@media (max-width: 767px){.visible-xs-block{display:block !important}}@media (max-width: 767px){.visible-xs-inline{display:inline !important}}@media (max-width: 767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm{display:block !important}table .visible-sm{display:table}tr .visible-sm{display:table-row !important}th .visible-sm,td .visible-sm{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-block{display:block !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-inline{display:inline !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md{display:block !important}table .visible-md{display:table}tr .visible-md{display:table-row !important}th .visible-md,td .visible-md{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-block{display:block !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-inline{display:inline !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width: 1200px){.visible-lg{display:block !important}table .visible-lg{display:table}tr .visible-lg{display:table-row !important}th .visible-lg,td .visible-lg{display:table-cell !important}}@media (min-width: 1200px){.visible-lg-block{display:block !important}}@media (min-width: 1200px){.visible-lg-inline{display:inline !important}}@media (min-width: 1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width: 767px){.hidden-xs{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-md{display:none !important}}@media (min-width: 1200px){.hidden-lg{display:none !important}}@media (min-width: 480px){.xs-inline-block{display:inline-block}}@media (min-width: 768px){.sm-inline-block{display:inline-block}}@media (min-width: 992px){.md-inline-block{display:inline-block}}@media (min-width: 1200px){.lg-inline-block{display:inline-block}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table .visible-print{display:table}tr .visible-print{display:table-row !important}th .visible-print,td .visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.color-white{color:#fff !important}.mb-60{margin-bottom:6rem}.text-transform-none{text-transform:none !important}.font-size-xs{font-size:var(--font-size-xs)}.font-size-sm{font-size:var(--font-size-sm)}.font-size-md{font-size:var(--font-size-md)}.font-size-lg{font-size:var(--font-size-lg)}.actions{font-size:0}.actions__button-wrap{position:absolute;-webkit-transform:translate(6px, -22px);transform:translate(6px, -22px)}@media (min-width: 1200px){.actions__button-wrap{position:relative;display:inline-block;-webkit-transform:none;transform:none}}.actions__button{display:inline-block;margin-left:2rem;width:3.5rem;height:3.5rem;line-height:3.3rem;vertical-align:middle;font-size:1.4rem;font-weight:700;color:var(--text-primary);cursor:pointer;-webkit-transition:color 0.3s, border 0.3s, background 0.3s, -webkit-transform 0.3s;transition:color 0.3s, border 0.3s, background 0.3s, -webkit-transform 0.3s;transition:transform 0.3s, color 0.3s, border 0.3s, background 0.3s;transition:transform 0.3s, color 0.3s, border 0.3s, background 0.3s, -webkit-transform 0.3s;padding:0 1.4rem;width:auto}.fr .actions__button{margin-left:0.8rem}.header--hover .actions__button{color:var(--text-primary)}.header-wrap--fixed .header--hover .actions__button{color:var(--text-primary)}.actions__button.hover,.actions__button:hover{color:var(--text-primary)}.actions__button--login{margin-right:50px}@media (min-width: 1200px){.actions__button{padding:0 2rem}}.actions__button--no-border{padding:0;border-style:none;font-weight:400;font-size:1.8rem}.actions__color--purple{background:#893999;-webkit-transition:-webkit-transform 0.3s;transition:-webkit-transform 0.3s;transition:transform 0.3s;transition:transform 0.3s, -webkit-transform 0.3s}.actions__color--purple:hover{background:#ab4ac3}.actions__color--blue{background:#2676A5}.actions__color--green{border-color:#3da07b;background:#3da07b}.actions__color--green:hover{border-color:#2f7b5f;background:#2f7b5f}.actions__color--grey,.actions__color--gray{background:#38383A}.actions__color--bluegrey,.actions__color--bluegray{background:#59697e;border-color:#59697e}.actions__color--bluegrey:hover,.actions__color--bluegray:hover{border-color:#475465;background:#475465}.header-wrap{position:absolute;width:100%;height:9rem;z-index:9;border-bottom:1px solid transparent;-webkit-transition:border-color 0.2s;transition:border-color 0.2s}.header-wrap--fixed{border-color:var(--border-color)}.hero-banner .header-wrap{top:9.2rem}@media (min-width: 768px){.hero-banner .header-wrap{top:4.5rem}}.header-wrap:after{position:absolute;z-index:-1;visibility:hidden;content:url("/img2/logo-recurly.svg")}.nav-open .header-wrap{top:0 !important}.header-wrap--fixed,.header-wrap.header--hover,.header-wrap.mobile-nav-open{position:fixed}.header-wrap.mobile-nav-open,.header-wrap.header-wrap--light{height:9rem}.header-wrap.mobile-nav-open .header__logo,.header-wrap.header-wrap--light .header__logo{background:left center url("/img2/logo-recurly.svg") no-repeat;background-size:96px}.header{display:-webkit-box;display:flex;-webkit-box-pack:end;justify-content:flex-end;gap:20px;position:relative;z-index:10;margin-bottom:-9rem;height:9rem;line-height:9rem}.header-wrap--fixed .header,.header--hover .header{height:9rem;line-height:9rem}.header__logo{--logo-width: 140px;display:block;margin-right:auto;width:var(--logo-width);height:9rem;text-indent:-9999px;background:left center url("/img2/logo-recurly.svg") no-repeat;background-size:var(--logo-width)}.header-wrap--fixed .header__logo,.header--hover .header__logo,.mobile-nav-open .header__logo{height:9rem}.header-wrap--fixed .header--hover .header__logo,.header--hover .header--hover .header__logo,.mobile-nav-open .header--hover .header__logo{opacity:1}.header__logo.hover{opacity:1}@media (max-width: 1199px){.header__logo{left:2rem;--logo-width: 150px}}.header__demo-btn{min-width:140px}.header-nav{width:100%}.header-nav__left{z-index:4}.header-nav__right{padding-right:0 !important}.header-nav__right-wrap{padding:5rem 0 2.6rem 6.4rem}.header-nav__right-wrap:before{display:block;content:" ";position:absolute;top:0;left:2.8rem;height:39.9rem;width:1px;background:#ccc}.header-nav__right-wrap .subnav-item__side-heading{color:#232932;font-size:1.6rem;font-weight:700;line-height:20px;margin:2rem 0 0 0}.header-nav__right-wrap-link:hover{color:#FFD706}.header__actions{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;gap:20px}@media (min-width: 768px){.header__demo-btn{height:40px;padding:0 1.5rem}}@media (min-width: 1200px){.header__demo-btn{height:54px;padding:0 3rem}}@media (max-width: 1200px){.header__login-btn{font-size:1.6rem}}@media (max-width: 991px){.header__navigation{display:none}}.header__navigation .navigation__subnav{display:none}.header__mobile{display:none;color:#fff}@media (max-width: 991px){.header{gap:10px}.header__actions{display:none}.header__mobile{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;gap:6px}}.subnav ul{list-style:none}.subnav p{font-size:1.4rem;color:#232932;font-weight:400}.subnav a{font-size:1.4rem;font-weight:400;-webkit-text-decoration-line:none;text-decoration-line:none}.subnav-item__column{display:-webkit-box;display:flex;position:absolute;top:100%;padding:2.5rem 4.8rem 1.5rem 2.4rem;background:var(--background-primary);box-shadow:0px 4px 12px #00000026}.subnav-item__column.hide{display:none}.subnav-item__column--product{display:-webkit-box;display:flex}.subnav-item__column--solutions a,.subnav-item__column--resources a,.subnav-item__column--about a{font-size:1.6rem}.subnav-item__large{display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;width:100rem;padding:0;z-index:2;box-shadow:0 4px 12px rgba(35,41,50,0.15);border:solid 1px var(--border-color)}@media (min-width: 992px){.subnav-item__large{left:-3rem;width:81.6rem}}.subnav-item__large:after{display:block;content:"";background:#fff;width:80%;height:100%;position:absolute;top:0;left:0;background:transparent;top:-3.6rem;z-index:-1}.subnav-item__large--solutions,.subnav-item__large--resources,.subnav-item__large--about{width:53.6rem}.subnav-item__large--solutions .subnav-item__left,.subnav-item__large--resources .subnav-item__left,.subnav-item__large--about .subnav-item__left{border-right:0 none}.subnav-item__large--solutions .subnav-item__nav,.subnav-item__large--resources .subnav-item__nav,.subnav-item__large--about .subnav-item__nav{line-height:initial}.subnav-item__large--solutions .subnav-item__link,.subnav-item__large--resources .subnav-item__link,.subnav-item__large--about .subnav-item__link{padding:0.3rem 3rem;width:100%;font-size:1.4rem}.subnav-item__large--solutions .subnav-item__link:hover,.subnav-item__large--resources .subnav-item__link:hover,.subnav-item__large--about .subnav-item__link:hover{background:#32312D}.subnav-item__large--solutions{width:56.6rem}.subnav-item__large--solutions .subnav-item__left{border-right:1px solid var(--border-color)}.subnav-item__large--resources{width:53.6rem}.subnav-item__large--about{width:18rem}.subnav-item__large .subnav-item__nav{margin:0;padding:0;white-space:normal}.subnav-item__large .subnav-item__nav h3{margin:0;padding:1rem 3rem;font-weight:700;font-size:1.6rem;line-height:1.8rem;cursor:default}.subnav-item__large .subnav-item__nav h3 a{font-size:1.6rem;line-height:1.8rem;font-weight:700}.subnav-item__large .subnav-item__secondary a{width:100%;padding:0.5rem 3rem;font-size:1.4rem;font-weight:400}.subnav-item__large .subnav-item__secondary a:hover{background:#32312D}.subnav-item__left{width:28.6rem;margin:2rem 0;padding:0;border-right:1px solid #32312D}.subnav-item__left li{padding:0}.subnav-item__left li.active h3{color:var(--text-highlight);background:#32312D}.subnav-item__left li.active h3 a{color:var(--text-highlight)}.subnav-item__left li.active h3:before{display:block;content:" ";position:absolute;top:-4rem;right:0;width:11rem;height:12rem;z-index:1}.subnav-item__left li.active h3:after{mask:url("/img2/icons/nav-arrow.svg") no-repeat;-webkit-mask:url("/img2/icons/nav-arrow.svg") no-repeat;-webkit-mask-size:cover;mask-size:cover;background-repeat:no-repeat;background-color:var(--text-highlight)}.subnav-item__left h3{width:100%}.subnav-item__left h3:after{display:block;content:" ";position:absolute;top:1.4rem;right:1rem;width:1.6rem;height:1rem}.subnav-item__mid{width:28rem;padding:2rem 0}.subnav-item__right{width:25rem;padding:1rem 0 2rem 0;border-left:1px solid #32312D;background:#32312D}.subnav-item__right p{display:block;margin:0;line-height:initial}.subnav-item__right a,.subnav-item__right strong{display:block;height:auto;width:100%}.subnav-item__right a{color:var(--text-primary);padding:0.45rem 3rem}.subnav-item__right a:hover{color:var(--text-highlight)}.subnav-item__right strong{padding:1rem 3rem 0.6rem;font-weight:700;color:var(--text-highlight)}.subnav-item__right .nav-resources__label{color:var(--text-highlight);font-weight:700}.subnav-item__right .nav-resources__image{width:19rem;margin:0}.subnav-item__right .nav-resources__title{margin:0 0 1.5rem;color:var(--text-highlight);white-space:normal}.subnav-item__right .nav-resources__title a{font-size:1.4rem}.subnav-item__secondary{padding:0;display:none}.subnav-item__secondary.active{display:block}.subnav-item__secondary li{margin:1.4rem 0;font-size:1.4rem;line-height:2rem}.subnav-item__secondary--small{font-size:1.3rem}.subnav-item__nav{position:relative;margin:0 0 1rem}.subnav-item__nav h3{font-size:1.4rem;line-height:2.4rem;margin:0}.subnav-item__heading{margin:1.5rem 0 0;-webkit-transition:color .25s;transition:color .25s}.subnav-item__subheading{margin:.8rem 0 2rem;color:#343F4B;font-weight:400;width:100%;max-width:25.5rem}.subnav-item__link{line-height:2.4rem}.subnav-item__link:hover .subnav-item__heading{color:var(--text-highlight)}.subnav-item__image{width:30rem}.subnav-item__side-text{font-size:1.4rem;margin:1.4rem 0 1.6rem 0}.subnav-item__side-link{color:#232932;font-size:1.6rem;font-weight:400}.subnav .learn-more{color:#893999;font-size:1.6rem}.subnav .learn-more:hover{color:#a84abb}.mobile-button{position:relative;width:4.1rem;height:4.1rem;background:var(--btn-primary-bg);border-radius:6px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;--loffset: -4px}.mobile-button span{display:block;position:absolute;top:1.9rem;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);text-indent:-9999px}.mobile-button span,.mobile-button span:before,.mobile-button span:after{width:2.3rem;height:0.3rem}.mobile-button span:before,.mobile-button span:after{content:"";position:absolute;top:var(--loffset);left:0;-webkit-transform-origin:50% 50%;transform-origin:50% 50%;background:var(--background-primary)}.mobile-nav-open .mobile-button span{background:transparent}.mobile-nav-open .mobile-button span:before{top:0;-webkit-transform:rotateZ(-45deg);transform:rotateZ(-45deg)}.mobile-button span:after{top:auto;bottom:var(--loffset)}.mobile-nav-open .mobile-button span:after{bottom:0;-webkit-transform:rotateZ(-135deg);transform:rotateZ(-135deg)}.footer,.footer__bottom{border-top:1px solid var(--border-color)}.footer__menu-wrap{display:grid;grid-template-areas:"logo" "links" "social";gap:40px}@media (max-width: 1679px){.footer__menu-wrap{font-size:1.6rem}}@media (min-width: 1200px){.footer__menu-wrap{grid-template-columns:var(--footer-logo-size, auto) 1fr;grid-template-areas:"logo links" "social links";gap:80px}}@media (min-width: 1680px){.footer__menu-wrap{--footer-logo-size: minmax(min-content, 240px)}}.footer__logo{grid-area:logo}.footer__lists{grid-area:links;display:grid;-webkit-box-align:start;align-items:start;gap:40px}@media (min-width: 620px){.footer__lists{grid-template-columns:repeat(var(--footer-list-columns, 3), auto);grid-template-rows:auto 1fr;row-gap:60px}}@media (min-width: 992px){.footer__lists{--footer-list-columns: 5;row-gap:80px}}@media (min-width: 620px){.footer__list{grid-row:span 2}.footer__list--shorty{grid-row:span 1;grid-column:2 / span 1}.footer__list--shorty+.footer__list--shorty{grid-row-start:2}}@media (min-width: 1200px){.footer__list{--stack-gap: 30px}}.footer__links{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;gap:20px}.footer__social{grid-area:social;display:-webkit-box;display:flex;gap:20px;align-self:end}.footer__social img{max-width:16px}.footer__social a{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:40px;height:40px;border-radius:50%;background-color:#FF5810;-webkit-transition:background-color .3s;transition:background-color .3s}.footer__social a:hover{background-color:#FF9D88}.footer__bottom{padding:40px 0}@media (max-width: 991px){.footer__bottom{padding-bottom:80px}}.footer__list-secondary{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;gap:20px}@media (min-width: 768px){.footer__list-secondary{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-box-pack:end;justify-content:end;flex-wrap:wrap}}@media (min-width: 1200px){.footer__list-secondary{gap:40px}}.footer .legal-consent-container{position:absolute}.footer-basic__grid{display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;-webkit-box-align:center;align-items:center;gap:40px}@media (max-width: 991px){.footer-basic__grid{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:start;justify-content:start;-webkit-box-align:start;align-items:start}}@media (max-width: 991px){.footer--basic .footer__social{align-self:start}}.segment,.content-group{position:relative;padding-top:6rem;padding-bottom:6rem}@media (min-width: 768px){.segment,.content-group{padding-top:12.5rem;padding-bottom:12.5rem}.segment--wider{padding-top:12rem}}.segment--grey{background-color:#f3f3f4}.segment--darkgrey{background-color:#707074}.segment--purple{background-color:#893999}.segment--darkpurple{background-color:#441c4c}.segment--blue{background-color:#2676a5}.segment--green{background-color:#3da07b}.segment--bordered{border-top:1px solid #e2e2e3}.segment--large{padding-top:6rem;padding-bottom:6rem}@media (min-width: 768px){.segment--large{padding-top:10rem;padding-bottom:10rem}}.segment--medium{padding-top:6rem;padding-bottom:6rem}@media (min-width: 768px){.segment--medium{padding-top:6rem;padding-bottom:6rem}}.segment--narrow{padding-top:3rem;padding-bottom:3rem}@media (min-width: 768px){.segment--narrow{padding-top:6rem;padding-bottom:6rem}}@media (min-width: 768px){.segment--first{padding-top:12.5rem}}@media (min-width: 768px){.segment--last{padding-bottom:12.5rem}}.segment--resources h2{color:#232932;font-weight:800}.segment--cta .btn{padding:1.3rem 3rem 1.2rem;font-size:1.8rem;margin:0 auto}.navigation{line-height:9rem;white-space:nowrap}.header-wrap--fixed .navigation,.header--hover .navigation,.header-wrap--light .navigation{line-height:9rem}.navigation a{display:inline-block}.navigation .no-click-events{pointer-events:none}.navigation,.navigation__item,.navigation__sub,.navigation__subitem{margin:0;padding:0;list-style:none}.navigation__item{display:-webkit-box;display:flex;position:relative;float:left;margin-right:0}.navigation__item>a,.navigation__item>span{padding-right:2rem;color:var(--text-primary);font-size:1.6rem}.de .navigation__item>a,.de .navigation__item>span{padding-right:2rem}.fr .navigation__item>a,.fr .navigation__item>span{padding-right:1.4rem}@media (min-width: 1200px){.navigation__item>a,.navigation__item>span{font-size:1.8rem;padding-right:3rem}}@media (min-width: 1680px){.navigation__item>a,.navigation__item>span{padding-right:5rem}}.navigation__item span{-webkit-transition:color 0.25s;transition:color 0.25s}.header-wrap--fixed .navigation__item:first-child,.header--hover .navigation__item:first-child,.header-wrap--light .navigation__item:first-child{display:inline-block}.header-wrap--fixed .navigation__item:first-child.navigation__item--hover+.navigation__item:before,.header--hover .navigation__item:first-child.navigation__item--hover+.navigation__item:before,.header-wrap--light .navigation__item:first-child.navigation__item--hover+.navigation__item:before{-webkit-transform:rotateZ(90deg);transform:rotateZ(90deg);left:-3.3rem}.header-wrap--fixed .navigation__item--hover>a,.header-wrap--fixed .navigation__item:hover>a,.header--hover .navigation__item--hover>a,.header--hover .navigation__item:hover>a,.header-wrap--light .navigation__item--hover>a,.header-wrap--light .navigation__item:hover>a{-webkit-text-decoration-line:underline;text-decoration-line:underline}.header-wrap--fixed .navigation__item--hover>span,.header-wrap--fixed .navigation__item:hover>span,.header--hover .navigation__item--hover>span,.header--hover .navigation__item:hover>span,.header-wrap--light .navigation__item--hover>span,.header-wrap--light .navigation__item:hover>span{cursor:default}.header-wrap--fixed:hover .navigation__item:first-child+.navigation__item:before{-webkit-transform:rotateZ(90deg);transform:rotateZ(90deg);left:-3.3rem}.navigation__item--hidden{display:none;position:relative;margin-left:2rem;color:#232932;font-size:1.4rem;font-weight:600;opacity:0;-webkit-transition:opacity 0.3s;transition:opacity 0.3s}.navigation__item--hidden>a{color:#2676a5}.navigation__item--hidden:before{display:block;position:absolute;left:-3rem;top:4rem;margin:auto;color:#c5c5c8;font:1.2rem/0.9 'icomoon';content:"\e603";-webkit-transform:rotateZ(0);transform:rotateZ(0);-webkit-transition:all 0.25s;transition:all 0.25s}.header-wrap--fixed .navigation__item--hidden,.header--hover .navigation__item--hidden,.header-wrap--light .navigation__item--hidden{display:block;opacity:1}.navigation__subnav{display:-webkit-box;display:flex;position:absolute;top:75%;pointer-events:none}.navigation__subnav ul{position:relative;border-radius:3px 0 0 3px}.navigation__subnav ul:first-child{border-right:0 none}.navigation__subnav ul+ul{border-radius:0 3px 3px 0;border-left:0 none}.navigation__sub{position:absolute;top:75%;left:-1.5rem;padding:2rem 3rem;line-height:2.8rem;border-radius:0.3rem;border:0.1rem solid #e2e2e3;border-bottom-width:2px;background:#fff;opacity:0;-webkit-transform:translateY(-0.5rem);transform:translateY(-0.5rem);-webkit-transition:opacity 0.2s, -webkit-transform 0.2s;transition:opacity 0.2s, -webkit-transform 0.2s;transition:transform 0.2s, opacity 0.2s;transition:transform 0.2s, opacity 0.2s, -webkit-transform 0.2s;pointer-events:none}.header-wrap--fixed:hover .navigation__sub,.header-wrap--fixed .navigation__sub{top:98%;border-radius:0 0 0.3rem 0.3rem}.navigation__item--hover .navigation__sub,.navigation__item--hover .navigation__subnav{pointer-events:all;opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}.navigation__label{font-weight:600;margin:0 auto 1.2rem;padding:0 0 0.6rem;border-bottom:1px solid #e2e2e3}.navigation__subitem.standard a{font-weight:500}.navigation__subitem a{font-size:1.5rem;font-weight:500;color:#38383a;cursor:pointer}.navigation__subitem a:hover{color:#893999}.navigation__nav-divider{width:calc( 100% + 4rem);margin:1.4rem -2rem}@media (min-width: 1680px){.navigation{padding-right:3rem}}a:-webkit-any-link:focus-visible{outline-offset:10px}.mobile-nav__menu-button-wrapper{width:32px;height:24px;position:relative;cursor:pointer}.mobile-nav__menu-line{-webkit-backface-visibility:hidden;backface-visibility:hidden;width:100%;height:2px;position:absolute;left:0;top:10px;-webkit-transform-origin:center center;transform-origin:center center;-webkit-transition:-webkit-transform 0.3s,background 0.3s;-webkit-transition:transform 0.3s,background 0.3s;-webkit-transition:background 0.3s,-webkit-transform 0.3s;transition:background 0.3s,-webkit-transform 0.3s;transition:transform 0.3s,background 0.3s;transition:transform 0.3s,background 0.3s,-webkit-transform 0.3s;background-color:#fff}.mobile-nav__menu-line--top{webkit-transform:translateY(-4.5px);-webkit-transform:translateY(-4.5px);transform:translateY(-4.5px)}.mobile-nav__menu-line--bottom{-webkit-transform:translateY(4.5px);transform:translateY(4.5px)}.mobile-nav__menu{display:grid;grid-template-columns:[left-gutter] 0fr [content] 12fr [right-gutter] 0fr;width:100%;height:calc(100% - 18.6rem);position:fixed;top:90px;left:0;background-color:#0D0D0B;-webkit-transition:all 0.2s;transition:all 0.2s;opacity:0;visibility:hidden}.mobile-nav__menu--active{opacity:1;visibility:visible}.mobile-nav__section-header{color:#59697E;font-size:1.4rem;line-height:100%;text-transform:uppercase;border:none;border-top:1px solid var(--border-color);margin-left:4rem;padding:0;letter-spacing:.07rem;margin-top:1rem}.mobile-nav__section-header legend{padding-right:1rem}.mobile-nav__category-wrapper{grid-column:content;padding:0;margin:0;overflow-y:auto}.mobile-nav__title{display:block;padding:2.4rem 2rem;position:relative;font-weight:bold}.mobile-nav__title:after{content:'';background:url("/img2/header/icons/menu_carat.svg") no-repeat;position:absolute;top:3.5rem;right:2rem;height:1rem;width:1.4rem;background-size:100%;-webkit-transition:-webkit-transform 0.3s ease 0s;transition:-webkit-transform 0.3s ease 0s;transition:transform 0.3s ease 0s;transition:transform 0.3s ease 0s, -webkit-transform 0.3s ease 0s}.mobile-nav__title--no-accordion:after{display:none}.mobile-nav__title,.mobile-nav__menu-item-link{color:var(--text-primary);font-size:1.6rem;line-height:2rem}.mobile-nav__menu-item-link{display:block;padding-right:2rem;margin:0 0 2.4rem 4rem;color:var(--text-primary);-webkit-text-decoration:none;text-decoration:none;font-weight:400}.mobile-nav__submenu-wrapper{background-color:#efefef;padding:10px 20px;margin:10px 0}.mobile-nav__category-item{display:grid;margin:0;padding:0;list-style:none}.mobile-nav__category-item-link{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;border:none;margin:0;padding:0;text-align:inherit;background:transparent;color:inherit;font:inherit;line-height:normal;-webkit-font-smoothing:inherit;-moz-osx-font-smoothing:inherit;-webkit-appearance:none}.mobile-nav__category-item-layout{display:grid;grid-template-columns:auto;-webkit-box-align:center;align-items:center}.mobile-nav__title-wrapper{grid-column:1 / auto}.mobile-nav__accordion-toggle.active .mobile-nav__title:after{-webkit-transform:rotate(-180deg);transform:rotate(-180deg)}.mobile-nav__accordion{overflow:hidden;-webkit-transition:max-height 250ms ease 0s;transition:max-height 250ms ease 0s;max-height:0}.mobile-nav__accordion.active{max-height:1000px;height:auto}.mobile-nav__accordion-wrapper ul{list-style:none;padding:0}.mobile-nav__accordion-wrapper li:last-of-type{padding-bottom:.8rem}.mobile-nav__line{border-bottom:1px solid var(--border-color)}.mobile-nav__line:last-of-type{border-bottom:1px solid var(--border-color)}.mobile-nav__cta-wrap{position:fixed;bottom:0;padding:3.2rem 2rem 0;background:#fff;text-align:center;line-height:2rem;width:100%;box-shadow:0px -5px 10px #00000012}.mobile-nav__cta-button.btn{width:100%;max-width:33.5rem;margin:0 auto;padding:1.8rem 0;display:block;font-size:2rem;line-height:2.4rem;color:#F3F3F4}.mobile-nav__cta-link{color:#232932;display:inline-block;font-size:1.4rem;font-weight:400;line-height:1.7rem;text-transform:uppercase;margin:0 2rem;padding:2.4rem 0 3.2rem 0}.content-group{margin-left:-15px;margin-right:-15px}.content-group:before,.content-group:after{content:" ";display:table}.content-group:after{clear:both}.segment .content-group,.content-group .content-group{padding-top:0;padding-bottom:0;background:transparent}.content-group__body{position:relative;min-height:1px;padding-left:15px;padding-right:15px;margin-bottom:6rem}@media (min-width: 768px){.content-group__body{float:left;width:100%}}.content-group__body--has-sidebar{position:relative;min-height:1px;padding-left:15px;padding-right:15px}@media (min-width: 768px){.content-group__body--has-sidebar{float:left;width:66.6666666667%}}@media (min-width: 768px){.content-group__body{margin-bottom:0}}.content-group__sidebar{position:relative;min-height:1px;padding-left:15px;padding-right:15px;position:relative;min-height:1px;padding-left:15px;padding-right:15px;padding-top:3rem;border-top:1px solid #e2e2e3}@media (min-width: 768px){.content-group__sidebar{float:left;width:33.3333333333%}}@media (min-width: 992px){.content-group__sidebar{float:left;width:25%}}@media (min-width: 992px){.content-group__sidebar{margin-left:8.3333333333%}}@media (min-width: 768px){.content-group__sidebar{border-top:0;padding-top:0}}.content-group__sidebar h2:not([class]){margin-bottom:2rem}.content-group__sidebar h3:not([class]){font-size:2rem;font-weight:600}.content-group__sidebar dd{margin-bottom:1.5rem}.content-group__sidebar dl:not([class]),.content-group__sidebar ul:not([class]),.content-group__sidebar p:not([class]),.content-group__sidebar address:not([class]){margin-bottom:3rem}.content-group__sidebar ul:not([class]){padding-left:1.7rem}@media (min-width: 768px){.content-group--narrow{padding-top:3rem;padding-bottom:3rem}}@media (min-width: 768px){.content-group--narrow-bottom{padding-bottom:3rem}}@media (max-width: 767px){.content-group [class*="col-sm"]{margin-bottom:6rem}}.wrap__sidebar,.wrap__content{-webkit-transition:-webkit-transform 0.4s;transition:-webkit-transform 0.4s;transition:transform 0.4s;transition:transform 0.4s, -webkit-transform 0.4s}html.sidebar-open .wrap__content{-webkit-transform:translate3d(-22.5rem, 0, 0);transform:translate3d(-22.5rem, 0, 0)}@media (min-width: 992px){html.sidebar-open .wrap__content{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}.wrap__sidebar{-webkit-transform:translate3d(22.5rem, 0, 0);transform:translate3d(22.5rem, 0, 0)}html.sidebar-open .wrap__sidebar{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}html.sidebar-open{overflow:hidden}body.cookie{--cookie-banner-offset: 6.7rem}body.cookie .wrap{margin-bottom:var(--cookie-banner-offset)}.wrap{position:relative;width:100%;overflow:hidden;-webkit-overflow-scrolling:touch}html.sidebar-open .wrap__content{height:100vh;overflow:hidden;cursor:pointer}.wrap__sidebar{position:absolute;top:0;right:0}@media (min-width: 992px){.wrap__sidebar{display:none}} </style> <!-- Main CSS --> <!-- MAIN.CSS --> <style rel="stylesheet" type="text/css">.dropdown,form .select{display:inline-block;position:relative;width:26rem;height:4rem;line-height:4rem;text-align:left;border-radius:3px;border:0.1rem solid #e2e2e3;background:#f8f8f9;-webkit-transition:border 0.25s;transition:border 0.25s}.dropdown:hover,form .select:hover{border-color:#ccc}.dropdown__toggle{display:block;padding:0 3rem 0 1.5rem;font-size:1.6rem;color:var(--text-primary);text-decoration:none}.dropdown__toggle:hover{color:var(--text-primary)}.dropdown [class*="icon-"],form .select [class*="icon-"]{display:block;content:"";position:absolute;top:0.4rem;right:0;bottom:0;width:3.2rem;line-height:4rem;text-align:center;color:#8c8c91;pointer-events:none}.dropdown__menu{position:absolute;top:4.75rem;right:0;left:0;margin:0;padding:0;max-height:40rem;overflow:auto;border-radius:.3rem;border:.1rem solid #e2e2e3;background:#fff;opacity:0;z-index:1;-webkit-transform:translateY(-1rem);transform:translateY(-1rem);pointer-events:none;-webkit-transition:opacity .2s, -webkit-transform .2s;transition:opacity .2s, -webkit-transform .2s;transition:opacity .2s, transform .2s;transition:opacity .2s, transform .2s, -webkit-transform .2s}.dropdown__menu--show{opacity:1;-webkit-transform:translateY(0rem);transform:translateY(0rem);pointer-events:all}.dropdown__menu li{margin:0;padding:0;list-style:none}.dropdown__menu a{display:block;padding:0 1.5rem;color:var(--text-primary);text-decoration:none;line-height:4rem;vertical-align:middle}.dropdown__menu a:hover{background-color:#f8f8f9}.dropdown__menu li:first-child a{border-top:none}.country-flag{display:inline-block;margin:0 .8rem .2rem 0;width:16px;height:14px;vertical-align:middle;background:center no-repeat;background-size:16px}.country-flag.country-all{background-image:url("/img2/icons/flags/all.png")}.country-flag.country-us{background-image:url("/img2/icons/flags/us.png")}.country-flag.country-ca{background-image:url("/img2/icons/flags/ca.png")}.country-flag.country-gb{background-image:url("/img2/icons/flags/gb.png")}.country-flag.country-ad{background-image:url("/img2/icons/flags/ad.png")}.country-flag.country-ar{background-image:url("/img2/icons/flags/ar.png")}.country-flag.country-at{background-image:url("/img2/icons/flags/at.png")}.country-flag.country-au{background-image:url("/img2/icons/flags/au.png")}.country-flag.country-be{background-image:url("/img2/icons/flags/be.png")}.country-flag.country-bg{background-image:url("/img2/icons/flags/bg.png")}.country-flag.country-br{background-image:url("/img2/icons/flags/br.png")}.country-flag.country-cl{background-image:url("/img2/icons/flags/cl.png")}.country-flag.country-cn{background-image:url("/img2/icons/flags/cn.png")}.country-flag.country-hr{background-image:url("/img2/icons/flags/hr.png")}.country-flag.country-cy{background-image:url("/img2/icons/flags/cy.png")}.country-flag.country-dk{background-image:url("/img2/icons/flags/dk.png")}.country-flag.country-fi{background-image:url("/img2/icons/flags/fi.png")}.country-flag.country-fr{background-image:url("/img2/icons/flags/fr.png")}.country-flag.country-cz{background-image:url("/img2/icons/flags/cz.png")}.country-flag.country-es{background-image:url("/img2/icons/flags/es.png")}.country-flag.country-gr{background-image:url("/img2/icons/flags/gr.png")}.country-flag.country-hk{background-image:url("/img2/icons/flags/hk.png")}.country-flag.country-hu{background-image:url("/img2/icons/flags/hu.png")}.country-flag.country-de{background-image:url("/img2/icons/flags/de.png")}.country-flag.country-ge{background-image:url("/img2/icons/flags/ge.png")}.country-flag.country-gi{background-image:url("/img2/icons/flags/gi.png")}.country-flag.country-ee{background-image:url("/img2/icons/flags/ee.png")}.country-flag.country-id{background-image:url("/img2/icons/flags/id.png")}.country-flag.country-ie{background-image:url("/img2/icons/flags/ie.png")}.country-flag.country-il{background-image:url("/img2/icons/flags/il.png")}.country-flag.country-im{background-image:url("/img2/icons/flags/im.png")}.country-flag.country-in{background-image:url("/img2/icons/flags/in.png")}.country-flag.country-is{background-image:url("/img2/icons/flags/is.png")}.country-flag.country-it{background-image:url("/img2/icons/flags/it.png")}.country-flag.country-jp{background-image:url("/img2/icons/flags/jp.png")}.country-flag.country-kr{background-image:url("/img2/icons/flags/kr.png")}.country-flag.country-lv{background-image:url("/img2/icons/flags/lv.png")}.country-flag.country-li{background-image:url("/img2/icons/flags/li.png")}.country-flag.country-lt{background-image:url("/img2/icons/flags/lt.png")}.country-flag.country-lu{background-image:url("/img2/icons/flags/lu.png")}.country-flag.country-mc{background-image:url("/img2/icons/flags/mc.png")}.country-flag.country-mt{background-image:url("/img2/icons/flags/mt.png")}.country-flag.country-mx{background-image:url("/img2/icons/flags/mx.png")}.country-flag.country-my{background-image:url("/img2/icons/flags/my.png")}.country-flag.country-nl{background-image:url("/img2/icons/flags/nl.png")}.country-flag.country-nz{background-image:url("/img2/icons/flags/nz.png")}.country-flag.country-no{background-image:url("/img2/icons/flags/no.png")}.country-flag.country-other{background-image:url("/img2/icons/flags/other.png")}.country-flag.country-ph{background-image:url("/img2/icons/flags/ph.png")}.country-flag.country-pl{background-image:url("/img2/icons/flags/pl.png")}.country-flag.country-pt{background-image:url("/img2/icons/flags/pt.png")}.country-flag.country-ro{background-image:url("/img2/icons/flags/ro.png")}.country-flag.country-ru{background-image:url("/img2/icons/flags/ru.png")}.country-flag.country-sm{background-image:url("/img2/icons/flags/sm.png")}.country-flag.country-sk{background-image:url("/img2/icons/flags/sk.png")}.country-flag.country-si{background-image:url("/img2/icons/flags/si.png")}.country-flag.country-sg{background-image:url("/img2/icons/flags/sg.png")}.country-flag.country-es{background-image:url("/img2/icons/flags/es.png")}.country-flag.country-se{background-image:url("/img2/icons/flags/se.png")}.country-flag.country-ch{background-image:url("/img2/icons/flags/ch.png")}.country-flag.country-th{background-image:url("/img2/icons/flags/th.png")}.country-flag.country-tr{background-image:url("/img2/icons/flags/tr.png")}.country-flag.country-tw{background-image:url("/img2/icons/flags/tw.png")}.country-flag.country-va{background-image:url("/img2/icons/flags/va.png")}.country-flag.country-za{background-image:url("/img2/icons/flags/za.png")}.country-flag.country-none{background:#000}form .input-defaults,form .hs-input,form .select,form .textarea{display:block;width:36rem;max-width:100%;border-radius:3px;border:1px solid #e2e2e3}form p{margin:0 auto 2rem}form .hs-input{height:4rem;line-height:4rem;padding-left:1.2rem;display:inline-block;max-width:100%;box-shadow:none}form .hs-input:focus{border:1px solid #c8c8ca}form .hs-input--text,form .hs-input--tel,form .hs-input--email{-webkit-appearance:none;-moz-appearance:none;appearance:none}form .hs-input--checkbox{margin-right:.5rem}form .hs-input--radio{margin-right:.5rem}form .hs-input--block{display:block;width:100%}form .hs-input--inline{display:inline;width:auto}form .select{padding-left:1.2rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;color:#8c8c91;background:#f8f8f9 url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2229%22%20height%3D%2248%22%20viewBox%3D%220%200%2029%2048%22%3E%0A%3Cpath%20fill%3D%22%238c8c91%22%20d%3D%22M14.523%2045.825v0c-0.698%200-1.397-0.349-1.921-0.873l-10.651-11.349c-1.048-1.048-0.873-2.794%200.175-3.667%201.048-1.048%202.794-0.873%203.667%200.175l8.73%209.254%208.73-9.254c1.048-1.048%202.619-1.048%203.667-0.175%201.048%201.048%201.048%202.619%200.175%203.667l-10.651%2011.349c-0.524%200.524-1.222%200.873-1.921%200.873z%22%3E%3C/path%3E%0A%3Cpath%20fill%3D%22%238c8c91%22%20d%3D%22M25.174%2018.413c-0.698%200-1.397-0.349-1.921-0.873l-8.73-9.254-8.73%209.254c-0.873%201.222-2.619%201.222-3.667%200.175-1.048-0.873-1.048-2.619%200-3.667l10.651-11.349c1.048-1.048%202.794-1.048%203.841%200l10.476%2011.349c1.048%201.048%200.873%202.794-0.175%203.667-0.524%200.524-1.048%200.698-1.746%200.698z%22%3E%3C/path%3E%0A%3C/svg%3E%0A") 97% 50% no-repeat;background-position:calc(100% - 1.2rem);background-size:9px 14px}form .select:focus,form .select:active{outline:none}form .select option{position:relative;z-index:2;text-indent:1.2rem}form .textarea{width:100%;max-width:none}form .label{display:block;font-weight:600;margin-bottom:1rem}form .label--inline{display:inline-block;margin:0 .4rem 0 0}form .label--lite{font-weight:400}.clearfix:before,.container:before,.container-fluid:before,.card--inverse:before,.clearfix:after,.container:after,.container-fluid:after,.card--inverse:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.card--inverse:after{clear:both}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px;min-width:320px}@media (min-width: 768px){.container{width:750px}}@media (min-width: 992px){.container{width:970px}}@media (min-width: 1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px;min-width:320px}.row{margin-left:-15px;margin-right:-15px}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-1{width:8.3333333333%}.col-xs-2{width:16.6666666667%}.col-xs-3{width:25%}.col-xs-4{width:33.3333333333%}.col-xs-5{width:41.6666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.3333333333%}.col-xs-8{width:66.6666666667%}.col-xs-9{width:75%}.col-xs-10{width:83.3333333333%}.col-xs-11{width:91.6666666667%}.col-xs-12{width:100%}.col-xs-pull-0{right:auto}.col-xs-pull-1{right:8.3333333333%}.col-xs-pull-2{right:16.6666666667%}.col-xs-pull-3{right:25%}.col-xs-pull-4{right:33.3333333333%}.col-xs-pull-5{right:41.6666666667%}.col-xs-pull-6{right:50%}.col-xs-pull-7{right:58.3333333333%}.col-xs-pull-8{right:66.6666666667%}.col-xs-pull-9{right:75%}.col-xs-pull-10{right:83.3333333333%}.col-xs-pull-11{right:91.6666666667%}.col-xs-pull-12{right:100%}.col-xs-push-0{left:auto}.col-xs-push-1{left:8.3333333333%}.col-xs-push-2{left:16.6666666667%}.col-xs-push-3{left:25%}.col-xs-push-4{left:33.3333333333%}.col-xs-push-5{left:41.6666666667%}.col-xs-push-6{left:50%}.col-xs-push-7{left:58.3333333333%}.col-xs-push-8{left:66.6666666667%}.col-xs-push-9{left:75%}.col-xs-push-10{left:83.3333333333%}.col-xs-push-11{left:91.6666666667%}.col-xs-push-12{left:100%}.col-xs-offset-0{margin-left:0%}.col-xs-offset-1{margin-left:8.3333333333%}.col-xs-offset-2{margin-left:16.6666666667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.3333333333%}.col-xs-offset-5{margin-left:41.6666666667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.3333333333%}.col-xs-offset-8{margin-left:66.6666666667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.3333333333%}.col-xs-offset-11{margin-left:91.6666666667%}.col-xs-offset-12{margin-left:100%}.col-xs-offset-right-0{margin-right:0%}.col-xs-offset-right-1{margin-right:8.3333333333%}.col-xs-offset-right-2{margin-right:16.6666666667%}.col-xs-offset-right-3{margin-right:25%}.col-xs-offset-right-4{margin-right:33.3333333333%}.col-xs-offset-right-5{margin-right:41.6666666667%}.col-xs-offset-right-6{margin-right:50%}.col-xs-offset-right-7{margin-right:58.3333333333%}.col-xs-offset-right-8{margin-right:66.6666666667%}.col-xs-offset-right-9{margin-right:75%}.col-xs-offset-right-10{margin-right:83.3333333333%}.col-xs-offset-right-11{margin-right:91.6666666667%}.col-xs-offset-right-12{margin-right:100%}@media (min-width: 768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-1{width:8.3333333333%}.col-sm-2{width:16.6666666667%}.col-sm-3{width:25%}.col-sm-4{width:33.3333333333%}.col-sm-5{width:41.6666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.3333333333%}.col-sm-8{width:66.6666666667%}.col-sm-9{width:75%}.col-sm-10{width:83.3333333333%}.col-sm-11{width:91.6666666667%}.col-sm-12{width:100%}.col-sm-pull-0{right:auto}.col-sm-pull-1{right:8.3333333333%}.col-sm-pull-2{right:16.6666666667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.3333333333%}.col-sm-pull-5{right:41.6666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.3333333333%}.col-sm-pull-8{right:66.6666666667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.3333333333%}.col-sm-pull-11{right:91.6666666667%}.col-sm-pull-12{right:100%}.col-sm-push-0{left:auto}.col-sm-push-1{left:8.3333333333%}.col-sm-push-2{left:16.6666666667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.3333333333%}.col-sm-push-5{left:41.6666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.3333333333%}.col-sm-push-8{left:66.6666666667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.3333333333%}.col-sm-push-11{left:91.6666666667%}.col-sm-push-12{left:100%}.col-sm-offset-0{margin-left:0%}.col-sm-offset-1{margin-left:8.3333333333%}.col-sm-offset-2{margin-left:16.6666666667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.3333333333%}.col-sm-offset-5{margin-left:41.6666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.3333333333%}.col-sm-offset-8{margin-left:66.6666666667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.3333333333%}.col-sm-offset-11{margin-left:91.6666666667%}.col-sm-offset-12{margin-left:100%}.col-sm-offset-right-0{margin-right:0%}.col-sm-offset-right-1{margin-right:8.3333333333%}.col-sm-offset-right-2{margin-right:16.6666666667%}.col-sm-offset-right-3{margin-right:25%}.col-sm-offset-right-4{margin-right:33.3333333333%}.col-sm-offset-right-5{margin-right:41.6666666667%}.col-sm-offset-right-6{margin-right:50%}.col-sm-offset-right-7{margin-right:58.3333333333%}.col-sm-offset-right-8{margin-right:66.6666666667%}.col-sm-offset-right-9{margin-right:75%}.col-sm-offset-right-10{margin-right:83.3333333333%}.col-sm-offset-right-11{margin-right:91.6666666667%}.col-sm-offset-right-12{margin-right:100%}}@media (min-width: 992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-1{width:8.3333333333%}.col-md-2{width:16.6666666667%}.col-md-3{width:25%}.col-md-4{width:33.3333333333%}.col-md-5{width:41.6666666667%}.col-md-6{width:50%}.col-md-7{width:58.3333333333%}.col-md-8{width:66.6666666667%}.col-md-9{width:75%}.col-md-10{width:83.3333333333%}.col-md-11{width:91.6666666667%}.col-md-12{width:100%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.3333333333%}.col-md-pull-2{right:16.6666666667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.3333333333%}.col-md-pull-5{right:41.6666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.3333333333%}.col-md-pull-8{right:66.6666666667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.3333333333%}.col-md-pull-11{right:91.6666666667%}.col-md-pull-12{right:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.3333333333%}.col-md-push-2{left:16.6666666667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.3333333333%}.col-md-push-5{left:41.6666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.3333333333%}.col-md-push-8{left:66.6666666667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.3333333333%}.col-md-push-11{left:91.6666666667%}.col-md-push-12{left:100%}.col-md-offset-0{margin-left:0%}.col-md-offset-1{margin-left:8.3333333333%}.col-md-offset-2{margin-left:16.6666666667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.3333333333%}.col-md-offset-5{margin-left:41.6666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.3333333333%}.col-md-offset-8{margin-left:66.6666666667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.3333333333%}.col-md-offset-11{margin-left:91.6666666667%}.col-md-offset-12{margin-left:100%}.col-md-offset-right-0{margin-right:0%}.col-md-offset-right-1{margin-right:8.3333333333%}.col-md-offset-right-2{margin-right:16.6666666667%}.col-md-offset-right-3{margin-right:25%}.col-md-offset-right-4{margin-right:33.3333333333%}.col-md-offset-right-5{margin-right:41.6666666667%}.col-md-offset-right-6{margin-right:50%}.col-md-offset-right-7{margin-right:58.3333333333%}.col-md-offset-right-8{margin-right:66.6666666667%}.col-md-offset-right-9{margin-right:75%}.col-md-offset-right-10{margin-right:83.3333333333%}.col-md-offset-right-11{margin-right:91.6666666667%}.col-md-offset-right-12{margin-right:100%}}@media (min-width: 1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-1{width:8.3333333333%}.col-lg-2{width:16.6666666667%}.col-lg-3{width:25%}.col-lg-4{width:33.3333333333%}.col-lg-5{width:41.6666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.3333333333%}.col-lg-8{width:66.6666666667%}.col-lg-9{width:75%}.col-lg-10{width:83.3333333333%}.col-lg-11{width:91.6666666667%}.col-lg-12{width:100%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.3333333333%}.col-lg-pull-2{right:16.6666666667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.3333333333%}.col-lg-pull-5{right:41.6666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.3333333333%}.col-lg-pull-8{right:66.6666666667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.3333333333%}.col-lg-pull-11{right:91.6666666667%}.col-lg-pull-12{right:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.3333333333%}.col-lg-push-2{left:16.6666666667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.3333333333%}.col-lg-push-5{left:41.6666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.3333333333%}.col-lg-push-8{left:66.6666666667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.3333333333%}.col-lg-push-11{left:91.6666666667%}.col-lg-push-12{left:100%}.col-lg-offset-0{margin-left:0%}.col-lg-offset-1{margin-left:8.3333333333%}.col-lg-offset-2{margin-left:16.6666666667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.3333333333%}.col-lg-offset-5{margin-left:41.6666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.3333333333%}.col-lg-offset-8{margin-left:66.6666666667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.3333333333%}.col-lg-offset-11{margin-left:91.6666666667%}.col-lg-offset-12{margin-left:100%}.col-lg-offset-right-0{margin-right:0%}.col-lg-offset-right-1{margin-right:8.3333333333%}.col-lg-offset-right-2{margin-right:16.6666666667%}.col-lg-offset-right-3{margin-right:25%}.col-lg-offset-right-4{margin-right:33.3333333333%}.col-lg-offset-right-5{margin-right:41.6666666667%}.col-lg-offset-right-6{margin-right:50%}.col-lg-offset-right-7{margin-right:58.3333333333%}.col-lg-offset-right-8{margin-right:66.6666666667%}.col-lg-offset-right-9{margin-right:75%}.col-lg-offset-right-10{margin-right:83.3333333333%}.col-lg-offset-right-11{margin-right:91.6666666667%}.col-lg-offset-right-12{margin-right:100%}}p,.p{margin:1.5rem 0}p.p--large,.p.p--large{font-size:1.125em}p.p--space,.p.p--space{margin-top:3rem;margin-bottom:3rem}blockquote{margin:1.5rem 0}blockquote:before,blockquote:after{content:""}blockquote>p:before{content:"\201C"}blockquote>p:after{content:"\201D"}blockquote cite{font-family:"Polar", "Helvetica Neue", Helvetica, arial, sans-serif;font-style:normal;font-weight:500}.blockquote--no-quotes>p:before,.blockquote--no-quotes>p:after{content:""}.blockquote--large,.blockquote--mid{font-size:3.5rem;color:#893999;font-weight:300;line-height:4.4rem}@media (min-width: 1200px){.blockquote--large p:before,.blockquote--mid p:before{position:absolute;left:0rem}}.blockquote--large .cite,.blockquote--mid .cite{display:block;margin-top:3rem;font-size:1.6rem;color:var(--text-primary)}.blockquote--large .cite *,.blockquote--mid .cite *{display:block;line-height:1.8rem}.blockquote--large .cite b,.blockquote--mid .cite b{margin-bottom:.5rem}.blockquote--large .cite--has-image,.blockquote--mid .cite--has-image{position:relative;padding-left:7rem}.blockquote--large .cite--has-image img,.blockquote--mid .cite--has-image img{position:absolute;top:0;bottom:0;left:0;margin:auto;width:5rem;height:5rem;border-radius:50%}.blockquote--mid{margin:3rem auto;color:inherit;font-size:2rem;line-height:1.75;font-weight:400;text-align:left}@media (min-width: 768px){.blockquote--mid{font-size:2.2rem;line-height:3.2rem}}.blockquote--mid p:before,.blockquote--mid p:after{position:static}q:before{content:"\201C"}q:after{content:"\201D"}h1,.h1,h2,.h2,h3,.h3,h4,.h4,h4,.h5,h4,.h6{display:block;margin:0 0 1.5rem;font-weight:700}p+h1,p+.h1,p+h2,p+.h2,p+h3,p+.h3,p+h4,p+.h4,p+h4,p+.h5,p+h4,p+.h6{margin-top:6rem}@media (min-width: 768px){h1,.h1,h2,.h2,h3,.h3,h4,.h4,h4,.h5,h4,.h6{margin:0 0 3rem}}h1,.h1,h3,.h3,h5,.h5,h6,.h6{font-family:"Gruffy", "Helvetica Neue", Helvetica, arial, sans-serif}h1,.h1,h2,.h2,h3,.h3,h5,.h5,h6,.h6{font-weight:700}h2,.h2,h3,.h3,h5,.h5,h6,.h6{line-height:1.1}h1,.h1{font-size:var(--font-size-4xl);line-height:1}h2,.h2{font-size:var(--font-size-3xl)}p+h2,ul+h2,p+.h2,ul+.h2{margin-top:3rem}h3,.h3{margin:1.5rem 0;font-size:var(--font-size-2xl)}p+h3,ul+h3,p+.h3,ul+.h3{margin-top:3rem}h4,.h4{margin-bottom:1.5rem;font-size:var(--font-size-xl);font-weight:700}h4.h4--light,.h4.h4--light{font-weight:400}h5,.h5{margin-bottom:1.5rem;font-size:var(--font-size-lg)}h6,.h6{font-size:1.6rem}.heading-segment{font-weight:500;font-size:2.8rem;line-height:4.4rem;color:#893999;text-align:center}@media (min-width: 768px){.heading-segment{font-size:3.5rem;margin-bottom:12.5rem}}.heading-lite,.blockquote--large,.blockquote--mid,.heading-lite--centered{font-size:2.8rem;font-weight:700;color:#893999}@media (min-width: 768px){.heading-lite,.blockquote--large,.blockquote--mid,.heading-lite--centered{font-size:3.5rem;line-height:4.4rem}}.heading-lite--muted{color:var(--text-primary)}.heading-lite--centered{text-align:center}.heading-lite--tall{margin-bottom:6rem}.heading-label{display:inline-block;margin:0 auto;padding-bottom:0.8rem;color:#893999;font-size:1.7rem;font-weight:600;border-bottom:2px solid #e2e2e3}.heading-label--hidden{display:none;border-bottom:2px solid transparent}@media (min-width: 992px){.heading-label--hidden{display:inline-block}}.heading-content{margin:2.2rem auto 0;font-size:2.8rem;line-height:3.5rem;color:#38383a}@media (min-width: 992px){.heading-content{font-size:3.5rem;line-height:4.4rem}}.heading-content+p{margin-top:1rem}.heading-condensed{margin:0;font-size:3.5rem;font-family:'proxima-nova-condensed', sans-serif;font-weight:400;color:#ffffff}.heading-serif{font-family:'proxima-nova', sans-serif;letter-spacing:0}@media (min-width: 768px){.segment-lead{margin-bottom:9rem}}sup{font-size:0.5em;vertical-align:super}.footnote{font-size:var(--font-size-xs);line-height:1.1;color:#807D73}.footer,.footer__bottom{border-top:1px solid var(--border-color)}.footer__menu-wrap{display:grid;grid-template-areas:"logo" "links" "social";gap:40px}@media (max-width: 1679px){.footer__menu-wrap{font-size:1.6rem}}@media (min-width: 1200px){.footer__menu-wrap{grid-template-columns:var(--footer-logo-size, auto) 1fr;grid-template-areas:"logo links" "social links";gap:80px}}@media (min-width: 1680px){.footer__menu-wrap{--footer-logo-size: minmax(min-content, 240px)}}.footer__logo{grid-area:logo}.footer__lists{grid-area:links;display:grid;-webkit-box-align:start;align-items:start;gap:40px}@media (min-width: 620px){.footer__lists{grid-template-columns:repeat(var(--footer-list-columns, 3), auto);grid-template-rows:auto 1fr;row-gap:60px}}@media (min-width: 992px){.footer__lists{--footer-list-columns: 5;row-gap:80px}}@media (min-width: 620px){.footer__list{grid-row:span 2}.footer__list--shorty{grid-row:span 1;grid-column:2 / span 1}.footer__list--shorty+.footer__list--shorty{grid-row-start:2}}@media (min-width: 1200px){.footer__list{--stack-gap: 30px}}.footer__links{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;gap:20px}.footer__social{grid-area:social;display:-webkit-box;display:flex;gap:20px;align-self:end}.footer__social img{max-width:16px}.footer__social a{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:40px;height:40px;border-radius:50%;background-color:#FF5810;-webkit-transition:background-color .3s;transition:background-color .3s}.footer__social a:hover{background-color:#FF9D88}.footer__bottom{padding:40px 0}@media (max-width: 991px){.footer__bottom{padding-bottom:80px}}.footer__list-secondary{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;gap:20px}@media (min-width: 768px){.footer__list-secondary{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-box-pack:end;justify-content:end;flex-wrap:wrap}}@media (min-width: 1200px){.footer__list-secondary{gap:40px}}.footer .legal-consent-container{position:absolute}.footer-basic__grid{display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;-webkit-box-align:center;align-items:center;gap:40px}@media (max-width: 991px){.footer-basic__grid{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:start;justify-content:start;-webkit-box-align:start;align-items:start}}@media (max-width: 991px){.footer--basic .footer__social{align-self:start}}.brand{font:0/0 a;text-indent:-9999rem;text-shadow:none;background-color:transparent;border:0;height:3.5rem;width:11.5rem;background:center url("/img2/logo-white.svg") no-repeat;background-size:contain}.brand--purple{background-image:url("/img2/logo-purple.svg")}.brand--r{width:7.2rem;height:7.2rem;margin-left:auto;margin-right:auto;background-image:url("/img2/logo-r.svg")}.card{display:block;position:relative;padding:1rem;margin:3rem auto;color:var(--text-primary);text-decoration:none;border:solid #e2e2e3;border-width:1px 1px 2px 1px;border-radius:3px;line-height:1.4;background:#fff;-webkit-transition:border-color 0.25s;transition:border-color 0.25s}.carda:hover{border-color:#c5c5c8}.card--v-center{display:-ms-flex;display:-webkit-box;display:flex;-ms-align-items:center;-webkit-box-align:center;align-items:center}.card--has-profile-img{padding-left:6.4rem;margin:1.6rem auto}.card--is-event{border-width:2px;border-color:#f0f0f1;font-size:1.4rem;max-width:36rem;margin-left:0}.card--is-event h1,.card--is-event h2,.card--is-event h3,.card--is-event h4{color:inherit}.card--is-event:hover{color:var(--text-primary);border-color:#e2e2e3}.card--has-caret:after{position:absolute;top:0;bottom:0;right:1.5rem;height:1em;margin:auto;color:#893999;font:1.2rem/1 'icomoon';content:"\e603"}.card--grey{background:#f3f3f4;border-color:#f3f3f4}.card__align{display:block;width:100%}.card__title{margin-bottom:0;font-size:2.2rem;font-weight:600;color:#893999}.card__profile-img{position:absolute;top:0;bottom:0;left:1rem;width:4rem;height:4rem;border-radius:80px;margin:auto}.card__username,.card__date{display:block;font-weight:600}.card__footer{margin:2rem auto 0;padding:0 1rem}@media (min-width: 768px){.card__footer{position:absolute;bottom:2rem;left:0;right:0;margin:0 auto}}.card__footer--baseline{bottom:1rem}.card__base{position:absolute;bottom:0;width:100%;height:5rem;padding:1.5rem 0 0;background:#f8f8f9}.card a{color:#893999}.card small{font-size:inherit}.card--inverse{border:0;background:#f3f3f4;padding:1.5rem}.card--has-image{display:-ms-flex;display:-webkit-box;display:flex;min-height:9.5rem;padding-left:10rem;-ms-align-items:center;-webkit-box-align:center;align-items:center}.card--has-image img{position:absolute;left:2rem;top:0;bottom:0;margin:auto}.card--has-image__detail{-webkit-box-flex:1;flex:1}.card--has-image__detail b{font-size:1.6rem}.card--careers{min-height:21rem}.card--certificate__detail small{font-weight:300}.card--certificate__detail a{text-decoration:none}.cta-block{z-index:0;overflow:hidden}.cta-block__content,.cta-block__buttons{-webkit-box-align:center;align-items:center}.cta-block__content:not(.cta-block__buttons){--stack-gap: 40px}@media (min-width: 992px){.cta-block__content:not(.cta-block__buttons){--stack-gap: 60px}}.cta-block__headline{text-wrap:pretty}@media (min-width: 992px){.cta-block__buttons{--stack-gap: 30px}}.cta-block__bg{top:50%;left:50%;z-index:-1}@media (max-width: 767px){.cta-block__bg{max-width:none;width:200%;height:200%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}}@media (min-width: 768px){.cta-block__bg{inset:0;width:100%;height:100%;-o-object-fit:contain;object-fit:contain}}.learn-more,.card-cta,.more{font-weight:700;color:#893999;font-size:1.8rem;line-height:2.8rem}.learn-more:hover::after,.card-cta:hover::after,.more:hover::after{-webkit-transform:translateX(5px);transform:translateX(5px)}.learn-more:after,.card-cta:after,.more:after{content:" ";position:relative;display:inline-block;mask:url("/img2/company/text-cta-arrow-enabled.svg") no-repeat;-webkit-mask:url("/img2/company/text-cta-arrow-enabled.svg") no-repeat;-webkit-mask-size:cover;mask-size:cover;height:1rem;width:1.6rem;background-repeat:no-repeat;margin-left:1rem;right:0;-webkit-transition:-webkit-transform .25s ease-in;transition:-webkit-transform .25s ease-in;transition:transform .25s ease-in;transition:transform .25s ease-in, -webkit-transform .25s ease-in;background-color:var(--text-primary)}.link-inline{font-weight:700;color:#893999;-webkit-transition:color .25s;transition:color .25s}.link-inline:hover{color:#ab4ac3;text-decoration:underline}.link-inline--lite{color:#d470ed}.link-inline--lite:hover{color:#fff}.card-cta:hover{text-decoration:underline}.card-cta--purple-lite{color:#d470ed}.card-cta--purple-lite:hover{color:#d470ed}.card-cta--purple-lite:hover:after{background-color:#d470ed}.card-cta--purple-lite:after{background-color:#d470ed}.card-cta--white{color:#fff}.card-cta--white:hover{color:#fff}.card-cta--white:hover:after{background-color:#fff}.card-cta--white:after{background-color:#fff}.card-cta--black{color:#343F4A}.card-cta--black:hover{color:#343F4A}.card-cta--black:hover:after{background-color:#343F4A}.card-cta--black:after{background-color:#343F4A}.product .more,.more--alt{text-transform:none}@media (min-width: 768px){.more{white-space:nowrap}}@media (min-width: 768px){.more--buffer{padding-left:1rem}}span .more{color:#893999}.more--prev{padding-left:18px;padding-right:0}.more--prev:before{position:relative;left:-5px;top:0;bottom:1px;height:1em;margin:auto;font:1rem/1 'icomoon';content:"\e601";-webkit-transition:left 0.25s;transition:left 0.25s}.more--prev:after{content:" ";display:none}.more--prev:hover:before,a:hover .more--prev:before{left:-10px}.more--down:after{position:relative;right:-5px;top:0;bottom:1px;height:1em;margin:auto;font:1rem/1 'icomoon';content:"\e604"}.more--down:hover:after,a:hover .more--down:after{right:-5px}.more--up:after{position:relative;right:-5px;top:-2px;bottom:1px;height:1em;margin:auto;font:1rem/1 'icomoon';content:"\e602"}.more--up:hover:after,a:hover .more--up:after{right:-5px}.back{display:inline-block;position:relative;height:auto;padding-left:0.5rem;font-size:1.6rem;font-weight:600;text-decoration:none;text-transform:uppercase}.back:hover,a:hover .back{color:#8e5999}@media (min-width: 768px){.back{white-space:nowrap;font-size:1.5rem}}.back:before{position:relative;left:-5px;top:0;bottom:1px;height:1em;margin:auto;font:1rem/1 'icomoon';content:"\e601";-webkit-transition:left 0.25s;transition:left 0.25s}.back:hover:before,a:hover .back:before{left:-10px}@media (min-width: 768px){.back--buffer{padding-left:1rem}}span .back{color:#893999}.recurly-gdpr{display:none;position:fixed;bottom:0;width:100%;height:10.2rem;color:#fff;font-family:"Polar", "Helvetica Neue", Helvetica, arial, sans-serif;font-size:1.5rem;text-align:center;z-index:9;background:#1F242C;border-top:1px solid #798697}@media (min-width: 768px){.recurly-gdpr{height:5.8rem}}@media (min-width: 1200px){.recurly-gdpr{height:4.6rem}}.recurly-gdpr .container{position:relative}.recurly-gdpr p{margin:1 0 0.7rem;padding-right:4rem;font-size:1.3rem}@media (min-width: 992px){.recurly-gdpr p{padding-right:0}}.recurly-gdpr a{color:#fff;font-weight:400;text-decoration:underline}.recurly-gdpr .close{position:absolute;right:1.5rem;top:5px;width:1rem;height:1rem;cursor:pointer;background:url("/img2/icons/close-gdpr-white@2x.png") center no-repeat;background-size:10px}@media (-webkit-min-device-pixel-ratio: 1.3), (min-device-pixel-ratio: 1.3), (min-resolution: 1.3dppx){.recurly-gdpr .close{background-image:url("/img2/icons/close-gdpr-white@2x.png");background-size:10px 10px}}@media (min-width: 992px){.recurly-gdpr .close{right:0}}.mktoForm{width:100% !important}.mktoForm .mktoOffset,.mktoForm .mktoGutter{display:none}.mktoForm .mktoAsterix{display:none}.mktoForm .mktoRequiredField .mktoAsterix{display:inline-block;margin:0 0.3rem 0 0}.mktoForm .mktoField.mktoHasWidth.mktoRequired.mktoInvalid{border:1px solid #FF8200}.mktoForm div{text-align:left;margin:0;padding:0}.mktoForm .mktoClear{clear:both;float:none}.mktoForm .gdpr__privacy,.mktoForm #LblGDPR_Consent__c{font-family:"Polar", "Helvetica Neue", Helvetica, arial, sans-serif;color:#0D0D0B;font-weight:400}.mktoForm #LblGDPR_Consent__c{position:relative;background:transparent;font-size:1.4rem;line-height:2rem;margin-bottom:.8rem;padding-right:.2rem}.mktoForm .gdpr__privacy{font-size:1.4rem;line-height:2.2rem;margin:1.5rem 0 0}.mktoForm input{-webkit-transition:0.1s ease-out;transition:0.1s ease-out}.mktoForm input[type=url],.mktoForm input[type=text],.mktoForm input[type=date],.mktoForm input[type=tel],.mktoForm input[type=email],.mktoForm input[type=number],.mktoForm textarea.mktoField,.mktoForm select.mktoField{width:100% !important}.mktoForm input[type=email]+.mktoError .mktoErrorMsg{max-width:19.5rem}.mktoForm select.mktoField{padding:1.5rem 1.5rem 0rem 1.2rem;font-family:"Polar", "Helvetica Neue", Helvetica, arial, sans-serif;background:url("/img2/demo-request/dropdown-caret_expand.svg") 96% center #fff no-repeat;background-size:12px 7px;border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4rem;width:100%;padding:0.6rem;color:#535356;font-size:1.8rem;font-weight:500;border:0 none;border-radius:0;box-shadow:none}.mktoForm select.mktoField>option:first-child{color:transparent}.mktoForm select.mktoField:focus{outline:none}.mktoForm select.mktoField:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}.mktoForm .consent-label-container{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;flex-direction:row-reverse;-webkit-box-align:start;align-items:flex-start}.mktoForm .consent-label-container .mktoLabel{line-height:2rem}.mktoForm div.mktoFieldWrap:not(.consent-label-container) .mktoLabel.mktoHasWidth{font-size:1.4rem;line-height:2.2rem;position:absolute;left:1.4rem;right:30px;top:5px;background-color:white;-webkit-transition:.1s ease-out;transition:.1s ease-out;-webkit-transform-origin:left top;transform-origin:left top;pointer-events:none}.mktoForm div.mktoFieldWrap:not(.consent-label-container) .mktoLabel.mktoHasWidth.active{line-height:2.2rem;font-size:1.2rem;top:0;-webkit-transform:translateY(17%) scale(0.9);transform:translateY(17%) scale(0.9)}.mktoForm div.mktoRequiredField.selectLabel label.mktoLabel{position:relative;background:none;line-height:2rem;left:0;top:0;-webkit-transition:none;transition:none;-webkit-transform:none;transform:none}.mktoForm div.mktoRequiredField.selectLabel label.mktoLabel.active{font-size:1.6rem;line-height:2rem;-webkit-transform:none;transform:none}.mktoForm .mktoCheckboxList{padding:0;float:left;position:relative;top:0}.mktoForm .mktoCheckboxList label{font-size:1.4rem;line-height:2rem}.mktoForm .mktoCheckboxList>input{margin:0 1rem 0 0}.mktoForm .mktoCheckboxList>input:after{content:" ";font-size:1.4rem;background-color:#807D73;display:inline-block;visibility:visible}.mktoForm .mktoCheckboxList>input:checked:after{content:"\2713";box-shadow:0px 2px 4px rgba(155,155,155,0.15);border-radius:3px;height:1.5rem;display:block;width:1.5rem;text-align:center;font-size:1.2rem;color:white}.mktoForm .mktoLabel{line-height:3rem;font-family:"Polar", "Helvetica Neue", Helvetica, arial, sans-serif;font-size:1.6rem;font-weight:400;color:#0D0D0B;display:inline-block;float:none !important;width:auto}.mktoForm .mktoLabel span{color:#0D0D0B;font-size:1.4rem;line-height:2rem}.mktoForm .mktoButtonWrap.mktoSimple .mktoButton{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;height:5rem;padding:1rem 3rem;font-size:1.8rem;line-height:2.2rem;font-weight:400;color:#fff;text-align:center;text-decoration:none;text-overflow:ellipsis;text-transform:lowercase;white-space:nowrap;overflow:hidden;vertical-align:middle;cursor:pointer;border:0;border-radius:6px;background:#0D0D0B;-webkit-transition:all .3s ease-in;transition:all .3s ease-in}.mktoForm .mktoButtonWrap.mktoSimple .mktoButton:first-letter,.mktoForm .mktoButtonWrap.mktoSimple .mktoButton span:first-letter{text-transform:capitalize}.mktoForm .mktoButtonWrap.mktoSimple .mktoButton:hover{background:#FF9D88;color:#0D0D0B;-webkit-transform:none;transform:none}.mktoForm .mktoFormRow .mktoField:not([type="checkbox"]){background-color:#fff;border-radius:4px;border:1px solid #bdbbb6;color:#0D0D0B;display:block;float:none;height:5rem;font-family:"Polar", "Helvetica Neue", Helvetica, arial, sans-serif;font-size:1.6rem !important;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:1.6rem 1.5rem 0rem 1.2rem}.mktoForm .mktoFormRow .mktoField:not([type="checkbox"]):focus{outline:none;border-color:#0D0D0B}.mktoForm .mktoFormRow select.mktoField:not([type="checkbox"]){padding:1.6rem 1.5rem 0rem 1.2rem}.mktoForm .mktoError{position:initial;z-index:99;color:#bf0000}.mktoForm .mktoError .mktoErrorArrowWrap{display:none;width:16px;height:8px;overflow:hidden;position:absolute;top:0;left:5px;z-index:100}.mktoForm .mktoError .mktoErrorArrow{display:inline-block;height:16px;width:16px;margin-top:5px;border:0 none !important;background-color:#e35256 !important;border-right:none;border-bottom:none;-webkit-transform:rotate(45deg);transform:rotate(45deg);-ms-transform:rotate(45deg)}.mktoForm .mktoError .mktoErrorMsg{display:block;margin:0;padding:0;font-size:1.4rem;line-height:2.1rem;font-weight:400;max-width:18rem;color:#e35256;border:0 none !important;border-radius:3px !important;background:transparent !important;box-shadow:none !important;text-shadow:none !important}.mktoForm .mktoFormRow,.mktoForm .mktoFieldWrap,.mktoForm .mktoButtonRow{width:100%}@media (min-width: 768px){.mktoForm .mktoFormRow,.mktoForm .mktoFieldWrap,.mktoForm .mktoButtonRow{max-width:450px}}.mktoForm .mktoFormRow{display:block}@media (min-width: 992px){.mktoForm .mktoFormRow.twocol{display:-webkit-box;display:flex}.mktoForm .mktoFormRow.twocol .mktoFormCol:nth-child(1){padding-right:0.5rem}.mktoForm .mktoFormRow.twocol .mktoFormCol:nth-child(2){padding-left:0.5rem}}.mktoForm .mktoFormRow .mktoFormCol:only-child{padding-right:0}.mktoForm .mktoFormCol{width:100%}.mktoForm .mktoPlaceholderState{width:102%}.mktoForm .mktoField{background:transparent}.mktoForm .mktoFieldWrap{position:relative;box-sizing:border-box;margin-bottom:1.6rem}.mktoForm .mktoFormCol:nth-child(even) .mktoFieldWrap{padding-right:0 !important}.mktoForm .mktoForm .mktoButtonRow{margin:2rem 0 0;text-align:left}.mktoForm .mktoButtonWrap{margin-left:0 !important}.mktoForm .mktoHtmlText{font-family:"Polar", "Helvetica Neue", Helvetica, arial, sans-serif !important;font-size:1.3rem}.mktoForm input:-webkit-autofill,.mktoForm select:-webkit-autofill,.mktoForm input:-webkit-autofill:focus,.mktoForm select:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 50px #fff inset;color:#0D0D0B !important;-webkit-text-fill-color:#0D0D0B !important;font-weight:400 !important}.content-group__sidebar{border-top:0;height:0}.mktoHasWidth>.content-group__body--has-sidebar{float:none;margin:2rem 0 0}@media only screen and (max-width: 480px){.mktoFormCol{width:100% !important}.mktoFieldWrap{padding-right:0 !important}}div.wistiaMarketoFormWrapper label.mktoLabel.mktoHasWidth{line-height:2.2rem !important;font-size:1.3rem !important;top:1px !important;-webkit-transform:translateY(17%) scale(0.9);transform:translateY(17%) scale(0.9)}div.wistiaMarketoFormWrapper .mktoFormRow .mktoField:not([type="checkbox"]){height:5rem !important;padding:2rem 1.5rem 0rem 1.2rem !important}div.wistiaMarketoFormWrapper .gdpr__privacy{color:#FFFDF2}div.wistiaMarketoFormWrapper .mktoButton{height:3rem !important;padding:1rem 3rem !important;margin:0.4em 0 !important;font-size:1.8rem !important;float:left !important;color:#0D0D0B !important;box-shadow:none !important;border:none !important;background-image:none !important;background-color:#FFD706 !important;-webkit-border-radius:0px}div.wistiaMarketoFormWrapper .mktoFormCol{width:100%;display:block} </style> <!-- CUSTOM CSS --> <style rel="stylesheet" type="text/css">.hljs{display:block;overflow-x:auto;padding:0.5em;background:#F0F0F0}.hljs,.hljs-subst{color:#444}.hljs-comment{color:#888888}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-selector-pseudo{color:#BC6060}.hljs-literal{color:#78A960}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold}.hljs-comment,.hljs-quote{color:#969896}.hljs-variable,.hljs-template-variable,.hljs-selector-id,.hljs-selector-class,.hljs-regexp,.hljs-deletion{color:#cc6666}.hljs-tag{color:#e8e8e9}.hljs-name{color:#e87477}.hljs-number,.hljs-built_in,.hljs-builtin-name,.hljs-literal,.hljs-type,.hljs-params,.hljs-meta,.hljs-link{color:#de935f}.hljs-attribute{color:#f0c674}.hljs-attr{color:#b897bf}.hljs-string,.hljs-symbol,.hljs-bullet,.hljs-addition{color:#edb85c}.hljs-title,.hljs-section{color:#81a2be}.hljs-keyword,.hljs-selector-tag{color:#63b395}.hljs{display:block;overflow-x:hidden;font-family:'andale_monoregular', monospace;background:#38383a;color:#e8e8e9}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold}.quote-block__quote{position:relative;padding:1.2rem 0 2.5rem 0}@media (min-width: 768px){.quote-block__quote{padding:1.2rem 0 2.5rem 7rem}}.quote-block__quote:before{display:block;content:"\0201C";position:relative;top:1rem;left:-1rem;height:6rem;font-family:"Polar", "Helvetica Neue", Helvetica, arial, sans-serif;font-size:20rem;line-height:20rem;font-weight:100;color:#807D73}@media (min-width: 992px){.quote-block__quote:before{position:absolute;height:9rem}}.quote-block__quote.has-image:before{display:none}.quote-block__quote.has-image .case-study__quote--image{display:block}.quote-block__quote.has-image .case-study__quote--quote:before{display:block}.quote-block__quote.has-image .case-study__quote--quote:after{display:inline-block}.quote-block__quote--image{display:none;width:4.6rem;height:4.6rem;border-radius:5rem;background:#c5c5c7}@media (min-width: 768px){.quote-block__quote--image{position:absolute;top:2.6rem;left:0}}.quote-block__quote--quote{position:relative;color:#C23A00;font-size:var(--font-size-xl);line-height:1.2}.quote-block__quote--quote:before{display:none;content:"\0201C";position:absolute;top:0;left:-1rem}.quote-block__quote--quote:after{display:none;content:"\0201D";position:relative;top:0;left:0.5rem}.quote-block__quote--author{color:var(--text-primary);font-size:1.6rem;line-height:2.4rem}.pagination{padding:0 0 8rem 0}.pagination__items{display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;list-style:none;text-transform:uppercase;margin-top:0}.pagination__items li{border-top:0.1rem solid var(--border-color);border-bottom:0.1rem solid var(--border-color);border-right:0.1rem solid var(--border-color);text-align:center;width:3rem;min-height:3.3rem;padding-top:.4rem}.pagination__items li:hover{background-color:var(--border-color);color:#C23A00}.pagination__items .pages-indicator{color:#C23A00}.pagination__items .pages-indicator:hover{background-color:#fff;color:#2676a6}.pagination__items a.page-link,.pagination__items span.page-link{border:0}.pagination__items .page-item.active{background-color:#C23A00;color:#fff}.pagination__items .page-item.disabled{background-color:#fff;color:#807D73;font-weight:600}.pagination__items :first-child,.pagination__items :last-child{width:6.5rem}.pagination__items :first-child{border-left:0.1rem solid var(--border-color);border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.pagination__items :last-child{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.blog-filter{position:relative}.filter-by{float:left;margin:0 1.4rem 0 0;line-height:5.2rem;color:#C23A00;font-size:1.7rem}.sort-nav,.sort-subnav{margin:0;padding:0;list-style:none}.sort-nav{display:block;float:left;-webkit-transition:opacity 0.25s;transition:opacity 0.25s}.sort-nav a{display:block;z-index:2;width:100%;margin:0;font-weight:600;color:#0D0D0B;text-decoration:none}.sort-nav .sort-item{padding:1rem;font-size:1.4rem}.sort-nav-name{display:block;padding:1.4rem 2rem 1.4rem 0;font-weight:600;cursor:pointer}.sort-nav-name .sort-dropdown{display:inline-block;width:1.3rem;height:0.8rem;background:url("/img2/icons/dropdown-caret@2x.png") center no-repeat;background-size:12px}.sort-subnav{position:absolute;top:5.2rem;padding:1.5rem;font-size:1.4rem;z-index:1;opacity:0;border:1px solid #e2e2e3;background:#fff;-webkit-transition:opacity 0.25s;transition:opacity 0.25s;pointer-events:none}.active .sort-subnav{opacity:1;z-index:1;-webkit-transition:opacity 0.25s;transition:opacity 0.25s;pointer-events:all}.sort-subnav.content-type-subnav{width:14rem}.sort-subnav-item{display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;cursor:pointer;padding:0 0.5rem;margin:0 auto 0.4rem}.sort-subnav-item:hover,.sort-subnav-item.active{background:#f1efe3}.sort-subnav-item.active .close{display:inline-block}.sort-subnav-item .close{display:none;float:right;width:1.1rem;height:1.1rem;margin:5px 0 0 0;background:url("/img2/resources/close@2x.png") center no-repeat;background-size:0.7rem;text-indent:-9999px}.clear-filters{display:none;float:left;margin:0;padding:1.4rem 1rem;font-weight:400;cursor:pointer;text-decoration:underline}.blog .hide{display:none}.blog .header-wrap{z-index:9}.blog .body-container-wrapper{padding-top:4rem;padding-bottom:0;min-height:30rem}@media (min-width: 992px){.blog .body-container-wrapper{padding-top:9rem}}.blog .body-container-wrapper .body-container.container-fluid{width:100%;padding-left:0;padding-right:0}.blog u{text-decoration:none}.blog .hero--blog{padding-top:0.4rem;padding-bottom:2rem;height:22.3rem;border-top:8.7rem solid #fff}@media (min-width: 768px){.blog .hero--blog{padding-top:4.8rem;padding-bottom:5rem;min-height:30.5rem}}.blog .hero--blog h1{float:left;margin-top:1.4rem;font-size:3.5rem}@media (min-width: 768px){.blog .hero--blog h1{float:none;width:auto}}.blog-search-results .blog .hero--blog h1{font-weight:500}.blog-search-results .blog .hero--blog h1 span{font-weight:400}@media (min-width: 768px){.blog .hero--blog h1{font-size:4.125rem}.blog-search-results .blog .hero--blog h1{font-size:3rem}}@media (min-width: 992px){.blog .hero--blog h1{font-size:4.675rem}.blog-search-results .blog .hero--blog h1{font-size:3.4rem}}@media (min-width: 1200px){.blog .hero--blog h1{font-size:5.5rem}.blog-search-results .blog .hero--blog h1{font-size:5.5rem}}.blog .hero--blog h1 a{color:var(--text-primary);font-weight:800}.blog .blog-content-group,.blog .blog-comment-group,.blog .cta-group{margin-left:auto !important;margin-right:auto !important;float:none !important}.blog .post-item{padding-bottom:3rem;margin-bottom:3rem;border-bottom:1px solid var(--border-color)}@media (min-width: 768px){.blog .post-item{padding-bottom:9rem;margin-bottom:9rem}}.blog .post-item:last-child{border-bottom:0 none;margin-bottom:0}.blog .post-item.Small .featured-image-wrapper{float:left;margin-right:40px}.blog .post-item.Small .featured-image{margin-bottom:0}.blog .post-item.Small .post-item-content{float:right;width:100%;margin-top:-0.6rem}@media (min-width: 992px){.blog .post-item.Small .post-item-content{width:290px}}@media (min-width: 1200px){.blog .post-item.Small .post-item-content{width:360px}}.blog .post-item.Small .post-item-content p:first-child{margin-top:0}.blog .post-item .featured-image{float:left;max-width:100%;padding:0;margin-left:0;min-height:18.9rem;max-height:23.6rem}@media (min-width: 768px){.blog .post-item .featured-image{min-height:37.8rem}}@media (min-width: 992px){.blog .post-item .featured-image{min-height:27.1rem}}@media (min-width: 1200px){.blog .post-item .featured-image{min-height:31.5rem}}.blog .post-item .more{margin-top:1.2rem}.blog .blog-single{margin-bottom:12.5rem}.blog .blog-single.Small p:first-child img{float:right;margin:6px 0 30px 40px}@media (max-width: 767px){.blog .blog-post-wrapper .post-item{display:-webkit-box;display:flex;flex-wrap:wrap}.blog .blog-post-wrapper .post-item .post-meta{display:block;-webkit-box-ordinal-group:4;order:3;margin-top:2rem}.blog .blog-post-wrapper .post-item .post-meta .post-date,.blog .blog-post-wrapper .post-item .post-meta .post-author,.blog .blog-post-wrapper .post-item .post-meta .hubspot-topic_data{display:none}.blog .blog-post-wrapper .post-item .post-meta .relatedposts .post-date{display:block}}.blog .blog-listing-wrapper.post-view{padding-top:2rem}.blog .blog-learn-more:hover:before{left:-5px}.blog .blog-learn-more:after{display:none}.blog .blog-learn-more:before{content:" ";position:relative;display:inline-block;mask:url("/img2/company/text-cta-arrow-enabled.svg") no-repeat;-webkit-mask:url("/img2/company/text-cta-arrow-enabled.svg") no-repeat;-webkit-mask-size:cover;mask-size:cover;height:1rem;width:1.6rem;background-repeat:no-repeat;margin:0 1rem 0 0;left:0;-webkit-transition:left .25s ease-in;transition:left .25s ease-in;background-color:#893999;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.blog .post-link{margin:2.4rem 0 3.8rem 0}.blog .post-meta{position:relative;padding-right:3rem}@media (min-width: 768px){.blog .post-meta{display:block;padding-right:0}}@media (min-width: 992px){.blog .post-meta{width:15.2rem}}@media (min-width: 1200px){.blog .post-meta{width:19rem}}.blog .post-meta.fixed{position:fixed;top:10.8rem}.blog .post-meta .hubspot-topic_data{padding-bottom:2.5rem}.blog .sidebar-nav__wrap--sticky{top:9rem}.blog .mobile-meta{display:block;margin-bottom:.8rem}@media (min-width: 768px){.blog .mobile-meta{display:none}}.blog .mobile-meta .post-date,.blog .mobile-meta .post-author{display:inline-block}@media (min-width: 768px){.blog .mobile-meta .post-date,.blog .mobile-meta .post-author{display:none}}.blog .post-date{display:inline-block;font-weight:600}@media (min-width: 768px){.blog .post-date{display:block}}.blog .post-author{display:inline-block;padding:0.4rem 0 0rem}@media (min-width: 768px){.blog .post-author{padding:0.4rem 0 1.5rem}}@media (min-width: 992px){.blog .post-author{display:block;border-bottom:1px solid #e2e2e3}}.blog .social{padding:0.8rem 0 2rem}@media (min-width: 992px){.blog .social{padding:0.4rem 0 2.2rem}}.blog .social-button{display:inline-block;vertical-align:middle;min-height:2.8rem;height:2.8rem;margin:0 1rem 0 0}.blog .social-button a{font-size:1.2rem}.blog .social-button__facebook{width:7.7rem}.blog .social-button__twitter{width:7.3rem}.blog .social-button__linkedin{width:6.3rem}.blog .social-button__linkedin span{display:block !important}.blog .IN-widget>span{float:left}.blog .fb_iframe_widget span{vertical-align:top !important}.blog .post-content a:hover{text-decoration:underline}.blog .post-body,.blog .post-content{max-width:none}.blog .post-body img,.blog .post-content img{margin-bottom:2rem;width:100%}.blog .post-body h1,.blog .post-body .h1,.blog .post-body h2,.blog .post-body .h2,.blog .post-body h3,.blog .post-body .h3,.blog .post-body h4,.blog .post-body .h4,.blog .post-body h4,.blog .post-body .h5,.blog .post-body h4,.blog .post-body .h6,.blog .post-content h1,.blog .post-content .h1,.blog .post-content h2,.blog .post-content .h2,.blog .post-content h3,.blog .post-content .h3,.blog .post-content h4,.blog .post-content .h4,.blog .post-content h4,.blog .post-content .h5,.blog .post-content h4,.blog .post-content .h6{color:var(--text-primary);font-weight:600}.blog .post-body h1,.blog .post-body p+h1,.blog .post-content h1,.blog .post-content p+h1{margin:0 auto 2rem;font-size:2.8rem;line-height:3.5rem;font-weight:500}.blog .post-body p+h1,.blog .post-content p+h1{margin:4rem auto 2rem}.blog .post-body ul+h1,.blog .post-content ul+h1{margin:4rem 0 2rem}.blog .post-body h2,.blog .post-content h2{margin:0 0 2rem;font-size:2rem;line-height:3rem}.blog .post-body h3,.blog .post-content h3{margin:0 auto 1rem;font-size:1.8rem;color:var(--text-primary)}.blog .post-body h4,.blog .post-body h5,.blog .post-body h6,.blog .post-content h4,.blog .post-content h5,.blog .post-content h6{font-size:1.8rem}.blog .post-body li p,.blog .post-content li p{margin:0}.blog .post-body blockquote,.blog .post-content blockquote{margin:1.5rem 0;padding:1px 20px 1px 20px;color:#232932;font-size:1.6rem;border-left:4px solid #893999;background-color:#F9F9F9}.blog .post-body sub:before,.blog .post-content sub:before{content:" ";display:block;width:40%;height:2px;background:#232932}.blog .post-body iframe,.blog .post-content iframe{max-width:100%;width:426px;height:240px}@media (min-width: 768px){.blog .post-body iframe,.blog .post-content iframe{width:750px;height:300px}}@media (min-width: 1200px){.blog .post-body{padding-left:4.3rem}}.blog .wistia_responsive_padding{margin:4rem auto}.blog .comment-count{padding-top:0rem}.blog .comment-count a{margin:2rem auto}.blog .comment-count a:hover{color:#893999}.blog .relatedposts{display:none;clear:both;margin-top:1rem;padding-top:1rem;font-size:1.4rem;border-top:1px solid #e2e2e3}@media (min-width: 768px){.blog .relatedposts{margin-top:0}}@media (min-width: 992px){.blog .relatedposts{display:block}}.blog .relatedposts--mobile{display:block}@media (min-width: 992px){.blog .relatedposts--mobile{display:none}}.blog .relatedposts__label{color:#232932;font-size:1.4rem;font-weight:600}.blog .relatedposts a{display:block;display:-webkit-box;text-decoration:none;max-height:47px;margin:0 auto;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.blog .post-topics{display:none;font-size:1.4rem}@media (min-width: 992px){.blog .post-topics{display:block}}.blog .post-topics--mobile{display:block}@media (min-width: 992px){.blog .post-topics--mobile{display:none}}.blog .post-topics__label{color:#232932;font-size:1.4rem;font-weight:600}.blog .post-header{display:none;margin:-1px auto 0}@media (min-width: 992px){.blog .post-header{display:block}}.blog .post-header--mobile{display:block}@media (min-width: 992px){.blog .post-header--mobile{display:none}}.blog .post-header h1,.blog .post-header h2{color:var(--text-primary);font-size:2.7rem;font-weight:800}@media (min-width: 768px){.blog .post-header h1,.blog .post-header h2{font-size:3.5rem;line-height:3.8rem}}.blog .post-header h1 a,.blog .post-header h2 a{color:var(--text-highlight);font-weight:800}.blog .post-header__subtitle{margin:0;font-size:2.7rem;font-weight:500;color:#893999}@media (min-width: 768px){.blog .post-header__subtitle{font-size:3.5rem;line-height:4rem}}.blog .post-header__subtitle+h2{margin-top:0;font-size:2.2rem;line-height:3.2rem}@media (min-width: 768px){.blog .post-header__subtitle+h2{font-size:2.8rem;line-height:3.5rem}}.blog .post-header__subtitle a{text-decoration:none}.blog .post-header__title{font-size:2.2rem;font-weight:500}@media (min-width: 768px){.blog .post-header__title{font-size:2.8rem}}.blog-post .body-container-wrapper{padding-top:9rem}.blog-post .blog-listing-wrapper.post-view{padding-top:6.7rem}.blog__subscribe{padding-bottom:0;margin-bottom:0}@media (min-width: 768px){.blog__subscribe{padding-bottom:6rem;margin-bottom:4rem}}@media (min-width: 992px){.blog__subscribe{border-bottom:0 none}}.blog__subscribe-wrapper{position:relative;min-height:8.2rem;margin:0 auto 2rem;border-bottom:1px solid #e2e2e3}.blog__subscribe-wrapper .content-group__body--has-sidebar{width:100%}.blog__subscribe-wrapper .content-group__sidebar{display:none;width:100%;border:0 none}.blog__subscribe-wrapper .mktoForm{position:relative;padding:0}.blog__subscribe-wrapper .mktoForm *{padding:0}.blog__subscribe-wrapper .mktoForm .mktoRequiredField .mktoAsterix{display:none}.blog__subscribe-wrapper .mktoForm .mktoLabel{position:absolute;color:#798697;font-size:1.4rem;line-height:2.2rem;padding:1rem 0 1.1rem 1.2rem}.blog__subscribe-wrapper .mktoForm .mktoLabel.active{display:none}.blog__subscribe-wrapper .mktoForm .mktoRequiredField label.mktoLabel{font-weight:400;line-height:1rem}.blog__subscribe-wrapper .mktoForm>div:nth-child(2),.blog__subscribe-wrapper .mktoForm>div:nth-child(3),.blog__subscribe-wrapper .gdpr__privacy{display:none}.blog__subscribe-wrapper .mktoForm>div:nth-child(2).open,.blog__subscribe-wrapper .mktoForm>div:nth-child(3).open,.blog__subscribe-wrapper .gdpr__privacy.open{display:block}.blog__subscribe-wrapper .mktoForm .mktoButtonWrap.mktoSimple .mktoButton{background:url("/img2/icons/icon_arrow-button.svg") center no-repeat;background-color:var(--btn-primary-bg);background-size:16px 10px;padding:1.3rem 2.5rem 1.2rem;font-size:1.6rem;line-height:1em;font-weight:700;letter-spacing:0.01em;color:var(--btn-primary-text);text-indent:-9999px;overflow:hidden;vertical-align:middle;cursor:pointer;border:0;border-radius:3px;-webkit-transition:none;transition:none;width:4rem;height:4rem;margin:0 auto 0}.blog__subscribe-wrapper .mktoForm .mktoButtonWrap.mktoSimple .mktoButton:first-letter{text-transform:capitalize}.blog__subscribe-wrapper .mktoForm .mktoButtonWrap.mktoSimple .mktoButton:hover{color:var(--btn-primary-hover-text);background:url("/img2/icons/icon_arrow-button-black.svg") center no-repeat;background-color:var(--btn-primary-hover-bg)}.blog__subscribe-wrapper .mktoForm .mktoButtonWrap.mktoSimple .mktoButton:focus{outline:none}.blog__subscribe-wrapper .mktoForm .mktoButtonRow{position:absolute;top:0%;left:31rem}@media (min-width: 992px){.blog__subscribe-wrapper .mktoForm .mktoButtonRow{left:16.2rem}}@media (min-width: 1200px){.blog__subscribe-wrapper .mktoForm .mktoButtonRow{left:21.2rem}}.blog__subscribe-wrapper .mktoForm .mktoButtonRow.open{top:0%}.blog__subscribe-wrapper .mktoForm .mktoFieldWrap,.blog__subscribe-wrapper .mktoFieldDescriptor .mktoFormCol{margin-bottom:0}.blog__subscribe-wrapper .mktoForm .mktoFormCol{min-height:0}.blog__subscribe-wrapper .mktoForm .mktoFormRow .mktoField:not([type="checkbox"]){width:100%;height:4rem;font-size:1.4rem !important;padding:0.3rem 1.5rem 0rem 0.7rem}.blog__subscribe-wrapper .gdpr__privacy{font-size:1.2rem;line-height:1.8rem;margin:0;font-family:"Polar", "Helvetica Neue", Helvetica, arial, sans-serif}.blog__subscribe-wrapper .mktoForm .mktoCheckboxList{margin:0}.blog__subscribe-wrapper #LblGDPR_Consent__c{margin-bottom:0;padding:0;font-size:1.2rem;line-height:1.8rem}.blog__subscribe-wrapper #LblGDPR_Consent__c span{font-family:"Polar", "Helvetica Neue", Helvetica, arial, sans-serif;width:190px;display:inline-block;color:#798697}@media (min-width: 992px){.blog__subscribe-wrapper #LblGDPR_Consent__c span{width:165px}}.blog__subscribe-wrapper .mktoForm .mktoError{left:0;top:74%}@media (min-width: 768px){.blog__subscribe-wrapper .mktoForm .mktoError{top:50%}}.blog__subscribe-wrapper .mktoForm .mktoError .mktoErrorMsg{color:#DF381F;font-size:1.4rem;line-height:2.2rem}.blog__subscribe-wrapper .mktoForm button.mktoButton:disabled{opacity:1}.blog__subscribe-input{position:relative;max-width:36rem;padding:1rem 0rem 0;margin:0.5rem 0 6rem;border-top:1px solid #e2e2e3;border-radius:3px 3px 0 0}@media (min-width: 768px){.blog__subscribe-input{margin:3rem 0 0}}@media (min-width: 992px){.blog__subscribe-input{margin:6px 0 0;width:21.2rem}}@media (min-width: 1200px){.blog__subscribe-input{margin:6px 0 0 0;width:26.2rem}}.blog__subscribe-input.fixed{position:fixed;top:10.8rem}.blog__subscribe-input.thankyou{border:1px solid #e8e8e9;border-bottom:1px solid #e8e8e9;border-radius:3px}.blog__subscribe-input.thankyou .blog__subscribe-copy{height:8rem}@media (min-width: 768px){.blog__subscribe-input.thankyou .blog__subscribe-copy{height:12rem}}.blog__subscribe-input.thankyou .blog__subscribe-start{display:none}.blog__subscribe-copy{position:relative;width:100%;height:9rem;margin:0.1rem 0 0}.blog__subscribe-start,.blog__subscribe-end{position:absolute;width:100%;color:#232932;font-size:1.6rem;line-height:2.4rem;font-weight:700;margin:1.5rem 0 0 0}.blog__subscribe-start span,.blog__subscribe-end span{display:block;font-size:1.4rem;line-height:2.2rem;font-weight:400}.blog__subscribe-end{display:none;background:#fff;padding:0 1.5rem 2rem}@media (min-width: 768px){.blog__subscribe-end strong{display:block}}.blog__demowrap{text-align:center;background:#EFEFF1}.blog__demo-image{display:none;width:100%;margin:3rem 0 0;padding:1.5rem 0 0}@media (min-width: 992px){.blog__demo-image{display:block}}.blog__demo-image--mobile{display:block;width:36rem;height:16rem;margin:3rem 0 0;padding:1.5rem 0 0}@media (min-width: 992px){.blog__demo-image--mobile{display:none}}.blog__demo-content{padding:1rem 2rem 3rem}.blog__demo-header{color:#232932;font-size:2rem;font-weight:800}.blog__demo-copy{font-size:1.4rem;line-height:2.2rem}.blog__demo-btn{display:block;width:14.5rem;height:35px;margin:0 auto;padding:0 2.4rem;font-size:var(--font-size-xs);line-height:3.5rem}.blog .author-wrapper{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;margin-bottom:2.8rem;border-bottom:1px solid #e2e2e3;padding-bottom:1.8rem}@media (max-width: 991px){.blog .author-wrapper{padding-right:1.5rem;padding-left:1.5rem}}@media (min-width: 992px){.blog .author-wrapper{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}}@media (min-width: 992px){.blog .author-blog-input{margin-top:7rem}}.blog .author-blogposts{padding-bottom:9rem}@media (max-width: 767px){.blog .author-blogposts .container{margin-left:-1.5rem;margin-right:-1.5rem}}.blog .author-posts{margin:0 0 4.8rem 0;font-size:2rem;line-height:3.2rem}.blog .author-copy-block{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;font-size:1.8rem;line-height:2.8rem}.blog .author-bio{padding-top:14rem}@media (min-width: 992px){.blog .author-bio{padding-top:16.5rem;padding-bottom:6.4rem}}.blog .author-image{width:10rem;height:10rem;border-radius:50%;margin:0 0 2.4rem 0}@media (min-width: 768px){.blog .author-image{width:20rem;height:20rem;margin:0 5.4rem 0 0}}.blog .author-name{color:#232932;font-size:2.8rem;line-height:3.6rem;font-weight:800;margin-bottom:0.5rem}@media (min-width: 768px){.blog .author-name{font-size:4.4rem;line-height:5.2rem;margin-bottom:1rem}}.blog .author-title{font-size:2rem;line-height:3.2rem;margin:0}.blog .author-contact{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}@media (min-width: 768px){.blog .author-contact{display:-webkit-inline-box;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}}.blog .author-icon{width:2rem;height:1.35rem;opacity:.7;-webkit-transition:opacity 0.25s;transition:opacity 0.25s}.blog .author-icon:hover{opacity:1}@media (min-width: 992px){.blog .author-icon{margin:0.6rem 0 0 0.6rem}}.blog .author-about{font-size:1.8rem;line-height:2.8rem;margin:0}.blog__back-to-top{display:block;position:fixed;bottom:8rem;right:1.5rem;width:5.3rem;height:5.3rem;cursor:pointer;background:url("/img2/blog/img-2023-back-to-top-button-blog.svg") center no-repeat;background-size:53px;z-index:2}@media (min-width: 768px){.blog__back-to-top{display:none}} </style> <!-- typekit: proxima-nova webfonts - async --> <style rel="stylesheet" type="text/css">@import url("https://p.typekit.net/p.css?s=1&k=snh4sns&ht=tk&f=139.169.173.175.176.5474.145.147.149&a=82970348&app=typekit&e=css");@font-face{font-family:"proxima-nova";src:url("https://use.typekit.net/af/2555e1/00000000000000007735e603/30/l?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=n7&v=3") format("woff2"),url("https://use.typekit.net/af/2555e1/00000000000000007735e603/30/d?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=n7&v=3") format("woff"),url("https://use.typekit.net/af/2555e1/00000000000000007735e603/30/a?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=n7&v=3") format("opentype");font-display:swap;font-style:normal;font-weight:700;font-stretch:normal}@font-face{font-family:"proxima-nova";src:url("https://use.typekit.net/af/8738d8/00000000000000007735e611/30/l?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=n8&v=3") format("woff2"),url("https://use.typekit.net/af/8738d8/00000000000000007735e611/30/d?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=n8&v=3") format("woff"),url("https://use.typekit.net/af/8738d8/00000000000000007735e611/30/a?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=n8&v=3") format("opentype");font-display:swap;font-style:normal;font-weight:800;font-stretch:normal}@font-face{font-family:"proxima-nova";src:url("https://use.typekit.net/af/78aca8/00000000000000007735e60d/30/l?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=n6&v=3") format("woff2"),url("https://use.typekit.net/af/78aca8/00000000000000007735e60d/30/d?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=n6&v=3") format("woff"),url("https://use.typekit.net/af/78aca8/00000000000000007735e60d/30/a?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=n6&v=3") format("opentype");font-display:swap;font-style:normal;font-weight:600;font-stretch:normal}@font-face{font-family:"proxima-nova";src:url("https://use.typekit.net/af/efe4a5/00000000000000007735e609/30/l?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=n4&v=3") format("woff2"),url("https://use.typekit.net/af/efe4a5/00000000000000007735e609/30/d?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=n4&v=3") format("woff"),url("https://use.typekit.net/af/efe4a5/00000000000000007735e609/30/a?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=n4&v=3") format("opentype");font-display:swap;font-style:normal;font-weight:400;font-stretch:normal}@font-face{font-family:"proxima-nova";src:url("https://use.typekit.net/af/3322cc/00000000000000007735e616/30/l?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=i4&v=3") format("woff2"),url("https://use.typekit.net/af/3322cc/00000000000000007735e616/30/d?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=i4&v=3") format("woff"),url("https://use.typekit.net/af/3322cc/00000000000000007735e616/30/a?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=i4&v=3") format("opentype");font-display:swap;font-style:italic;font-weight:400;font-stretch:normal}@font-face{font-family:"proxima-nova";src:url("https://use.typekit.net/af/1be3c2/00000000000000007735e606/30/l?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=n3&v=3") format("woff2"),url("https://use.typekit.net/af/1be3c2/00000000000000007735e606/30/d?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=n3&v=3") format("woff"),url("https://use.typekit.net/af/1be3c2/00000000000000007735e606/30/a?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=n3&v=3") format("opentype");font-display:swap;font-style:normal;font-weight:300;font-stretch:normal}@font-face{font-family:"proxima-nova-condensed";src:url("https://use.typekit.net/af/2000e8/00000000000000007735e612/30/l?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=n3&v=3") format("woff2"),url("https://use.typekit.net/af/2000e8/00000000000000007735e612/30/d?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=n3&v=3") format("woff"),url("https://use.typekit.net/af/2000e8/00000000000000007735e612/30/a?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=n3&v=3") format("opentype");font-display:swap;font-style:normal;font-weight:300;font-stretch:normal}@font-face{font-family:"proxima-nova-condensed";src:url("https://use.typekit.net/af/669f97/00000000000000007735e623/30/l?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=n4&v=3") format("woff2"),url("https://use.typekit.net/af/669f97/00000000000000007735e623/30/d?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=n4&v=3") format("woff"),url("https://use.typekit.net/af/669f97/00000000000000007735e623/30/a?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=n4&v=3") format("opentype");font-display:swap;font-style:normal;font-weight:400;font-stretch:normal}@font-face{font-family:"proxima-nova-condensed";src:url("https://use.typekit.net/af/3f0c14/00000000000000007735e626/30/l?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=n6&v=3") format("woff2"),url("https://use.typekit.net/af/3f0c14/00000000000000007735e626/30/d?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=n6&v=3") format("woff"),url("https://use.typekit.net/af/3f0c14/00000000000000007735e626/30/a?primer=7fa3915bdafdf03041871920a205bef951d72bf64dd4c4460fb992e3ecc3a862&fvd=n6&v=3") format("opentype");font-display:swap;font-style:normal;font-weight:600;font-stretch:normal}.tk-proxima-nova{font-family:"proxima-nova",sans-serif}.tk-proxima-nova-condensed{font-family:"proxima-nova-condensed",sans-serif} </style> <script>window.schema_highlighter={accountId: "TheElevenGroup/Recurly", outputCache: true}</script> <script async src="https://cdn.schemaapp.com/javascript/highlight.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "BlogPosting", "name": "16 Strategies to reduce subscriber churn", "headline": "16 Strategies to reduce subscriber churn", "description": "In the subscription business, winning a customer is only the beginning.", "datePublished": "2023-07-31T08:00:00+08:00", "author": { "@type": "Person", "@id": "https://recurly.com/author/paola-lagunes/#Person", "name": "Paola Lagunes", "url": "https://recurly.com/author/paola-lagunes/", "image": { "@type": "ImageObject", "@id": "https://images.ctfassets.net/wob906kz2qeo/63mKOHXEK73eJtfI74v7G/0d82ed774c16d86f5cbbd77dd8d58798/Recurly_R_Logomark_Purple_592x592.png", "url": "https://images.ctfassets.net/wob906kz2qeo/63mKOHXEK73eJtfI74v7G/0d82ed774c16d86f5cbbd77dd8d58798/Recurly_R_Logomark_Purple_592x592.png", "height": "200", "width": "200" } }, "publisher": { "@type": "Organization", "@id": "https://recurly.com/", "name": "Recurly", "logo": { "@type": "ImageObject", "@id": "https://recurly.com/img2/logo-purple.svg", "url": "https://recurly.com/img2/logo-purple.svg" } }, "image": { "@type": "ImageObject", "@id": "https://images.ctfassets.net/wob906kz2qeo/vfCh2hdaUTYj84PVOXAc5/651fe9a4b25adf6a8efc41dfffdde06e/img-2022-09-pillar-page-churn-analysis-blog-image-1200x630.png", "url": "https://images.ctfassets.net/wob906kz2qeo/vfCh2hdaUTYj84PVOXAc5/651fe9a4b25adf6a8efc41dfffdde06e/img-2022-09-pillar-page-churn-analysis-blog-image-1200x630.png", "height": "271", "width": "516" }, "url": "https://recurly.com/blog/reduce-churn/", "isPartOf": { "@type" : "Blog", "@id": "https://recurly.com/blog/", "name": "Subscription Digest", "publisher": { "@type": "Organization", "@id": "https://recurly.com/blog/", "name": "https://recurly.com/" } }, "wordCount": "2407"} </script> </head> <body class="blog blog-post stickynav"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-P8SKV3B" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <script type="text/javascript"> document.addEventListener('DOMContentLoaded', (event) => { document.querySelectorAll('p code').forEach((block) => { hljs.highlightBlock(block); }); }); </script> <div class="wrap"> <div class="wrap__content"> <header class="header-wrap" data-theme="black"> <div class="header container-v2"> <a href="/" class="header__logo">Recurly</a> <nav class="header__navigation"> <ul class="navigation"> <li class="navigation__item subnav" data-subnav="product" id="topnav-product"> <a tabindex="0" href="/product/" class="link-no-underline" >Product</a> <div class="subnav-item__column subnav-item__large subnav-item__column--product hide"> <ul class="subnav-item__left"> <li class="subnav-item__nav" data-hover="1"> <h3 class="subnav-item__link" ><a href="/product/plans-pricing-promotions/">Plans, pricing & promotions</a></h3> </li> <li class="subnav-item__nav" data-hover="2"> <h3 class="subnav-item__link" ><a href="/product/subscriber-management/">Subscriber management</a></h3> </li> <li class="subnav-item__nav" data-hover="3"> <h3 class="subnav-item__link" ><a href="/product/payments-orchestration/">Payments orchestration</a></h3> </li> <li class="subnav-item__nav" data-hover="4"> <h3 class="subnav-item__link" ><a href="/product/recurring-billing/">Recurring billing</a></h3> </li> <li class="subnav-item__nav" data-hover="5"> <h3 class="subnav-item__link" ><a href="/product/churn-management/">Churn management</a></h3> </li> <li class="subnav-item__nav" data-hover="7"> <h3 class="subnav-item__link" ><a href="/product/reporting-analytics/">Reporting & analytics</a></h3> </li> </ul> <div class="subnav-item__mid"> <ul class="subnav-item__secondary subnav-item__secondary--1 active"> <li class="subnav-item__nav"><a href="/product/plans-pricing-promotions/" >Overview</a></li> <li class="subnav-item__nav"><a href="/product/pricing-models/" >Pricing models</a></li> <li class="subnav-item__nav"><a href="/product/plans-addons/" class="subnav-item__secondary--small" >Plans & add-ons</a></li> <li class="subnav-item__nav"><a href="/product/item-catalog/" >Item catalog</a></li> <li class="subnav-item__nav"><a href="/product/trial-management/" >Trial management</a></li> <li class="subnav-item__nav"><a href="/product/coupons-discounts/" >Coupons & discounts</a></li> <li class="subnav-item__nav"><a href="/product/gift-subscriptions-cards/" >Gift subscriptions & cards</a></li> </ul> <ul class="subnav-item__secondary subnav-item__secondary--2"> <li class="subnav-item__nav"><a href="/product/subscriber-management/" >Overview</a></li> <li class="subnav-item__nav"><a href="/product/subscription-management/" >Subscription management</a></li> <li class="subnav-item__nav"><a href="/product/multi-subscription-support/" >Multi-subscription support</a></li> <li class="subnav-item__nav"><a href="/product/subscriber-lifecycle-emails/" >Billing communications</a></li> <li class="subnav-item__nav"><a href="/product/subscriber-engagement/" >Subscriber engagement</a></li> <li class="subnav-item__nav"><a href="/product/account-hierarchy/" >Account hierarchy</a></li> <li class="subnav-item__nav"><a href="/product/checkout/" >Checkout</a></li> </ul> <ul class="subnav-item__secondary subnav-item__secondary--3"> <li class="subnav-item__nav"><a href="/product/payments-orchestration/" >Overview</a></li> <li class="subnav-item__nav"><a href="/product/multiple-gateways/" >Multiple payment gateways</a></li> <li class="subnav-item__nav"><a href="/product/alternative-payment-methods/" >Alternative payment methods</a></li> <li class="subnav-item__nav"><a href="/product/subscriber-wallet/" >Subscriber wallet</a></li> <li class="subnav-item__nav"><a href="/product/fraud-management/" >Fraud management</a></li> </ul> <ul class="subnav-item__secondary subnav-item__secondary--4"> <li class="subnav-item__nav"><a href="/product/recurring-billing/" >Overview</a></li> <li class="subnav-item__nav"><a href="/product/automated-billing-receipts/" >Automated & manual invoicing</a></li> <li class="subnav-item__nav"><a href="/product/invoice-customization/" >Invoice & receipt customization</a></li> <li class="subnav-item__nav"><a href="/product/charges-credits/" >Charges & credits</a></li> <li class="subnav-item__nav"><a href="/product/taxes-compliance/" >Taxes & compliance</a></li> </ul> <ul class="subnav-item__secondary subnav-item__secondary--5"> <li class="subnav-item__nav"><a href="/product/churn-management/" >Overview</a></li> <li class="subnav-item__nav"><a href="/product/intelligent-retries/" >Intelligent retries</a></li> <li class="subnav-item__nav"><a href="/product/account-updater/" >Account updater</a></li> <li class="subnav-item__nav"><a href="/product/expired-card-management/" >Expired card management</a></li> <li class="subnav-item__nav"><a href="/product/dunning-campaign/" >Dunning campaigns</a></li> <li class="subnav-item__nav"><a href="/product/backup-payment-method/" >Backup payment method</a></li> <li class="subnav-item__nav"><a href="/product/pause-subscription/" >Pause subscriptions</a></li> </ul> <ul class="subnav-item__secondary subnav-item__secondary--6"> <li class="subnav-item__nav"><a href="/product/revenue-recognition/" >Overview</a></li> <li class="subnav-item__nav"><a href="/product/revenue-management/" >Revenue management</a></li> <li class="subnav-item__nav"><a href="/product/revenue-compliance/" >Revenue compliance</a></li> <li class="subnav-item__nav"><a href="/product/revenue-forecasting/" >Revenue forecasting</a></li> <li class="subnav-item__nav"><a href="/product/multiple-revenue-models/" >Multiple revenue models</a></li> </ul> <ul class="subnav-item__secondary subnav-item__secondary--7"> <li class="subnav-item__nav"><a href="/product/reporting-analytics/" >Overview</a></li> <li class="subnav-item__nav"><a href="/product/dashboards-reports/" >Dashboards & reports</a></li> <li class="subnav-item__nav"><a href="/product/report-builder/" >Report builder</a></li> <li class="subnav-item__nav"><a href="/product/built-in-benchmarks/" >Built-in benchmarks</a></li> <li class="subnav-item__nav"><a href="/product/data-imports-exports/" >Data imports & exports</a></li> </ul> </div> <div class="subnav-item__right"> <p><strong>OTHER PRODUCTS</strong></p> <p><a href="/product/revenue-recognition/">Revenue recognition</a></p> <p><a href="/product/app-management/" >App management</a></p> <p><strong>ALSO VIEW</strong></p> <p><a href="/product/integration-methods/" >Integration methods</a></p> <p><a href="/product/partner-ecosystem/" >Partner ecosystem</a></p> <p><a href="/product/security-compliance/" >Security & compliance</a></p> <p><a href="/product/global-expansion/" >Global expansion</a></p> <p><a href="/product/support-and-services/" >Support & services</a></p> </div> </div> </li> <li class="navigation__item subnav" data-subnav="solutions" id="topnav-solutions"> <a tabindex="0" href="/solutions/" class="link-no-underline" >Solutions</a> <div class="subnav-item__column subnav-item__column--solutions subnav-item__large subnav-item__large--solutions hide"> <ul class="subnav-item__left"> <li class="subnav-item__nav" data-hover="1"> <h3 class="subnav-item__link" tabindex="0">Industry</h3> </li> <li class="subnav-item__nav" data-hover="2"> <h3 class="subnav-item__link" tabindex="0">Business role</h3> </li> <li class="subnav-item__nav" data-hover="3"> <h3 class="subnav-item__link" tabindex="0">Business size</h3> </li> </ul> <div class="subnav-item__mid"> <ul class="subnav-item__secondary subnav-item__secondary--1 active"> <li class="subnav-item__nav"><a href="/solutions/streaming-media/" >Streaming media</a></li> <li class="subnav-item__nav"><a href="/solutions/digital-publishing/" >Digital publishing</a></li> <li class="subnav-item__nav"><a href="/solutions/education-elearning/" >eLearning</a></li> <li class="subnav-item__nav"><a href="/solutions/software-b2c-saas/" >B2C SaaS</a></li> <li class="subnav-item__nav"><a href="/solutions/software-b2b-saas/" >B2B SaaS</a></li> <li class="subnav-item__nav"><a href="/solutions/consumer-goods-and-retail/" >Consumer goods & retail</a></li> <li class="subnav-item__nav"><a href="/solutions/business-services/" >Business services</a></li> <li class="subnav-item__nav"><a href="/solutions/health-and-wellness/" >Health & wellness</a></li> <li class="subnav-item__nav"><a href="/solutions/travel-hospitality-entertainment/" >Travel, hospitality & entertainment</a></li> <li class="subnav-item__nav"><a href="/solutions/telecom-energy-utlities/" >Telecom, energy & utilities</a></li> <li class="subnav-item__nav"><a href="/solutions/government-and-non-profit/" >Government & non-profit</a></li> </ul> <ul class="subnav-item__secondary subnav-item__secondary--2"> <li class="subnav-item__nav"><a href="/solutions/subscriptions-finance-roles/" >Finance</a></li> <li class="subnav-item__nav"><a href="/solutions/subscriptions-technology-roles/" >IT & Engineering</a></li> <li class="subnav-item__nav"><a href="/solutions/subscriptions-product-management-roles/" >Product Management</a></li> <li class="subnav-item__nav"><a href="/solutions/subscriptions-sales-and-marketing-roles/" >Sales & Marketing</a></li> </ul> <ul class="subnav-item__secondary subnav-item__secondary--3"> <li class="subnav-item__nav"><a href="/solutions/small-and-medium-businesses/" >Small & medium</a></li> <li class="subnav-item__nav"><a href="/solutions/mid-market/" >Mid-market</a></li> <li class="subnav-item__nav"><a href="/solutions/enterprise/" >Enterprise</a></li> </ul> <!-- <ul class="subnav-item__secondary subnav-item__secondary--4"> <li class="subnav-item__nav"><a href="/solutions/automated-billing-receipts/" >Launch a subscription business</a></li> <li class="subnav-item__nav"><a href="/solutions/invoice-customization/" >Personalize plans and offers</a></li> <li class="subnav-item__nav"><a href="/solutions/charges-credits/" >Test and find the optimal pricing strategy</a></li> <li class="subnav-item__nav"><a href="/solutions/taxes-compliance/" >Incorporate trials, coupons and gifts</a></li> <li class="subnav-item__nav"><a href="/solutions/taxes-compliance/" >Expand to international markets</a></li> <li class="subnav-item__nav"><a href="/solutions/taxes-compliance/" >Manage web and mobile subscriptions</a></li> </ul> <ul class="subnav-item__secondary subnav-item__secondary--5"> <li class="subnav-item__nav"><a href="/solutions/intelligent-retries/" >Accelerate subscriber acquisition</a></li> <li class="subnav-item__nav"><a href="/solutions/account-updater/" >Grow subscriber lifetime value</a></li> <li class="subnav-item__nav"><a href="/solutions/expired-card-management/" >Orchestrate and optimize payments</a></li> <li class="subnav-item__nav"><a href="/solutions/dunning-campaign/" >Streamline billing and stay compliant</a></li> <li class="subnav-item__nav"><a href="/solutions/backup-payment-method/" >Reduce subscriber churn </a></li> <li class="subnav-item__nav"><a href="/solutions/pause-subscription/" >Automate revenue recognition</a></li> </ul> --> </div> </div> </li> <li class="navigation__item" id="topnav-customers"> <a tabindex="0" href="/customers/" class="link-no-underline" >Customers</a> </li> <li class="navigation__item" id="topnav-pricing"> <a tabindex="0" href="/plans/" class="link-no-underline" >Pricing</a> </li> <li class="navigation__item subnav" data-subnav="resources" id="topnav-resources"> <a tabindex="0" href="/resources/" class="link-no-underline" >Resources</a> <div class="subnav-item__column subnav-item__column--resources subnav-item__large subnav-item__large--resources hide"> <ul class="subnav-item__left"> <li class="subnav-item__nav" data-hover="1"> <a class="subnav-item__link" href="/resources/" >Resource center</a> </li> <li class="subnav-item__nav" data-hover="2"> <a class="subnav-item__link" href="/research/" >Benchmarks & insights</a> </li> <li class="subnav-item__nav" data-hover="3"> <a class="subnav-item__link" href="/events/" >Events</a> </li> <li class="subnav-item__nav" data-hover="4"> <a class="subnav-item__link" href="/blog/" >Blog</a> </li> <li class="subnav-item__nav" data-hover="5"> <a class="subnav-item__link" href="/developers/" >Developers</a> </li> <li class="subnav-item__nav" data-hover="6"> <a class="subnav-item__link" href="https://docs.recurly.com" >Documentation</a> </li> </ul> <div class="subnav-item__right"> <p><strong class="nav-resources__label" >FEATURED</strong></p> <a href="/resources/report/state-of-subscriptions/"><img class="nav-resources__image lazyload" data-src="/img2/promo-banners/img-SoS-Launch-ResourceTile_2025.png" alt="The 2025 State of subscriptions" /></a> <p class="nav-resources__title"><a href="/resources/report/state-of-subscriptions/">The 2025 State of subscriptions</a></p> </div> </div> </li> <li class="navigation__item subnav" data-subnav="about" id="topnav-about"> <a tabindex="0" href="/company/" class="link-no-underline">About</a> <div class="subnav-item__column subnav-item__column--about subnav-item__large subnav-item__large--about hide"> <ul class="subnav-item__left"> <li class="subnav-item__nav"> <a class="subnav-item__link" href="/company/" >Company</a> </li> <li class="subnav-item__nav"> <a class="subnav-item__link" href="/company/#leadership" >Leadership Team</a> </li> <li class="subnav-item__nav"> <a class="subnav-item__link" href="/news/" >Newsroom</a> </li> <li class="subnav-item__nav"> <a class="subnav-item__link" href="/press/" >Press releases</a> </li> <li class="subnav-item__nav"> <a class="subnav-item__link" href="/integrations/" >Partners</a> </li> <li class="subnav-item__nav"> <a class="subnav-item__link" href="/jobs/" >Careers</a> </li> </ul> </div> </li> </ul> </nav> <div class="header__actions"> <a class="header__login-btn" href="https://app.recurly.com/login" data-event="login-clicked" data-ga-click="LogIn click -header">Log in</a> <a class="btn btn-secondary header__demo-btn" href="/request-a-demo/" data-event="requestdemo-clicked" data-ga-click="RequestDemo click -header" >Book my demo</a> </div> <div class="header__mobile"> <a class="btn btn-secondary header__demo-btn" href="/request-a-demo/" data-event="requestdemo-clicked" data-ga-click="RequestDemo click mobilenav-requestdemo" target="_blank">Book my demo</a> <div class="header__toggle mobile-button action-toggle-mobile-nav" tabindex="0" aria-label="Navigation Menu"><span>Toggle Mobile Navigation</span></div> <div aria-hidden="false" id="mobileNav" class="mobile-nav__menu" role="menu" data-theme="black"> <ul class="mobile-nav__category-wrapper"> <li class="mobile-nav__category-item mobile-nav__line"> <button class="mobile-nav__category-item-link mobile-nav__accordion-toggle" type="button"> <div class="mobile-nav__category-item-layout"> <div class="mobile-nav__title-wrapper"> <span class="mobile-nav__title"> <span>Product</span> </span> </div> </div> </button> <div class="mobile-nav__accordion"> <div class="mobile-nav__accordion-wrapper"> <ul> <li> <a class="mobile-nav__menu-item-link" href="/product/plans-pricing-promotions/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-plans-pricing-promotions"> <span>Plans, pricing & promotions</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/product/subscriber-management/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-subscriber-management"> <span>Subscriber management</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/product/payments-orchestration/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-payments-orchestration"> <span>Payments orchestration</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/product/recurring-billing/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-recurring-billing"> <span>Recurring billing</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/product/churn-management/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-churn-management"> <span>Churn management</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/product/revenue-recognition/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-revenue-recognition"> <span>Revenue recognition</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/product/reporting-analytics/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-reporting-analytics"> <span>Reporting & analytics</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/product/integration-methods/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-integration-methods"> <span>Integration methods</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/product/partner-ecosystem/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-partner-ecosystem"> <span>Partner ecosystem</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/product/security-and-compliance/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-security-and-compliance"> <span>Security & compliance</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/product/global-expansion/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-global-expansion"> <span>Global expansion</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/product/support-and-services/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-support-and-services"> <span>Support & services</span> </a> </li> </ul> </div> </div> </li> <li class="mobile-nav__category-item mobile-nav__line"> <button class="mobile-nav__category-item-link mobile-nav__accordion-toggle" type="button"> <div class="mobile-nav__category-item-layout"> <div class="mobile-nav__title-wrapper"> <span class="mobile-nav__title"> <span>Solutions</span> </span> </div> </div> </button> <div class="mobile-nav__accordion"> <div class="mobile-nav__accordion-wrapper"> <ul> <li> <a class="mobile-nav__menu-item-link" href="/solutions/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-solutions"> <span>See all solutions</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/solutions/streaming-media/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-streamingmedia"> <span>Streaming media</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/solutions/digital-publishing/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-digital-publishing"> <span>Digital publishing</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/solutions/elearning/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-elearning"> <span>eLearning</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/solutions/software-b2c-saas/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-software-b2c-saas"> <span>B2C SaaS</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/solutions/software-b2b-saas/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-software-b2b-saas"> <span>B2B SaaS</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/solutions/consumer-goods-retail/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-consumer-goods-and-retail"> <span>Consumer goods & retail</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/solutions/consumer-and-business-services/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-consumer-business-services"> <span>Business services</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/solutions/health-and-wellness/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-health-and-wellness"> <span>Health & wellness</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/solutions/travel-hospitality-entertainment/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-travel"> <span>Travel, hospitality, & entertainment</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/solutions/telecom-energy-utlities/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-telecom"> <span>Telecom, energy, & utilities</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/solutions/government-and-non-profit/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-government"> <span>Government & non-profit</span> </a> </li> </ul> </div> </div> </li> <li class="mobile-nav__category-item mobile-nav__line"> <a href="/customers/" class="mobile-nav__category-item-link" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-customers"> <div class="mobile-nav__category-item-layout"> <div class="mobile-nav__title-wrapper"> <span class="mobile-nav__title mobile-nav__title--no-accordion"> <span>Customers</span> </span> </div> </div> </a> </li> <li class="mobile-nav__category-item mobile-nav__line"> <a href="/plans/" class="mobile-nav__category-item-link" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-plans"> <div class="mobile-nav__category-item-layout"> <div class="mobile-nav__title-wrapper"> <span class="mobile-nav__title mobile-nav__title--no-accordion"> <span>Pricing</span> </span> </div> </div> </a> </li> <li class="mobile-nav__category-item mobile-nav__line"> <button class="mobile-nav__category-item-link mobile-nav__accordion-toggle" type="button"> <div class="mobile-nav__category-item-layout"> <div class="mobile-nav__title-wrapper"> <span class="mobile-nav__title"> <span>Resources</span> </span> </div> </div> </button> <div class="mobile-nav__accordion"> <div class="mobile-nav__accordion-wrapper"> <ul> <li> <a class="mobile-nav__menu-item-link" href="/resources/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-resources"> <span>Resource center</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/research/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-benchmarks-and-insights"> <span>Benchmarks & insights</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/events/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-events"> <span>Events</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/blog/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-blog"> <span>Blog</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="https://recurly.com/developers/" target="_blank" rel="noreferrer noopener" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-developers"> <span>Developers</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="https://docs.recurly.com/" target="_blank" rel="noreferrer noopener" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-documentation"> <span>Documentation</span> </a> </li> </ul> </div> </div> </li> <li class="mobile-nav__category-item mobile-nav__line"> <button class="mobile-nav__category-item-link mobile-nav__accordion-toggle" type="button"> <div class="mobile-nav__category-item-layout"> <div class="mobile-nav__title-wrapper"> <span class="mobile-nav__title"> <span>About</span> </span> </div> </div> </button> <div class="mobile-nav__accordion"> <div class="mobile-nav__accordion-wrapper"> <ul> <li> <a class="mobile-nav__menu-item-link" href="/company/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-company"> <span>Company</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/company/#leadership-m" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-company"> <span>Leadership Team</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/news/" rel="noreferrer noopener" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-newsroom"> <span>Newsroom</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/press/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-press"> <span>Press releases</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/integrations/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-partners"> <span>Partners</span> </a> </li> <li> <a class="mobile-nav__menu-item-link" href="/jobs/" data-event="mobilenav-clicked" data-ga-click="MobileNav click mobilenav-careers"> <span>Careers</span> </a> </li> </ul> </div> </div> </li> <li class="mobile-nav__category-item mobile-nav__line"> <a href="/contact-us/" class="mobile-nav__category-item-link" data-event="login-clicked" data-ga-click="LogIn click mobilenav-contact"> <div class="mobile-nav__category-item-layout"> <div class="mobile-nav__title-wrapper"> <span class="mobile-nav__title mobile-nav__title--no-accordion"> <span>Contact</span> </span> </div> </div> </a> </li> <li class="mobile-nav__category-item mobile-nav__line"> <a href="https://app.recurly.com/login" class="mobile-nav__category-item-link"data-event="login-clicked" data-ga-click="LogIn click mobilenav-login"> <div class="mobile-nav__category-item-layout"> <div class="mobile-nav__title-wrapper"> <span class="mobile-nav__title mobile-nav__title--no-accordion"> <span>Log in</span> </span> </div> </div> </a> </li> </ul> </div> </div> </div> </header> <div class="container"> <div class="body-container-wrapper"> <section class="blog-content-group "> <div class="blog-listing-wrapper post-view row"> <div class="post-listing col-md-9"> <div class="post-item Large row"> <div class=" col-md-3"> <div class="post-meta"> <div class="post-link"> <a href="/blog" class="blog-learn-more">See all posts</a> </div> <div class="post-header post-header--mobile"> <h2 class="h1">16 Strategies to reduce subscriber churn</h2> </div> <div class="post-date"> July 31, 2023 </div> <div id="author_data" class="post-author"> <span>by</span> <a class="author-link" href="/author/paola-lagunes/" ><strong>Paola Lagunes</strong></a> </div> <div class="relatedposts" style=""> <h3 class="relatedposts__label">Related Posts</h3> <p class="rss-item"><a href="/blog/zombie-segments-risk-of-churning/">4 signs of subscriber churn risk & how to reverse them</a></p> <p class="rss-item"><a href="/blog/how-to-make-the-most-of-the-cancellation-journey/">How to save subscribers on the verge of cancellation</a></p> </div> <div class="post-topics"> <h3 class="post-topics__label">Topics</h3> <p> <p><a href="/blog/topic/subscription-revenue-management/">Subscription revenue management</a><br /></p> </p> </div> </div> </div> <div class="post-body col-md-9"> <div class="post-header"> <h1>16 Strategies to reduce subscriber churn</h1> </div> <div class="social"> <div class="social-button social-button__facebook"> <!-- Facebook Share Button --> <div id="fb-root"></div> <script type="text/javascript"> var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = 'https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v7.0&appId=842119552622704&autoLogAppEvents=1'; var x = document.getElementsByTagName('head')[0]; x.appendChild(s); </script> <div class="fb-share-button" data-href="https://www.recurly.com/blog/reduce-churn/" data-layout="button_count" data-size="small"><a target="_blank" rel="noreferrer noopener" href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fdevelopers.facebook.com%2Fdocs%2Fplugins%2F&amp;src=sdkpreparse" class="fb-xfbml-parse-ignore">Share</a></div> </div> <div class="social-button social-button__twitter"> <!-- Tweet Button --> <a href="https://twitter.com/share" class="twitter-share-button" data-via="Recurly">Tweet</a> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script> </div> <div class="social-button social-button__linkedin"> <!-- Linkedin share Button --> <script src="https://platform.linkedin.com/in.js" type="text/javascript"> lang: en_US</script> <script type="IN/Share" data-url="https://recurly.com/blog/reduce-churn/" data-counter="right"></script> </div> </div> <div class="featured-image-wrapper"> <img src="//images.ctfassets.net/wob906kz2qeo/vfCh2hdaUTYj84PVOXAc5/651fe9a4b25adf6a8efc41dfffdde06e/img-2022-09-pillar-page-churn-analysis-blog-image-1200x630.png" class="featured-image" alt="Subscriber churn analysis: The expert’s guide."> </div> <div class="post-content"> <p>In the subscription business, winning a customer is only the beginning.</p> <p>If you&#39;re ready to take serious steps to reduce customer churn rates, there&#39;s a lot of good news. It takes some work, but it pays off. Noticeably in your monthly recurring revenue and customer feedback surveys.</p> <h2><b>1. Analyze why churn is happening</b></h2> <p>If you&#39;re leaving this up to an exit survey, you&#39;re missing out. Get your support teams to call up your former customers and investigate. Their job is simple: Dig until they understand what turned this once-current customer into a churn rate statistic.</p> <p>When you rely on customer satisfaction surveys, you miss out on quite a few reasons for customer churn, including some that point to whether this churn is voluntary or <a href="/blog/what-is-involuntary-churn-what-you-can-do-about-it/">involuntary churn</a>. If unhappy customers misunderstood some step in the onboarding process, you might not pick up that nuance from a survey. That said, customer engagement surveys do have a place in improving your retention rates. </p> <h2><b>2. Engage with your customers and get valuable feedback</b></h2> <p>If you want to know something, sometimes the best thing to do is just ask. At every opportunity, you should invite and welcome customer feedback, both from your most loyal customers and from those who have decided to churn. While you might be the expert at marketing and selling your product, your customers may have a completely different perspective.</p> <p>Conduct regular surveys of your subscriber base to get an understanding of how people are using your product, the features they&#39;d like to see, and the challenges they&#39;re experiencing. This kind of engagement can help mitigate voluntary churn before it happens.</p> <p>You should also ask canceled subscribers for feedback immediately after they cancel. This will give you their reasons for cancellation in concrete terms, helping you potentially overcome the objection and reduce future churn in other customers.</p> <p>For instance, if you survey your churned customers and two out of three say that the price was too high, it&#39;s probably the right moment to take a look at your pricing structure. In this type of survey, you should make it as simple as possible to respond. Checkboxes instead of required comment fields.</p> <h2><b>3. Train your customers on your products</b></h2> <p>Offer free webinars. Post video tutorials. Host live product demos. Your subscription business runs on providing content or a service, so make sure one of your offerings is about what you provide.</p> <p>In a SaaS business, this comes with the territory since you&#39;re creating a new product under your customers&#39; feet. Teaching your current subscribers how to realize the full potential of your products and services goes a long way toward keeping those customers. Sharing tips and tricks while listening to your customer feedback can create a virtuous cycle; the better you train your current customers, the smarter your onboarding for new customers can get. </p> <h2><b>4. Identify those about-to-churn customers</b></h2> <p>An ounce of prevention is worth a pound of cure. And preventing customers from churning is one sure way to avoid paying customer acquisition costs all over again. </p> <p>If you have a good sense of your customer lifecycle and key conversion points, you&#39;ll be able to identify the actions and behaviors that occur before a cancellation. This might include reduced usage, decreased login frequency, or an increase in support tickets. If you&#39;re aware of these signals, you can implement tactics to mitigate the risk of churn.</p> <p>Finding customers at risk of churning is all about customer relationships 101: Talk to the quiet ones. </p> <p>Go look for those customers who have had the least interactions with your company. For example, if a customer hasn&#39;t logged in for a few weeks after regular usage, you can shoot them a quick “we miss you” or a “what&#39;s new in our product” email. If they&#39;re repeatedly reaching out for support, you can proactively have a customer success agent get in touch to schedule a conversation. Do they have an open service request? Have they been unresponsive to other customer satisfaction surveys? Have they simply gone passive? </p> <p>Make this effort mirror your efforts to understand why customers did cancel. You&#39;re looking for trends and themes when studying this population of your customers. Taking the time to identify these behaviors and react appropriately can dramatically reduce churn before it happens. </p> <h2><b>5. Define your churn goals and identify your most valuable customers</b></h2> <p>Define your acceptable churn rates and which customers you&#39;re committed to keeping. Set thresholds for a monthly acceptable churn rate, maximum churn tolerance, and any churn thresholds that would signal new action for your marketing teams.</p> <p> Then, identify those valuable customers already showing loyalty with their wallets. Make sure your customer success teams know who they are. Develop some customer segmentation data and a customer profile for this audience. Make sure your teams have a firm grasp of what makes a most valuable client. And do better than simply identifying the big spenders. After all, the wrong client may pay plenty of dollars before they demoralize your departments. </p> <p>Once you know which customer types are most profitable, who&#39;s most ready to cancel, and who&#39;s most likely to accept offers, your teams will be well-positioned to manage churn rates.</p> <h2><b>6. Offer incentives</b></h2> <p>Think about the last time you stayed in a hotel. You paid for your night in the room with the expectation of a bed to sleep in and a clean bathroom. You arrive at check-in and receive a warm chocolate chip cookie with your room key, get to your room and find mints on your pillow. After a good night&#39;s sleep (with a complimentary sleep mask) you enjoy a free continental breakfast. All of these little add-ons make you feel welcome and appreciated. Next time you take a trip you&#39;re likely to book with the same hotel-the same concept applies to your subscription business.</p> <p>Value-added services such as member-only content, premium support access, and additional features make your product more attractive to paying customers. While you might only see a marginal increase in your operating costs with these offerings, you&#39;ll see an exponential increase in brand loyalty and reduced churn.</p> <h2><b>7. Be proactive about communicating with customers</b></h2> <p>Dunning is the process of communicating with customers (usually by email) to try to collect payments due. In the subscription business model, dunning is specific to reducing churn because of failed payments. Most involuntary churn in subscription businesses happens because of an expired payment card. Because you know when your customers&#39; cards expire, you can easily send them reminders to update their card information.</p> <p>We recommend sending multiple emails during the dunning process as this gives customers multiple reminders to update their payment information. We do not recommend dunning cycles longer than 28 days for monthly plans. A dunning period longer than 28 days can cause invoices to get into a “loop” state where a new invoice is issued even though the prior invoice was not collected.</p> <p>This is by far the simplest way to reduce involuntary churn understand that your customers are busy, and give them a reminder to update their card information. Be sure to make it as convenient as possible to do so by offering a direct link to log in and update payment information.</p> <h2><b>8. Turn billing obstacles into your allies   </b></h2> <p>Credit card changes, billing info changes, or a simple typo on payment information can cause involuntary churn. However, you don&#39;t have to leave these process problems to chance. </p> <p>Mastercard, Visa, American Express, and Discover cards all offer an automated service that monitors customers&#39; credit cards for changes and makes updates to the records whenever necessary so that recurring transactions can be processed successfully. In this way, a subscription business processing payments can avoid a failed payment before it even occurs.</p> <p><b>Recommended reading: </b><a href="/content/maximizing-subscription-revenue-recovery-with-recurly-infographic/"><u>Maximizing subscription revenue recovery</u></a></p> <h2><b>9. Deploy a subscription billing and management platform</b></h2> <p>Along with the dunning process, credit card transactions that fail can automatically be retried using a subscription billing and management platform. The reason for the failure determines the frequency and timing of the retries. For example, if a customer has insufficient funds, this may take longer to rectify than other failure types. This kind of “intelligent” retry logic means that retry attempts are set at a schedule that will most likely lead to success.</p> <p>The goal is to maximize revenue gained through retry attempts, while also being mindful of the fees related to these transactions to make sure they stay within reason.</p> <p>Top subscription management platforms, like Recurly, take advantage of billions of data points and machine learning to attempt retries at just the right time, thereby minimizing retry costs for merchants.</p> <p><b>Recommended reading: </b><a href="/resources/guide/minimize-churn-maximize-revenue/"><u>Strategies to minimize churn &amp; maximize revenue</u></a></p> <h2><b>10. Target the right audiences  </b></h2> <p>If they joined for the free lunch, will they pay for a five-course meal? Some customers are worth churning. Your products and services have value, one that grows as you develop your offering. When you have identified those subscribers who keep delving deeper into your products, then you can keep looking for more customers like them. If you&#39;re offering cheap, starter specials, you may be attracting the wrong potential customers. </p> <p>When you find customers who see themselves sticking with your service for the long term, those are customers worth the effort to retain them.  </p> <h2><b>11. Prioritize your onboarding process</b></h2> <p>In the SaaS space, early subscriber churn is common when customers feel like they&#39;re not sure how to navigate a product or use it effectively. If you&#39;re seeing a high churn rate after the first few subscription periods, you might need to take a hard look at your onboarding process.</p> <p>Make sure that you have documentation, email, and tutorial content that helps your customers navigate and set up your product. If you&#39;re a higher-priced B2B product, you might consider making a significant investment in a customer success team to personally walk your new customers through the setup and onboarding process. This ensures that all of their questions are answered as clearly and quickly as possible.</p> <p><b>Recommended reading</b>: <a href="/resources/case-study/marketmuse/"><u>MarketMuse uses smart promotions to fuel subscriber growth</u></a></p> <h2><b>12. Help your customer teams offer killer customer service</b></h2> <p>When you run a SaaS company, you&#39;ll have access to plenty of customer behavior data. So if you want to offer killer customer service, set up a department of people whose sole task is to make sure your customers are getting the most out of your products and services. </p> <p>Customer support handles emergencies. Customer success is like the dietician and fitness trainer. They&#39;re signing up your customers&#39; power users for webinars, treating the VIPs to unique offers, and overall showing the best side of your products and services. </p> <p>So give that team unprecedented access to the customer behavior data. As analysts, your customer success and customer support teams will be able to read customer data with greater empathy for your customer. </p> <h2><b>13. Study complaints, review sites, and community forums</b></h2> <p>Ever wonder what your customer satisfaction surveys aren&#39;t telling you? Go to the forums. </p> <p>The community forums, third-party review sites, and your own customer complaint box are all a treasure trove of valuable feedback. This customer retention rate booster takes thick skin and some de-personalization. Go into it with the air of an anthropologist or as an outside researcher trying to understand your business. Trust yourself that you can identify which complaints are in bad faith and which ones are customers you genuinely lost due to a process you can fix. </p> <p>Because the good news is, it probably is solvable. Your team will fix what&#39;s broken, add what&#39;s missing, and tune the slightly misaligned expectations. And if it&#39;s nothing you can solve, then add the findings to your research into reasons for customer churn. </p> <h2><b>14. Send your brightest and best to answer big cancellations</b></h2> <p>Get the short list of your company&#39;s most winsome and charismatic B2B sales reps. Then make them your premium subscriber savers. </p> <p>If you spot a high-value customer making signals that they&#39;re about to cancel their subscription, send in your all-stars. You can never underestimate the value of a good sales rep. It&#39;ll take effort to turn around a situation headed south, but that&#39;s what defines a high-performing sales rep. It may only take a bit of listening, some well-posed questions, and a short-term incentive. You&#39;ll know for sure only once you&#39;ve sent in the pros. </p> <h2><b>15. Show off your competitive advantages to your current customers</b></h2> <p>You created your subscription business to offer something unique or in a unique way that no one else in the market has. </p> <p>So grab some of your marketing team, have a fun lunch outing, and spend time talking about what makes your business different. Explain it fully, completely, and succinctly. Have them repeat it to you in their own words. Volley the key differentiators back and forth with each other until you and your marketers can say what makes your product and service stand out and what customers lose when they decide to quit. Then use the most memorable phrases in places where your current customers will see them. </p> <p>Make this an annual exercise. This comes from an old writing exercise: Say it straight and then say it great. And while it may seem like preaching to the choir to tell your current customers why the subscription they&#39;re paying for is so valuable, don&#39;t take your customers&#39; loyalty for granted. </p> <h2><b>16. Offer long-term contracts</b></h2> <p>What might be the most outrageous versions of your products and services that you don&#39;t think any customer would ever choose? Longest possible terms? Most wide-ranging value? Take it as a challenge for your products and services team. You might be surprised to find a customer will still subscribe to it. </p> <p>The right upgrade offer with a long-term contract will win over any customer who&#39;s enjoying the benefits of your products and services already. Then effectively, these customers are churn-proofed for a longer period than the rest of your customer base. </p> <h2><b>Raising your customer retention rates comes down to this...</b></h2> <p>Reducing customer churn starts with communicating directly and often with your customers. Then studying your customers will help you anticipate their needs and develop imaginative ways to overcome objections. Then your business must participate in your customers&#39; day-to-day lives so you can establish and reaffirm the value you&#39;re bringing. </p> <p>Reducing churn can feel like trying to hit a moving target. To help you suss things out, we&#39;ve created this compelling guide that helps you cut your involuntary churn rate to 1% and boost subscription revenue by 11% MoM.</p> </div> <!-- for cta image module in contentful templates --> <span> <a href="https://recurly.com/resources/guide/minimize-churn-maximize-revenue/" target="_blank" rel="noreferrer noopener" data-event="BlogCTA-clicked" data-ga-click="BlogCTA click reduce-churn"> <img data-src="//images.ctfassets.net/wob906kz2qeo/6sRo9rE9hk10G6IisSuPCb/c172d093205e3d142c30bb04469abc12/img-2024-03-minimize-churn-and-maximize-revenue-to-keep-a-good-thing-growing-main-cta-1200x630.png" alt="" class="lazyload"> </a> </span> </div> <div class="col-xs-12"> <div class="relatedposts relatedposts--mobile" style=""> <h3 class="relatedposts__label">Related Posts</h3> <p class="rss-item"><a href="/blog/zombie-segments-risk-of-churning/">4 signs of subscriber churn risk & how to reverse them</a></p> <p class="rss-item"><a href="/blog/how-to-make-the-most-of-the-cancellation-journey/">How to make the most of the cancellation journey</a></p> </div> <div class="post-topics post-topics--mobile"> <h3 class="post-topics__label">Topics</h3> <p> <p><a href="/blog/topic/subscription-revenue-management/">Subscription revenue management</a><br /></p> </p> </div> </div> </div> </div> <div class="blog__subscribe col-md-3 md-pull-right"> <div class="blog__subscribe-input"> <div class="blog__subscribe-copy"> <h3 class="blog__subscribe-start">Subscribe to the blog<span>Get weekly updates for all things subscriptions.</span></h3> <h3 class="blog__subscribe-end">Thanks for subscribing<span>We’ve sent an email verification to your inbox.</span></h3> </div> <div class="blog__subscribe-wrapper"> <!-- Form is loaded from the footer --> <form class="mktoForm" data-formid="1483" data-forminstance="two"></form> </div> <div class="blog__demowrap"> <img data-src="/img2/blog/blog-sidebar-image-mobile@2x.png" alt="Request a demo" class="blog__demo-image--mobile lazyload"> <img data-src="/img2/blog/blog-sidebar-image@2x.png" alt="Request a demo" class="blog__demo-image lazyload"> <div class="blog__demo-content"> <h3 class="blog__demo-header">Want to maximize your subscription revenue?</h3> <p class="blog__demo-copy">Recurly is purpose-built for DTC subscriptions to grow subscribers <span class="inline--block">& revenue</span>.</p> <a href="/request-a-demo/" class="btn btn--sm blog__demo-btn">Book my demo</a> </div> </div> </div> </div> </div> </section> </div> </div> <footer class="footer section-space-top" data-theme="black"> <div class="container container-v2 section-space-bottom"> <nav class="footer__menu-wrap"> <div class="footer__logo"> <a class="link-no-underline" href="/"> <img src="/img2/logo-recurly.svg" alt="Recurly" loading="lazy" /> </a> </div> <ul class="footer__lists list-reset"> <li class="footer__list stack"> <span class="footer__col-label h6 highlight">Product</span> <ul class="footer__links list-reset"> <li><a class="link-no-underline" href="/product/plans-pricing-promotions/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-plans-pricing-promotions">Plans, pricing & promotions</a></li> <li><a class="link-no-underline" href="/product/subscriber-management/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-subscriber-management">Subscriber management</a></li> <li><a class="link-no-underline" href="/product/payments-orchestration/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-payments-orchestration">Payments orchestration</a></li> <li><a class="link-no-underline" href="/product/recurring-billing/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-recurring-billing">Recurring billing</a></li> <li><a class="link-no-underline" href="/product/churn-management/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-churn-management">Churn management</a></li> <li><a class="link-no-underline" href="/product/revenue-recognition/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-revenue-recognition">Revenue recognition</a></li> <li><a class="link-no-underline" href="/product/reporting-analytics/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-reporting-analytics">Reporting & analytics</a></li> </ul> </li> <li class="footer__list footer__list--shorty stack"> <span class="footer__col-label h6 highlight">Solutions</span> <ul class="footer__links list-reset"> <li><a class="link-no-underline" href="/solutions/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-solutions">Solutions overview</a></li> </ul> </li> <li class="footer__list footer__list--shorty stack"> <span class="footer__col-label h6 highlight">Explore</span> <ul class="footer__links list-reset"> <li><a class="link-no-underline" href="/plans/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-plans">Pricing</a></li> <li><a class="link-no-underline" href="/integrations/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-partners">Partners</a></li> <li><a class="link-no-underline" href="https://app.recurly.com/signup/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-try-it-free">Try it free</a></li> </ul> </li> <li class="footer__list stack"> <span class="footer__col-label h6 highlight">Resources</span> <ul class="footer__links list-reset"> <li><a class="link-no-underline" href="/customers/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-customers">Customers</a></li> <li><a class="link-no-underline" href="/resources/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-resource-center">Resource center</a></li> <li><a class="link-no-underline" href="/research/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-benchmarks-and-insights">Benchmarks & insights</a></li> <li><a class="link-no-underline" href="/events" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-events">Events</a></li> <li><a class="link-no-underline" href="https://recurly.com/blog/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-blog">Blog</a></li> <li><a class="link-no-underline" href="https://developers.recurly.com/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-developer-hub" target="_blank" rel="noreferrer noopener">Developers</a></li> <li><a class="link-no-underline" href="https://docs.recurly.com/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-documentation" target="_blank">Documentation</a></li> </ul> </li> <li class="footer__list stack"> <span class="footer__col-label h6 highlight">About</span> <ul class="footer__links list-reset"> <li><a class="link-no-underline" href="/company/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-company">Company</a></li> <li><a class="link-no-underline" href="/company/#leadership" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-leadership">Leadership Team</a></li> <li><a class="link-no-underline" href="/news/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-newsroom">Newsroom</a></li> <li><a class="link-no-underline" href="/press/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-press">Press releases</a></li> <li><a class="link-no-underline" href="/careers/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-careers">Careers</a></li> </ul> </li> <li class="footer__list stack"> <span class="footer__col-label h6 highlight">Support</span> <ul class="footer__links list-reset"> <li><a class="link-no-underline" href="/contact-us/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-contact-us">Contact us</a></li> <li><a class="link-no-underline" href="https://status.recurly.com/" target="_blank" rel="noreferrer noopener" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-status">Status</a></li> <li><a class="link-no-underline" href="https://app.recurly.com/login" target="_blank" rel="noreferrer noopener" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-log-in">Log in</a></li> </ul> </li> </ul> <ul class="footer__social list-reset"> <li> <a class="footer__social-icon footer__social-icon--twitter" data-action="track" data-event="outgoing-link" data-location="footer v3" data-target="/outgoing/twitter" target="_blank" rel="noreferrer noopener" href="https://x.com/Recurly"> <img src="/img2/home/footer/twitter.svg" data-src="/img2/home/footer/twitter.svg" alt="Recurly X" width="16px" height="14px" class="lazyload"> </a> </li> <li> <a class="footer__social-icon footer__social-icon--linkedin" data-action="track" data-event="outgoing-link" data-location="footer v3" data-target="/outgoing/linkedin" target="_blank" rel="noreferrer noopener" href="https://www.linkedin.com/company/recurly-inc-"> <img src="/img2/home/footer/linkedin.svg" data-src="/img2/home/footer/linkedin.svg" alt="Recurly linkedin" width="16px" height="15px" class="lazyload"> </a> </li> <li> <a class="footer__social-icon footer__social-icon--youtube" data-action="track" data-event="outgoing-link" data-location="footer v3" data-target="/outgoing/youtube" target="_blank" rel="noreferrer noopener" href="https://www.youtube.com/user/RecurringBilling"> <img src="/img2/home/footer/youtube.svg" data-src="/img2/home/footer/youtube.svg" alt="Recurly youtube" width="20px" height="14px" class="lazyload"> </a> </li> </ul> </nav> </div> <div class="footer__bottom"> <div class="container container-v2"> <ul class="footer__list-secondary list-reset"> <li> <a class="body-copy--xs link-no-underline" href="/legal/privacy/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-privacy-policy">Privacy policy</a> </li> <li> <a class="body-copy--xs link-no-underline" href="/legal/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-legal">Legal</a> </li> <li> <a class="body-copy--xs link-no-underline" href="/dpa/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-dpa" target="_blank" >DPA</a> </li> <li> <a class="body-copy--xs link-no-underline" href="/legal/terms/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-terms-of-service">Terms (Starter plan)</a> </li> <li> <a class="body-copy--xs link-no-underline" href="/legal/privacy/cookiepolicy/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-cookie-policy">Cookie policy</a> </li> <li> <a class="body-copy--xs link-no-underline" href="/security/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-security">Security & compliance</a> </li> <li> <a class="body-copy--xs link-no-underline" href="/modern-slavery-act/" target="_blank" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-modern-slavery-act">Modern Slavery Act Statement</a> </li> <li> <a class="body-copy--xs link-no-underline" href="/contact-us/" data-event="footernav-clicked" data-ga-click="FooterNav click footernav-contact-us">Contact us</a> </li> <li> <span class="body-copy--xs">&copy;2025&nbsp;Recurly, Inc.</span> </li> </ul> </div> </div> </footer> <div class="blog__back-to-top"></div> </div> </div> <script src="//go.recurly.com/js/forms2/js/forms2.min.js"></script> <script type="text/javascript"> /*! jQuery v3.6.3 | (c) OpenJS Foundation and other contributors | jquery.org/license */ !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},S=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||S).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.3",E=function(e,t){return new E.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}E.fn=E.prototype={jquery:f,constructor:E,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=E.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return E.each(this,e)},map:function(n){return this.pushStack(E.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(E.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(E.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},E.extend=E.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(E.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||E.isPlainObject(n)?n:{},i=!1,a[t]=E.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},E.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=y.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?E.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:v}),"function"==typeof Symbol&&(E.fn[Symbol.iterator]=t[Symbol.iterator]),E.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,S,y,s,c,v,E="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,S)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=E)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{if(d.cssSupportsSelector&&!CSS.supports("selector(:is("+c+"))"))throw new Error;return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===E&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[E]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,S=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.cssSupportsSelector=ce(function(){return CSS.supports("selector(*)")&&C.querySelectorAll(":is(:jqfake)")&&!CSS.supports("selector(:is(*,:jqfake))")}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=E,!C.getElementsByName||!C.getElementsByName(E).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&S){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&S){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&S)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+E+"'></a><select id='"+E+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+E+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+E+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),d.cssSupportsSelector||y.push(":has"),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType&&e.documentElement||e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&S&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),v(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&D.call(b.attrHandle,t.toLowerCase())?n(e,t,!S):void 0;return void 0!==r?r:d.attributes||!S?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(j),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace($," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,y){var v="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===y?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=v!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(v){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[E]||(a[E]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[E]||(a[E]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[E]||(a[E]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=y)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[E]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[E]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=S?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ye(function(){return[0]}),last:ye(function(e,t){return[t-1]}),eq:ye(function(e,t,n){return[n<0?n+t:n]}),even:ye(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ye(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ye(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ye(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[E]||(e[E]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,y,v,e){return y&&!y[E]&&(y=Ce(y)),v&&!v[E]&&(v=Ce(v,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?v||(e?d:l||y)?[]:t:f;if(g&&g(f,p,n,r),y){i=Te(p,u),y(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(v||d){if(v){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);v(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=v?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),v?v(null,t,p,r):H.apply(t,p)})}function Se(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[E]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Se(e.slice(s,n)),n<r&&Se(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,y,v,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Se(t[n]))[E]?i.push(a):o.push(a);(a=A(e,(y=o,m=0<(v=i).length,x=0<y.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!S);while(s=y[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=v[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+v.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&S&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ve(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!S,n,!t||ee.test(e)&&ve(t.parentNode)||t),n},d.sortStable=E.split("").sort(j).join("")===E,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);E.find=d,E.expr=d.selectors,E.expr[":"]=E.expr.pseudos,E.uniqueSort=E.unique=d.uniqueSort,E.text=d.getText,E.isXMLDoc=d.isXML,E.contains=d.contains,E.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&E(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=E.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?E.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?E.grep(e,function(e){return e===n!==r}):"string"!=typeof n?E.grep(e,function(e){return-1<i.call(n,e)!==r}):E.filter(n,e,r)}E.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?E.find.matchesSelector(r,e)?[r]:[]:E.find.matches(e,E.grep(t,function(e){return 1===e.nodeType}))},E.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(E(e).filter(function(){for(t=0;t<r;t++)if(E.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)E.find(e,i[t],n);return 1<r?E.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&k.test(e)?E(e):e||[],!1).length}});var D,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(E.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof E?t[0]:t,E.merge(this,E.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:S,!0)),N.test(r[1])&&E.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=S.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(E):E.makeArray(e,this)}).prototype=E.fn,D=E(S);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}E.fn.extend({has:function(e){var t=E(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(E.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&E(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&E.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?E.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(E(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(E.uniqueSort(E.merge(this.get(),E(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),E.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),E.merge([],e.childNodes))}},function(r,i){E.fn[r]=function(e,t){var n=E.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=E.filter(t,n)),1<this.length&&(H[r]||E.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}E.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},E.each(e.match(P)||[],function(e,t){n[t]=!0}),n):E.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){E.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return E.each(arguments,function(e,t){var n;while(-1<(n=E.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<E.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},E.extend({Deferred:function(e){var o=[["notify","progress",E.Callbacks("memory"),E.Callbacks("memory"),2],["resolve","done",E.Callbacks("once memory"),E.Callbacks("once memory"),0,"resolved"],["reject","fail",E.Callbacks("once memory"),E.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return E.Deferred(function(r){E.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){E.Deferred.exceptionHook&&E.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(E.Deferred.getStackHook&&(t.stackTrace=E.Deferred.getStackHook()),C.setTimeout(t))}}return E.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?E.extend(e,a):a}},s={};return E.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=E.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;E.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},E.readyException=function(e){C.setTimeout(function(){throw e})};var F=E.Deferred();function $(){S.removeEventListener("DOMContentLoaded",$),C.removeEventListener("load",$),E.ready()}E.fn.ready=function(e){return F.then(e)["catch"](function(e){E.readyException(e)}),this},E.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--E.readyWait:E.isReady)||(E.isReady=!0)!==e&&0<--E.readyWait||F.resolveWith(S,[E])}}),E.ready.then=F.then,"complete"===S.readyState||"loading"!==S.readyState&&!S.documentElement.doScroll?C.setTimeout(E.ready):(S.addEventListener("DOMContentLoaded",$),C.addEventListener("load",$));var B=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)B(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(E(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=E.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||E.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!E.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}E.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),E.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):B(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),E.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,E.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=E.queue(e,t),r=n.length,i=n.shift(),o=E._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){E.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:E.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),E.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?E.queue(this[0],t):void 0===n?this:this.each(function(){var e=E.queue(this,t,n);E._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&E.dequeue(this,t)})},dequeue:function(e){return this.each(function(){E.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=E.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=S.documentElement,ie=function(e){return E.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return E.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===E.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return E.css(e,t,"")},u=s(),l=n&&n[3]||(E.cssNumber[t]?"":"px"),c=e.nodeType&&(E.cssNumber[t]||"px"!==l&&+u)&&te.exec(E.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)E.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,E.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=E.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}E.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?E(this).show():E(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=S.createDocumentFragment().appendChild(S.createElement("div")),(fe=S.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",v.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?E.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,v.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))E.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+E.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;E.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<E.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^([^.]*)(?:\.(.+)|)/;function we(){return!0}function Te(){return!1}function Ce(e,t){return e===function(){try{return S.activeElement}catch(e){}}()==("focus"===t)}function Se(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Se(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Te;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return E().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=E.guid++)),e.each(function(){E.event.add(this,t,i,r,n)})}function Ee(e,i,o){o?(Y.set(e,i,!1),E.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(E.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:E.event.trigger(E.extend(r[0],E.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&E.event.add(e,i,we)}E.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&E.find.matchesSelector(re,i),n.guid||(n.guid=E.guid++),(u=y.events)||(u=y.events=Object.create(null)),(a=y.handle)||(a=y.handle=function(e){return"undefined"!=typeof E&&E.event.triggered!==e.type?E.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=be.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=E.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=E.event.special[d]||{},c=E.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&E.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),E.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=Y.hasData(e)&&Y.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=be.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=E.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||E.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)E.event.remove(e,d+t[l],n,r,!0);E.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=E.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=E.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=E.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((E.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<E(i,this).index(l):E.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(E.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[E.expando]?e:new E.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Ee(t,"click",we),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Ee(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},E.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},E.Event=function(e,t){if(!(this instanceof E.Event))return new E.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?we:Te,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&E.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[E.expando]=!0},E.Event.prototype={constructor:E.Event,isDefaultPrevented:Te,isPropagationStopped:Te,isImmediatePropagationStopped:Te,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=we,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=we,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=we,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},E.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},E.event.addProp),E.each({focus:"focusin",blur:"focusout"},function(t,e){E.event.special[t]={setup:function(){return Ee(this,t,Ce),!1},trigger:function(){return Ee(this,t),!0},_default:function(e){return Y.get(e.target,t)},delegateType:e}}),E.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){E.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||E.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),E.fn.extend({on:function(e,t,n,r){return Se(this,e,t,n,r)},one:function(e,t,n,r){return Se(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,E(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Te),this.each(function(){E.event.remove(this,e,n,t)})}});var ke=/<script|<style|<link/i,Ae=/checked\s*(?:[^=]|=\s*.checked.)/i,Ne=/^\s*<!\[CDATA\[|\]\]>\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&E(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)E.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=E.extend({},o),Q.set(t,a))}}function He(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!v.checkClone&&Ae.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),He(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=E.map(ye(e,"script"),De)).length;c<f;c++)u=e,c!==p&&(u=E.clone(u,!0,!0),s&&E.merge(a,ye(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,E.map(a,qe),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&E.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?E._evalUrl&&!u.noModule&&E._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(Ne,""),u,l))}return n}function Oe(e,t,n){for(var r,i=t?E.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||E.cleanData(ye(r)),r.parentNode&&(n&&ie(r)&&ve(ye(r,"script")),r.parentNode.removeChild(r));return e}E.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(v.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||E.isXMLDoc(e)))for(a=ye(c),r=0,i=(o=ye(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ye(e),a=a||ye(c),r=0,i=o.length;r<i;r++)Le(o[r],a[r]);else Le(e,c);return 0<(a=ye(c,"script")).length&&ve(a,!f&&ye(e,"script")),c},cleanData:function(e){for(var t,n,r,i=E.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?E.event.remove(n,r):E.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),E.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return B(this,function(e){return void 0===e?E.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return He(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return He(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(E.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return E.clone(this,e,t)})},html:function(e){return B(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ke.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=E.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(E.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return He(this,arguments,function(e){var t=this.parentNode;E.inArray(this,n)<0&&(E.cleanData(ye(this)),t&&t.replaceChild(e,this))},n)}}),E.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){E.fn[e]=function(e){for(var t,n=[],r=E(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),E(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Pe=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Re=/^--/,Me=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Ie=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},We=new RegExp(ne.join("|"),"i"),Fe="[\\x20\\t\\r\\n\\f]",$e=new RegExp("^"+Fe+"+|((?:^|[^\\\\])(?:\\\\.)*)"+Fe+"+$","g");function Be(e,t,n){var r,i,o,a,s=Re.test(t),u=e.style;return(n=n||Me(e))&&(a=n.getPropertyValue(t)||n[t],s&&a&&(a=a.replace($e,"$1")||void 0),""!==a||ie(e)||(a=E.style(e,t)),!v.pixelBoxStyles()&&Pe.test(a)&&We.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=n.width,u.width=r,u.minWidth=i,u.maxWidth=o)),void 0!==a?a+"":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=S.createElement("div"),l=S.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",v.clearCloneStyle="content-box"===l.style.backgroundClip,E.extend(v,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=S.createElement("table"),t=S.createElement("tr"),n=S.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),a}}))}();var ze=["Webkit","Moz","ms"],Ue=S.createElement("div").style,Xe={};function Ve(e){var t=E.cssProps[e]||Xe[e];return t||(e in Ue?e:Xe[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=ze.length;while(n--)if((e=ze[n]+t)in Ue)return e}(e)||e)}var Ge=/^(none|table(?!-c[ea]).+)/,Ye={position:"absolute",visibility:"hidden",display:"block"},Qe={letterSpacing:"0",fontWeight:"400"};function Je(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ke(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=E.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=E.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=E.css(e,"border"+ne[a]+"Width",!0,i))):(u+=E.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=E.css(e,"border"+ne[a]+"Width",!0,i):s+=E.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Ze(e,t,n){var r=Me(e),i=(!v.boxSizingReliable()||n)&&"border-box"===E.css(e,"boxSizing",!1,r),o=i,a=Be(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Pe.test(a)){if(!n)return a;a="auto"}return(!v.boxSizingReliable()&&i||!v.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===E.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===E.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Ke(e,t,n||(i?"border":"content"),o,r,a)+"px"}function et(e,t,n,r,i){return new et.prototype.init(e,t,n,r,i)}E.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Be(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Re.test(t),l=e.style;if(u||(t=Ve(s)),a=E.cssHooks[t]||E.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(E.cssNumber[s]?"":"px")),v.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Re.test(t)||(t=Ve(s)),(a=E.cssHooks[t]||E.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Be(e,t,r)),"normal"===i&&t in Qe&&(i=Qe[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),E.each(["height","width"],function(e,u){E.cssHooks[u]={get:function(e,t,n){if(t)return!Ge.test(E.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Ze(e,u,n):Ie(e,Ye,function(){return Ze(e,u,n)})},set:function(e,t,n){var r,i=Me(e),o=!v.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===E.css(e,"boxSizing",!1,i),s=n?Ke(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Ke(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=E.css(e,u)),Je(0,t,s)}}}),E.cssHooks.marginLeft=_e(v.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Be(e,"marginLeft"))||e.getBoundingClientRect().left-Ie(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),E.each({margin:"",padding:"",border:"Width"},function(i,o){E.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(E.cssHooks[i+o].set=Je)}),E.fn.extend({css:function(e,t){return B(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Me(e),i=t.length;a<i;a++)o[t[a]]=E.css(e,t[a],!1,r);return o}return void 0!==n?E.style(e,t,n):E.css(e,t)},e,t,1<arguments.length)}}),((E.Tween=et).prototype={constructor:et,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||E.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(E.cssNumber[n]?"":"px")},cur:function(){var e=et.propHooks[this.prop];return e&&e.get?e.get(this):et.propHooks._default.get(this)},run:function(e){var t,n=et.propHooks[this.prop];return this.options.duration?this.pos=t=E.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):et.propHooks._default.set(this),this}}).init.prototype=et.prototype,(et.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=E.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){E.fx.step[e.prop]?E.fx.step[e.prop](e):1!==e.elem.nodeType||!E.cssHooks[e.prop]&&null==e.elem.style[Ve(e.prop)]?e.elem[e.prop]=e.now:E.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=et.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},E.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},E.fx=et.prototype.init,E.fx.step={};var tt,nt,rt,it,ot=/^(?:toggle|show|hide)$/,at=/queueHooks$/;function st(){nt&&(!1===S.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(st):C.setTimeout(st,E.fx.interval),E.fx.tick())}function ut(){return C.setTimeout(function(){tt=void 0}),tt=Date.now()}function lt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ct(e,t,n){for(var r,i=(ft.tweeners[t]||[]).concat(ft.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ft(o,e,t){var n,a,r=0,i=ft.prefilters.length,s=E.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=tt||ut(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:E.extend({},e),opts:E.extend(!0,{specialEasing:{},easing:E.easing._default},t),originalProperties:e,originalOptions:t,startTime:tt||ut(),duration:t.duration,tweens:[],createTween:function(e,t){var n=E.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=E.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=ft.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(E._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return E.map(c,ct,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),E.fx.timer(E.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}E.Animation=E.extend(ft,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],ft.tweeners[n]=ft.tweeners[n]||[],ft.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=Y.get(e,"fxshow");for(r in n.queue||(null==(a=E._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,E.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ot.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||E.style(e,r)}if((u=!E.isEmptyObject(t))||!E.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=Y.get(e,"display")),"none"===(c=E.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=E.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===E.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(y?"hidden"in y&&(g=y.hidden):y=Y.access(e,"fxshow",{display:l}),o&&(y.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)E.style(e,r,d[r])})),u=ct(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?ft.prefilters.unshift(e):ft.prefilters.push(e)}}),E.speed=function(e,t,n){var r=e&&"object"==typeof e?E.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return E.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in E.fx.speeds?r.duration=E.fx.speeds[r.duration]:r.duration=E.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&E.dequeue(this,r.queue)},r},E.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=E.isEmptyObject(t),o=E.speed(e,n,r),a=function(){var e=ft(this,E.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=E.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&at.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||E.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=E.timers,o=n?n.length:0;for(t.finish=!0,E.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),E.each(["toggle","show","hide"],function(e,r){var i=E.fn[r];E.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(lt(r,!0),e,t,n)}}),E.each({slideDown:lt("show"),slideUp:lt("hide"),slideToggle:lt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){E.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),E.timers=[],E.fx.tick=function(){var e,t=0,n=E.timers;for(tt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||E.fx.stop(),tt=void 0},E.fx.timer=function(e){E.timers.push(e),E.fx.start()},E.fx.interval=13,E.fx.start=function(){nt||(nt=!0,st())},E.fx.stop=function(){nt=null},E.fx.speeds={slow:600,fast:200,_default:400},E.fn.delay=function(r,e){return r=E.fx&&E.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},rt=S.createElement("input"),it=S.createElement("select").appendChild(S.createElement("option")),rt.type="checkbox",v.checkOn=""!==rt.value,v.optSelected=it.selected,(rt=S.createElement("input")).value="t",rt.type="radio",v.radioValue="t"===rt.value;var pt,dt=E.expr.attrHandle;E.fn.extend({attr:function(e,t){return B(this,E.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){E.removeAttr(this,e)})}}),E.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?E.prop(e,t,n):(1===o&&E.isXMLDoc(e)||(i=E.attrHooks[t.toLowerCase()]||(E.expr.match.bool.test(t)?pt:void 0)),void 0!==n?null===n?void E.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=E.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!v.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),pt={set:function(e,t,n){return!1===t?E.removeAttr(e,n):e.setAttribute(n,n),n}},E.each(E.expr.match.bool.source.match(/\w+/g),function(e,t){var a=dt[t]||E.find.attr;dt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=dt[o],dt[o]=r,r=null!=a(e,t,n)?o:null,dt[o]=i),r}});var ht=/^(?:input|select|textarea|button)$/i,gt=/^(?:a|area)$/i;function yt(e){return(e.match(P)||[]).join(" ")}function vt(e){return e.getAttribute&&e.getAttribute("class")||""}function mt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}E.fn.extend({prop:function(e,t){return B(this,E.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[E.propFix[e]||e]})}}),E.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&E.isXMLDoc(e)||(t=E.propFix[t]||t,i=E.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=E.find.attr(e,"tabindex");return t?parseInt(t,10):ht.test(e.nodeName)||gt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),v.optSelected||(E.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),E.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){E.propFix[this.toLowerCase()]=this}),E.fn.extend({addClass:function(t){var e,n,r,i,o,a;return m(t)?this.each(function(e){E(this).addClass(t.call(this,e,vt(this)))}):(e=mt(t)).length?this.each(function(){if(r=vt(this),n=1===this.nodeType&&" "+yt(r)+" "){for(o=0;o<e.length;o++)i=e[o],n.indexOf(" "+i+" ")<0&&(n+=i+" ");a=yt(n),r!==a&&this.setAttribute("class",a)}}):this},removeClass:function(t){var e,n,r,i,o,a;return m(t)?this.each(function(e){E(this).removeClass(t.call(this,e,vt(this)))}):arguments.length?(e=mt(t)).length?this.each(function(){if(r=vt(this),n=1===this.nodeType&&" "+yt(r)+" "){for(o=0;o<e.length;o++){i=e[o];while(-1<n.indexOf(" "+i+" "))n=n.replace(" "+i+" "," ")}a=yt(n),r!==a&&this.setAttribute("class",a)}}):this:this.attr("class","")},toggleClass:function(t,n){var e,r,i,o,a=typeof t,s="string"===a||Array.isArray(t);return m(t)?this.each(function(e){E(this).toggleClass(t.call(this,e,vt(this),n),n)}):"boolean"==typeof n&&s?n?this.addClass(t):this.removeClass(t):(e=mt(t),this.each(function(){if(s)for(o=E(this),i=0;i<e.length;i++)r=e[i],o.hasClass(r)?o.removeClass(r):o.addClass(r);else void 0!==t&&"boolean"!==a||((r=vt(this))&&Y.set(this,"__className__",r),this.setAttribute&&this.setAttribute("class",r||!1===t?"":Y.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+yt(vt(n))+" ").indexOf(t))return!0;return!1}});var xt=/\r/g;E.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,E(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=E.map(t,function(e){return null==e?"":e+""})),(r=E.valHooks[this.type]||E.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=E.valHooks[t.type]||E.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(xt,""):null==e?"":e:void 0}}),E.extend({valHooks:{option:{get:function(e){var t=E.find.attr(e,"value");return null!=t?t:yt(E.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=E(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=E.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<E.inArray(E.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),E.each(["radio","checkbox"],function(){E.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<E.inArray(E(e).val(),t)}},v.checkOn||(E.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),v.focusin="onfocusin"in C;var bt=/^(?:focusinfocus|focusoutblur)$/,wt=function(e){e.stopPropagation()};E.extend(E.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||S],d=y.call(e,"type")?e.type:e,h=y.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||S,3!==n.nodeType&&8!==n.nodeType&&!bt.test(d+E.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[E.expando]?e:new E.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:E.makeArray(t,[e]),c=E.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,bt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||S)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),E.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,wt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,wt),E.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=E.extend(new E.Event,n,{type:e,isSimulated:!0});E.event.trigger(r,null,t)}}),E.fn.extend({trigger:function(e,t){return this.each(function(){E.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return E.event.trigger(e,t,n,!0)}}),v.focusin||E.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){E.event.simulate(r,e.target,E.event.fix(e))};E.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var Tt=C.location,Ct={guid:Date.now()},St=/\?/;E.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||E.error("Invalid XML: "+(n?E.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Et=/\[\]$/,kt=/\r?\n/g,At=/^(?:submit|button|image|reset|file)$/i,Nt=/^(?:input|select|textarea|keygen)/i;function jt(n,e,r,i){var t;if(Array.isArray(e))E.each(e,function(e,t){r||Et.test(n)?i(n,t):jt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)jt(n+"["+t+"]",e[t],r,i)}E.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!E.isPlainObject(e))E.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},E.fn.extend({serialize:function(){return E.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=E.prop(this,"elements");return e?E.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!E(this).is(":disabled")&&Nt.test(this.nodeName)&&!At.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=E(this).val();return null==n?null:Array.isArray(n)?E.map(n,function(e){return{name:t.name,value:e.replace(kt,"\r\n")}}):{name:t.name,value:n.replace(kt,"\r\n")}}).get()}});var Dt=/%20/g,qt=/#.*$/,Lt=/([?&])_=[^&]*/,Ht=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ot=/^(?:GET|HEAD)$/,Pt=/^\/\//,Rt={},Mt={},It="*/".concat("*"),Wt=S.createElement("a");function Ft(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function $t(t,i,o,a){var s={},u=t===Mt;function l(e){var r;return s[e]=!0,E.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Bt(e,t){var n,r,i=E.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&E.extend(!0,e,r),e}Wt.href=Tt.href,E.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Tt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Tt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":It,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":E.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Bt(Bt(e,E.ajaxSettings),t):Bt(E.ajaxSettings,e)},ajaxPrefilter:Ft(Rt),ajaxTransport:Ft(Mt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,y=E.ajaxSetup({},t),v=y.context||y,m=y.context&&(v.nodeType||v.jquery)?E(v):E.event,x=E.Deferred(),b=E.Callbacks("once memory"),w=y.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Ht.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(y.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),y.url=((e||y.url||Tt.href)+"").replace(Pt,Tt.protocol+"//"),y.type=t.method||t.type||y.method||y.type,y.dataTypes=(y.dataType||"*").toLowerCase().match(P)||[""],null==y.crossDomain){r=S.createElement("a");try{r.href=y.url,r.href=r.href,y.crossDomain=Wt.protocol+"//"+Wt.host!=r.protocol+"//"+r.host}catch(e){y.crossDomain=!0}}if(y.data&&y.processData&&"string"!=typeof y.data&&(y.data=E.param(y.data,y.traditional)),$t(Rt,y,t,T),h)return T;for(i in(g=E.event&&y.global)&&0==E.active++&&E.event.trigger("ajaxStart"),y.type=y.type.toUpperCase(),y.hasContent=!Ot.test(y.type),f=y.url.replace(qt,""),y.hasContent?y.data&&y.processData&&0===(y.contentType||"").indexOf("application/x-www-form-urlencoded")&&(y.data=y.data.replace(Dt,"+")):(o=y.url.slice(f.length),y.data&&(y.processData||"string"==typeof y.data)&&(f+=(St.test(f)?"&":"?")+y.data,delete y.data),!1===y.cache&&(f=f.replace(Lt,"$1"),o=(St.test(f)?"&":"?")+"_="+Ct.guid+++o),y.url=f+o),y.ifModified&&(E.lastModified[f]&&T.setRequestHeader("If-Modified-Since",E.lastModified[f]),E.etag[f]&&T.setRequestHeader("If-None-Match",E.etag[f])),(y.data&&y.hasContent&&!1!==y.contentType||t.contentType)&&T.setRequestHeader("Content-Type",y.contentType),T.setRequestHeader("Accept",y.dataTypes[0]&&y.accepts[y.dataTypes[0]]?y.accepts[y.dataTypes[0]]+("*"!==y.dataTypes[0]?", "+It+"; q=0.01":""):y.accepts["*"]),y.headers)T.setRequestHeader(i,y.headers[i]);if(y.beforeSend&&(!1===y.beforeSend.call(v,T,y)||h))return T.abort();if(u="abort",b.add(y.complete),T.done(y.success),T.fail(y.error),c=$t(Mt,y,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,y]),h)return T;y.async&&0<y.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},y.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(y,T,n)),!i&&-1<E.inArray("script",y.dataTypes)&&E.inArray("json",y.dataTypes)<0&&(y.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(y,s,T,i),i?(y.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(E.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(E.etag[f]=u)),204===e||"HEAD"===y.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(v,[o,l,T]):x.rejectWith(v,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,y,i?o:a]),b.fireWith(v,[T,l]),g&&(m.trigger("ajaxComplete",[T,y]),--E.active||E.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return E.get(e,t,n,"json")},getScript:function(e,t){return E.get(e,void 0,t,"script")}}),E.each(["get","post"],function(e,i){E[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),E.ajax(E.extend({url:e,type:i,dataType:r,data:t,success:n},E.isPlainObject(e)&&e))}}),E.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),E._evalUrl=function(e,t,n){return E.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){E.globalEval(e,t,n)}})},E.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=E(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){E(this).wrapInner(n.call(this,e))}):this.each(function(){var e=E(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){E(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){E(this).replaceWith(this.childNodes)}),this}}),E.expr.pseudos.hidden=function(e){return!E.expr.pseudos.visible(e)},E.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},E.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var _t={0:200,1223:204},zt=E.ajaxSettings.xhr();v.cors=!!zt&&"withCredentials"in zt,v.ajax=zt=!!zt,E.ajaxTransport(function(i){var o,a;if(v.cors||zt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(_t[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),E.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),E.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return E.globalEval(e),e}}}),E.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),E.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=E("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),S.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;E.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||E.expando+"_"+Ct.guid++;return this[e]=!0,e}}),E.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||E.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?E(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=S.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Ut.childNodes.length),E.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=S.implementation.createHTMLDocument("")).createElement("base")).href=S.location.href,t.head.appendChild(r)):t=S),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&E(o).remove(),E.merge([],i.childNodes)));var r,i,o},E.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=yt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&E.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?E("<div>").append(E.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},E.expr.pseudos.animated=function(t){return E.grep(E.timers,function(e){return t===e.elem}).length},E.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=E.css(e,"position"),c=E(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=E.css(e,"top"),u=E.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,E.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},E.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){E.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===E.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===E.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=E(e).offset()).top+=E.css(e,"borderTopWidth",!0),i.left+=E.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-E.css(r,"marginTop",!0),left:t.left-i.left-E.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===E.css(e,"position"))e=e.offsetParent;return e||re})}}),E.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;E.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),E.each(["top","left"],function(e,n){E.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?E(e).position()[n]+"px":t})}),E.each({Height:"height",Width:"width"},function(a,s){E.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){E.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?E.css(e,t,i):E.style(e,t,n,i)},s,n?e:void 0,n)}})}),E.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){E.fn[t]=function(e){return this.on(t,e)}}),E.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),E.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){E.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Gt=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;E.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||E.guid++,i},E.holdReady=function(e){e?E.readyWait++:E.ready(!0)},E.isArray=Array.isArray,E.parseJSON=JSON.parse,E.nodeName=A,E.isFunction=m,E.isWindow=x,E.camelCase=X,E.type=w,E.now=Date.now,E.isNumeric=function(e){var t=E.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},E.trim=function(e){return null==e?"":(e+"").replace(Gt,"$1")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return E});var Yt=C.jQuery,Qt=C.$;return E.noConflict=function(e){return C.$===E&&(C.$=Qt),e&&C.jQuery===E&&(C.jQuery=Yt),E},"undefined"==typeof e&&(C.jQuery=C.$=E),E}); </script> <script type="text/javascript">/*! Waypoints - 4.0.1 Copyright © 2011-2016 Caleb Troughton Licensed under the MIT license. https://github.com/imakewebthings/waypoints/blob/master/licenses.txt */ !function(){"use strict";function t(o){if(!o)throw new Error("No options passed to Waypoint constructor");if(!o.element)throw new Error("No element option passed to Waypoint constructor");if(!o.handler)throw new Error("No handler option passed to Waypoint constructor");this.key="waypoint-"+e,this.options=t.Adapter.extend({},t.defaults,o),this.element=this.options.element,this.adapter=new t.Adapter(this.element),this.callback=o.handler,this.axis=this.options.horizontal?"horizontal":"vertical",this.enabled=this.options.enabled,this.triggerPoint=null,this.group=t.Group.findOrCreate({name:this.options.group,axis:this.axis}),this.context=t.Context.findOrCreateByElement(this.options.context),t.offsetAliases[this.options.offset]&&(this.options.offset=t.offsetAliases[this.options.offset]),this.group.add(this),this.context.add(this),i[this.key]=this,e+=1}var e=0,i={};t.prototype.queueTrigger=function(t){this.group.queueTrigger(this,t)},t.prototype.trigger=function(t){this.enabled&&this.callback&&this.callback.apply(this,t)},t.prototype.destroy=function(){this.context.remove(this),this.group.remove(this),delete i[this.key]},t.prototype.disable=function(){return this.enabled=!1,this},t.prototype.enable=function(){return this.context.refresh(),this.enabled=!0,this},t.prototype.next=function(){return this.group.next(this)},t.prototype.previous=function(){return this.group.previous(this)},t.invokeAll=function(t){var e=[];for(var o in i)e.push(i[o]);for(var n=0,r=e.length;r>n;n++)e[n][t]()},t.destroyAll=function(){t.invokeAll("destroy")},t.disableAll=function(){t.invokeAll("disable")},t.enableAll=function(){t.Context.refreshAll();for(var e in i)i[e].enabled=!0;return this},t.refreshAll=function(){t.Context.refreshAll()},t.viewportHeight=function(){return window.innerHeight||document.documentElement.clientHeight},t.viewportWidth=function(){return document.documentElement.clientWidth},t.adapters=[],t.defaults={context:window,continuous:!0,enabled:!0,group:"default",horizontal:!1,offset:0},t.offsetAliases={"bottom-in-view":function(){return this.context.innerHeight()-this.adapter.outerHeight()},"right-in-view":function(){return this.context.innerWidth()-this.adapter.outerWidth()}},window.Waypoint=t}(),function(){"use strict";function t(t){window.setTimeout(t,1e3/60)}function e(t){this.element=t,this.Adapter=n.Adapter,this.adapter=new this.Adapter(t),this.key="waypoint-context-"+i,this.didScroll=!1,this.didResize=!1,this.oldScroll={x:this.adapter.scrollLeft(),y:this.adapter.scrollTop()},this.waypoints={vertical:{},horizontal:{}},t.waypointContextKey=this.key,o[t.waypointContextKey]=this,i+=1,n.windowContext||(n.windowContext=!0,n.windowContext=new e(window)),this.createThrottledScrollHandler(),this.createThrottledResizeHandler()}var i=0,o={},n=window.Waypoint,r=window.onload;e.prototype.add=function(t){var e=t.options.horizontal?"horizontal":"vertical";this.waypoints[e][t.key]=t,this.refresh()},e.prototype.checkEmpty=function(){var t=this.Adapter.isEmptyObject(this.waypoints.horizontal),e=this.Adapter.isEmptyObject(this.waypoints.vertical),i=this.element==this.element.window;t&&e&&!i&&(this.adapter.off(".waypoints"),delete o[this.key])},e.prototype.createThrottledResizeHandler=function(){function t(){e.handleResize(),e.didResize=!1}var e=this;this.adapter.on("resize.waypoints",function(){e.didResize||(e.didResize=!0,n.requestAnimationFrame(t))})},e.prototype.createThrottledScrollHandler=function(){function t(){e.handleScroll(),e.didScroll=!1}var e=this;this.adapter.on("scroll.waypoints",function(){(!e.didScroll||n.isTouch)&&(e.didScroll=!0,n.requestAnimationFrame(t))})},e.prototype.handleResize=function(){n.Context.refreshAll()},e.prototype.handleScroll=function(){var t={},e={horizontal:{newScroll:this.adapter.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.adapter.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};for(var i in e){var o=e[i],n=o.newScroll>o.oldScroll,r=n?o.forward:o.backward;for(var s in this.waypoints[i]){var a=this.waypoints[i][s];if(null!==a.triggerPoint){var l=o.oldScroll<a.triggerPoint,h=o.newScroll>=a.triggerPoint,p=l&&h,u=!l&&!h;(p||u)&&(a.queueTrigger(r),t[a.group.id]=a.group)}}}for(var c in t)t[c].flushTriggers();this.oldScroll={x:e.horizontal.newScroll,y:e.vertical.newScroll}},e.prototype.innerHeight=function(){return this.element==this.element.window?n.viewportHeight():this.adapter.innerHeight()},e.prototype.remove=function(t){delete this.waypoints[t.axis][t.key],this.checkEmpty()},e.prototype.innerWidth=function(){return this.element==this.element.window?n.viewportWidth():this.adapter.innerWidth()},e.prototype.destroy=function(){var t=[];for(var e in this.waypoints)for(var i in this.waypoints[e])t.push(this.waypoints[e][i]);for(var o=0,n=t.length;n>o;o++)t[o].destroy()},e.prototype.refresh=function(){var t,e=this.element==this.element.window,i=e?void 0:this.adapter.offset(),o={};this.handleScroll(),t={horizontal:{contextOffset:e?0:i.left,contextScroll:e?0:this.oldScroll.x,contextDimension:this.innerWidth(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:e?0:i.top,contextScroll:e?0:this.oldScroll.y,contextDimension:this.innerHeight(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};for(var r in t){var s=t[r];for(var a in this.waypoints[r]){var l,h,p,u,c,d=this.waypoints[r][a],f=d.options.offset,w=d.triggerPoint,y=0,g=null==w;d.element!==d.element.window&&(y=d.adapter.offset()[s.offsetProp]),"function"==typeof f?f=f.apply(d):"string"==typeof f&&(f=parseFloat(f),d.options.offset.indexOf("%")>-1&&(f=Math.ceil(s.contextDimension*f/100))),l=s.contextScroll-s.contextOffset,d.triggerPoint=Math.floor(y+l-f),h=w<s.oldScroll,p=d.triggerPoint>=s.oldScroll,u=h&&p,c=!h&&!p,!g&&u?(d.queueTrigger(s.backward),o[d.group.id]=d.group):!g&&c?(d.queueTrigger(s.forward),o[d.group.id]=d.group):g&&s.oldScroll>=d.triggerPoint&&(d.queueTrigger(s.forward),o[d.group.id]=d.group)}}return n.requestAnimationFrame(function(){for(var t in o)o[t].flushTriggers()}),this},e.findOrCreateByElement=function(t){return e.findByElement(t)||new e(t)},e.refreshAll=function(){for(var t in o)o[t].refresh()},e.findByElement=function(t){return o[t.waypointContextKey]},window.onload=function(){r&&r(),e.refreshAll()},n.requestAnimationFrame=function(e){var i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||t;i.call(window,e)},n.Context=e}(),function(){"use strict";function t(t,e){return t.triggerPoint-e.triggerPoint}function e(t,e){return e.triggerPoint-t.triggerPoint}function i(t){this.name=t.name,this.axis=t.axis,this.id=this.name+"-"+this.axis,this.waypoints=[],this.clearTriggerQueues(),o[this.axis][this.name]=this}var o={vertical:{},horizontal:{}},n=window.Waypoint;i.prototype.add=function(t){this.waypoints.push(t)},i.prototype.clearTriggerQueues=function(){this.triggerQueues={up:[],down:[],left:[],right:[]}},i.prototype.flushTriggers=function(){for(var i in this.triggerQueues){var o=this.triggerQueues[i],n="up"===i||"left"===i;o.sort(n?e:t);for(var r=0,s=o.length;s>r;r+=1){var a=o[r];(a.options.continuous||r===o.length-1)&&a.trigger([i])}}this.clearTriggerQueues()},i.prototype.next=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints),o=i===this.waypoints.length-1;return o?null:this.waypoints[i+1]},i.prototype.previous=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints);return i?this.waypoints[i-1]:null},i.prototype.queueTrigger=function(t,e){this.triggerQueues[e].push(t)},i.prototype.remove=function(t){var e=n.Adapter.inArray(t,this.waypoints);e>-1&&this.waypoints.splice(e,1)},i.prototype.first=function(){return this.waypoints[0]},i.prototype.last=function(){return this.waypoints[this.waypoints.length-1]},i.findOrCreate=function(t){return o[t.axis][t.name]||new i(t)},n.Group=i}(),function(){"use strict";function t(t){this.$element=e(t)}var e=window.jQuery,i=window.Waypoint;e.each(["innerHeight","innerWidth","off","offset","on","outerHeight","outerWidth","scrollLeft","scrollTop"],function(e,i){t.prototype[i]=function(){var t=Array.prototype.slice.call(arguments);return this.$element[i].apply(this.$element,t)}}),e.each(["extend","inArray","isEmptyObject"],function(i,o){t[o]=e[o]}),i.adapters.push({name:"jquery",Adapter:t}),i.Adapter=t}(),function(){"use strict";function t(t){return function(){var i=[],o=arguments[0];return t.isFunction(arguments[0])&&(o=t.extend({},arguments[1]),o.handler=arguments[0]),this.each(function(){var n=t.extend({},o,{element:this});"string"==typeof n.context&&(n.context=t(this).closest(n.context)[0]),i.push(new e(n))}),i}}var e=window.Waypoint;window.jQuery&&(window.jQuery.fn.waypoint=t(window.jQuery)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}(); </script> <script type="text/javascript">(function(window, factory) { var lazySizes = factory(window, window.document, Date); window.lazySizes = lazySizes; if(typeof module == 'object' && module.exports){ module.exports = lazySizes; } }(typeof window != 'undefined' ? window : {}, /** * @typedef { import("./types/global").LazySizesConfigPartial } LazySizesConfigPartial */ function l(window, document, Date) { // Pass in the window Date function also for SSR because the Date class can be lost 'use strict'; /*jshint eqnull:true */ var lazysizes, /** * @type { LazySizesConfigPartial } */ lazySizesCfg; (function(){ var prop; var lazySizesDefaults = { lazyClass: 'lazyload', loadedClass: 'lazyloaded', loadingClass: 'lazyloading', preloadClass: 'lazypreload', errorClass: 'lazyerror', //strictClass: 'lazystrict', autosizesClass: 'lazyautosizes', fastLoadedClass: 'ls-is-cached', iframeLoadMode: 0, srcAttr: 'data-src', srcsetAttr: 'data-srcset', sizesAttr: 'data-sizes', //preloadAfterLoad: false, minSize: 40, customMedia: {}, init: true, expFactor: 1.5, hFac: 0.8, loadMode: 2, loadHidden: true, ricTimeout: 0, throttleDelay: 125, }; lazySizesCfg = window.lazySizesConfig || window.lazysizesConfig || {}; for(prop in lazySizesDefaults){ if(!(prop in lazySizesCfg)){ lazySizesCfg[prop] = lazySizesDefaults[prop]; } } })(); if (!document || !document.getElementsByClassName) { return { init: function () {}, /** * @type { LazySizesConfigPartial } */ cfg: lazySizesCfg, /** * @type { true } */ noSupport: true, }; } var docElem = document.documentElement; var supportPicture = window.HTMLPictureElement; var _addEventListener = 'addEventListener'; var _getAttribute = 'getAttribute'; /** * Update to bind to window because 'this' becomes null during SSR * builds. */ var addEventListener = window[_addEventListener].bind(window); var setTimeout = window.setTimeout; var requestAnimationFrame = window.requestAnimationFrame || setTimeout; var requestIdleCallback = window.requestIdleCallback; var regPicture = /^picture$/i; var loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded']; var regClassCache = {}; var forEach = Array.prototype.forEach; /** * @param ele {Element} * @param cls {string} */ var hasClass = function(ele, cls) { if(!regClassCache[cls]){ regClassCache[cls] = new RegExp('(\\s|^)'+cls+'(\\s|$)'); } return regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls]; }; /** * @param ele {Element} * @param cls {string} */ var addClass = function(ele, cls) { if (!hasClass(ele, cls)){ ele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls); } }; /** * @param ele {Element} * @param cls {string} */ var removeClass = function(ele, cls) { var reg; if ((reg = hasClass(ele,cls))) { ele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' ')); } }; var addRemoveLoadEvents = function(dom, fn, add){ var action = add ? _addEventListener : 'removeEventListener'; if(add){ addRemoveLoadEvents(dom, fn); } loadEvents.forEach(function(evt){ dom[action](evt, fn); }); }; /** * @param elem { Element } * @param name { string } * @param detail { any } * @param noBubbles { boolean } * @param noCancelable { boolean } * @returns { CustomEvent } */ var triggerEvent = function(elem, name, detail, noBubbles, noCancelable){ var event = document.createEvent('Event'); if(!detail){ detail = {}; } detail.instance = lazysizes; event.initEvent(name, !noBubbles, !noCancelable); event.detail = detail; elem.dispatchEvent(event); return event; }; var updatePolyfill = function (el, full){ var polyfill; if( !supportPicture && ( polyfill = (window.picturefill || lazySizesCfg.pf) ) ){ if(full && full.src && !el[_getAttribute]('srcset')){ el.setAttribute('srcset', full.src); } polyfill({reevaluate: true, elements: [el]}); } else if(full && full.src){ el.src = full.src; } }; var getCSS = function (elem, style){ return (getComputedStyle(elem, null) || {})[style]; }; /** * * @param elem { Element } * @param parent { Element } * @param [width] {number} * @returns {number} */ var getWidth = function(elem, parent, width){ width = width || elem.offsetWidth; while(width < lazySizesCfg.minSize && parent && !elem._lazysizesWidth){ width = parent.offsetWidth; parent = parent.parentNode; } return width; }; var rAF = (function(){ var running, waiting; var firstFns = []; var secondFns = []; var fns = firstFns; var run = function(){ var runFns = fns; fns = firstFns.length ? secondFns : firstFns; running = true; waiting = false; while(runFns.length){ runFns.shift()(); } running = false; }; var rafBatch = function(fn, queue){ if(running && !queue){ fn.apply(this, arguments); } else { fns.push(fn); if(!waiting){ waiting = true; (document.hidden ? setTimeout : requestAnimationFrame)(run); } } }; rafBatch._lsFlush = run; return rafBatch; })(); var rAFIt = function(fn, simple){ return simple ? function() { rAF(fn); } : function(){ var that = this; var args = arguments; rAF(function(){ fn.apply(that, args); }); } ; }; var throttle = function(fn){ var running; var lastTime = 0; var gDelay = lazySizesCfg.throttleDelay; var rICTimeout = lazySizesCfg.ricTimeout; var run = function(){ running = false; lastTime = Date.now(); fn(); }; var idleCallback = requestIdleCallback && rICTimeout > 49 ? function(){ requestIdleCallback(run, {timeout: rICTimeout}); if(rICTimeout !== lazySizesCfg.ricTimeout){ rICTimeout = lazySizesCfg.ricTimeout; } } : rAFIt(function(){ setTimeout(run); }, true) ; return function(isPriority){ var delay; if((isPriority = isPriority === true)){ rICTimeout = 33; } if(running){ return; } running = true; delay = gDelay - (Date.now() - lastTime); if(delay < 0){ delay = 0; } if(isPriority || delay < 9){ idleCallback(); } else { setTimeout(idleCallback, delay); } }; }; //based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html var debounce = function(func) { var timeout, timestamp; var wait = 99; var run = function(){ timeout = null; func(); }; var later = function() { var last = Date.now() - timestamp; if (last < wait) { setTimeout(later, wait - last); } else { (requestIdleCallback || run)(run); } }; return function() { timestamp = Date.now(); if (!timeout) { timeout = setTimeout(later, wait); } }; }; var loader = (function(){ var preloadElems, isCompleted, resetPreloadingTimer, loadMode, started; var eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden; var regImg = /^img$/i; var regIframe = /^iframe$/i; var supportScroll = ('onscroll' in window) && !(/(gle|ing)bot/.test(navigator.userAgent)); var shrinkExpand = 0; var currentExpand = 0; var isLoading = 0; var lowRuns = -1; var resetPreloading = function(e){ isLoading--; if(!e || isLoading < 0 || !e.target){ isLoading = 0; } }; var isVisible = function (elem) { if (isBodyHidden == null) { isBodyHidden = getCSS(document.body, 'visibility') == 'hidden'; } return isBodyHidden || !(getCSS(elem.parentNode, 'visibility') == 'hidden' && getCSS(elem, 'visibility') == 'hidden'); }; var isNestedVisible = function(elem, elemExpand){ var outerRect; var parent = elem; var visible = isVisible(elem); eLtop -= elemExpand; eLbottom += elemExpand; eLleft -= elemExpand; eLright += elemExpand; while(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){ visible = ((getCSS(parent, 'opacity') || 1) > 0); if(visible && getCSS(parent, 'overflow') != 'visible'){ outerRect = parent.getBoundingClientRect(); visible = eLright > outerRect.left && eLleft < outerRect.right && eLbottom > outerRect.top - 1 && eLtop < outerRect.bottom + 1 ; } } return visible; }; var checkElements = function() { var eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal, beforeExpandVal, defaultExpand, preloadExpand, hFac; var lazyloadElems = lazysizes.elements; if((loadMode = lazySizesCfg.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){ i = 0; lowRuns++; for(; i < eLlen; i++){ if(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;} if(!supportScroll || (lazysizes.prematureUnveil && lazysizes.prematureUnveil(lazyloadElems[i]))){unveilElement(lazyloadElems[i]);continue;} if(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){ elemExpand = currentExpand; } if (!defaultExpand) { defaultExpand = (!lazySizesCfg.expand || lazySizesCfg.expand < 1) ? docElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370 : lazySizesCfg.expand; lazysizes._defEx = defaultExpand; preloadExpand = defaultExpand * lazySizesCfg.expFactor; hFac = lazySizesCfg.hFac; isBodyHidden = null; if(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden){ currentExpand = preloadExpand; lowRuns = 0; } else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){ currentExpand = defaultExpand; } else { currentExpand = shrinkExpand; } } if(beforeExpandVal !== elemExpand){ eLvW = innerWidth + (elemExpand * hFac); elvH = innerHeight + elemExpand; elemNegativeExpand = elemExpand * -1; beforeExpandVal = elemExpand; } rect = lazyloadElems[i].getBoundingClientRect(); if ((eLbottom = rect.bottom) >= elemNegativeExpand && (eLtop = rect.top) <= elvH && (eLright = rect.right) >= elemNegativeExpand * hFac && (eLleft = rect.left) <= eLvW && (eLbottom || eLright || eLleft || eLtop) && (lazySizesCfg.loadHidden || isVisible(lazyloadElems[i])) && ((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){ unveilElement(lazyloadElems[i]); loadedSomething = true; if(isLoading > 9){break;} } else if(!loadedSomething && isCompleted && !autoLoadElem && isLoading < 4 && lowRuns < 4 && loadMode > 2 && (preloadElems[0] || lazySizesCfg.preloadAfterLoad) && (preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesCfg.sizesAttr) != 'auto')))){ autoLoadElem = preloadElems[0] || lazyloadElems[i]; } } if(autoLoadElem && !loadedSomething){ unveilElement(autoLoadElem); } } }; var throttledCheckElements = throttle(checkElements); var switchLoadingClass = function(e){ var elem = e.target; if (elem._lazyCache) { delete elem._lazyCache; return; } resetPreloading(e); addClass(elem, lazySizesCfg.loadedClass); removeClass(elem, lazySizesCfg.loadingClass); addRemoveLoadEvents(elem, rafSwitchLoadingClass); triggerEvent(elem, 'lazyloaded'); }; var rafedSwitchLoadingClass = rAFIt(switchLoadingClass); var rafSwitchLoadingClass = function(e){ rafedSwitchLoadingClass({target: e.target}); }; var changeIframeSrc = function(elem, src){ var loadMode = elem.getAttribute('data-load-mode') || lazySizesCfg.iframeLoadMode; // loadMode can be also a string! if (loadMode == 0) { elem.contentWindow.location.replace(src); } else if (loadMode == 1) { elem.src = src; } }; var handleSources = function(source){ var customMedia; var sourceSrcset = source[_getAttribute](lazySizesCfg.srcsetAttr); if( (customMedia = lazySizesCfg.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){ source.setAttribute('media', customMedia); } if(sourceSrcset){ source.setAttribute('srcset', sourceSrcset); } }; var lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){ var src, srcset, parent, isPicture, event, firesLoad; if(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){ if(sizes){ if(isAuto){ addClass(elem, lazySizesCfg.autosizesClass); } else { elem.setAttribute('sizes', sizes); } } srcset = elem[_getAttribute](lazySizesCfg.srcsetAttr); src = elem[_getAttribute](lazySizesCfg.srcAttr); if(isImg) { parent = elem.parentNode; isPicture = parent && regPicture.test(parent.nodeName || ''); } firesLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture)); event = {target: elem}; addClass(elem, lazySizesCfg.loadingClass); if(firesLoad){ clearTimeout(resetPreloadingTimer); resetPreloadingTimer = setTimeout(resetPreloading, 2500); addRemoveLoadEvents(elem, rafSwitchLoadingClass, true); } if(isPicture){ forEach.call(parent.getElementsByTagName('source'), handleSources); } if(srcset){ elem.setAttribute('srcset', srcset); } else if(src && !isPicture){ if(regIframe.test(elem.nodeName)){ changeIframeSrc(elem, src); } else { elem.src = src; } } if(isImg && (srcset || isPicture)){ updatePolyfill(elem, {src: src}); } } if(elem._lazyRace){ delete elem._lazyRace; } removeClass(elem, lazySizesCfg.lazyClass); rAF(function(){ // Part of this can be removed as soon as this fix is older: https://bugs.chromium.org/p/chromium/issues/detail?id=7731 (2015) var isLoaded = elem.complete && elem.naturalWidth > 1; if( !firesLoad || isLoaded){ if (isLoaded) { addClass(elem, lazySizesCfg.fastLoadedClass); } switchLoadingClass(event); elem._lazyCache = true; setTimeout(function(){ if ('_lazyCache' in elem) { delete elem._lazyCache; } }, 9); } if (elem.loading == 'lazy') { isLoading--; } }, true); }); /** * * @param elem { Element } */ var unveilElement = function (elem){ if (elem._lazyRace) {return;} var detail; var isImg = regImg.test(elem.nodeName); //allow using sizes="auto", but don't use. it's invalid. Use data-sizes="auto" or a valid value for sizes instead (i.e.: sizes="80vw") var sizes = isImg && (elem[_getAttribute](lazySizesCfg.sizesAttr) || elem[_getAttribute]('sizes')); var isAuto = sizes == 'auto'; if( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesCfg.errorClass) && hasClass(elem, lazySizesCfg.lazyClass)){return;} detail = triggerEvent(elem, 'lazyunveilread').detail; if(isAuto){ autoSizer.updateElem(elem, true, elem.offsetWidth); } elem._lazyRace = true; isLoading++; lazyUnveil(elem, detail, isAuto, sizes, isImg); }; var afterScroll = debounce(function(){ lazySizesCfg.loadMode = 3; throttledCheckElements(); }); var altLoadmodeScrollListner = function(){ if(lazySizesCfg.loadMode == 3){ lazySizesCfg.loadMode = 2; } afterScroll(); }; var onload = function(){ if(isCompleted){return;} if(Date.now() - started < 999){ setTimeout(onload, 999); return; } isCompleted = true; lazySizesCfg.loadMode = 3; throttledCheckElements(); addEventListener('scroll', altLoadmodeScrollListner, true); }; return { _: function(){ started = Date.now(); lazysizes.elements = document.getElementsByClassName(lazySizesCfg.lazyClass); preloadElems = document.getElementsByClassName(lazySizesCfg.lazyClass + ' ' + lazySizesCfg.preloadClass); addEventListener('scroll', throttledCheckElements, true); addEventListener('resize', throttledCheckElements, true); addEventListener('pageshow', function (e) { if (e.persisted) { var loadingElements = document.querySelectorAll('.' + lazySizesCfg.loadingClass); if (loadingElements.length && loadingElements.forEach) { requestAnimationFrame(function () { loadingElements.forEach( function (img) { if (img.complete) { unveilElement(img); } }); }); } } }); if(window.MutationObserver){ new MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} ); } else { docElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true); docElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true); setInterval(throttledCheckElements, 999); } addEventListener('hashchange', throttledCheckElements, true); //, 'fullscreenchange' ['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend'].forEach(function(name){ document[_addEventListener](name, throttledCheckElements, true); }); if((/d$|^c/.test(document.readyState))){ onload(); } else { addEventListener('load', onload); document[_addEventListener]('DOMContentLoaded', throttledCheckElements); setTimeout(onload, 20000); } if(lazysizes.elements.length){ checkElements(); rAF._lsFlush(); } else { throttledCheckElements(); } }, checkElems: throttledCheckElements, unveil: unveilElement, _aLSL: altLoadmodeScrollListner, }; })(); var autoSizer = (function(){ var autosizesElems; var sizeElement = rAFIt(function(elem, parent, event, width){ var sources, i, len; elem._lazysizesWidth = width; width += 'px'; elem.setAttribute('sizes', width); if(regPicture.test(parent.nodeName || '')){ sources = parent.getElementsByTagName('source'); for(i = 0, len = sources.length; i < len; i++){ sources[i].setAttribute('sizes', width); } } if(!event.detail.dataAttr){ updatePolyfill(elem, event.detail); } }); /** * * @param elem {Element} * @param dataAttr * @param [width] { number } */ var getSizeElement = function (elem, dataAttr, width){ var event; var parent = elem.parentNode; if(parent){ width = getWidth(elem, parent, width); event = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr}); if(!event.defaultPrevented){ width = event.detail.width; if(width && width !== elem._lazysizesWidth){ sizeElement(elem, parent, event, width); } } } }; var updateElementsSizes = function(){ var i; var len = autosizesElems.length; if(len){ i = 0; for(; i < len; i++){ getSizeElement(autosizesElems[i]); } } }; var debouncedUpdateElementsSizes = debounce(updateElementsSizes); return { _: function(){ autosizesElems = document.getElementsByClassName(lazySizesCfg.autosizesClass); addEventListener('resize', debouncedUpdateElementsSizes); }, checkElems: debouncedUpdateElementsSizes, updateElem: getSizeElement }; })(); var init = function(){ if(!init.i && document.getElementsByClassName){ init.i = true; autoSizer._(); loader._(); } }; setTimeout(function(){ if(lazySizesCfg.init){ init(); } }); lazysizes = { /** * @type { LazySizesConfigPartial } */ cfg: lazySizesCfg, autoSizer: autoSizer, loader: loader, init: init, uP: updatePolyfill, aC: addClass, rC: removeClass, hC: hasClass, fire: triggerEvent, gW: getWidth, rAF: rAF, }; return lazysizes; } )); </script> <script type="text/javascript">/* Highlight.js 10.3.2 (31e1fc40) License: BSD-3-Clause Copyright (c) 2006-2020, Ivan Sagalaev */ var hljs=function(){"use strict";function e(n){Object.freeze(n) ;var t="function"==typeof n ;return Object.getOwnPropertyNames(n).forEach((function(r){ !Object.hasOwnProperty.call(n,r)||null===n[r]||"object"!=typeof n[r]&&"function"!=typeof n[r]||t&&("caller"===r||"callee"===r||"arguments"===r)||Object.isFrozen(n[r])||e(n[r]) })),n}class n{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data} ignoreMatch(){this.ignore=!0}}function t(e){ return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;") }function r(e,...n){var t={};for(const n in e)t[n]=e[n] ;return n.forEach((function(e){for(const n in e)t[n]=e[n]})),t}function a(e){ return e.nodeName.toLowerCase()}var i=Object.freeze({__proto__:null, escapeHTML:t,inherit:r,nodeStream:function(e){var n=[];return function e(t,r){ for(var i=t.firstChild;i;i=i.nextSibling)3===i.nodeType?r+=i.nodeValue.length:1===i.nodeType&&(n.push({ event:"start",offset:r,node:i}),r=e(i,r),a(i).match(/br|hr|img|input/)||n.push({ event:"stop",offset:r,node:i}));return r}(e,0),n},mergeStreams:function(e,n,r){ var i=0,s="",o=[];function l(){ return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset<n[0].offset?e:n:"start"===n[0].event?e:n:e.length?e:n }function c(e){s+="<"+a(e)+[].map.call(e.attributes,(function(e){ return" "+e.nodeName+'="'+t(e.value)+'"'})).join("")+">"}function u(e){ s+="</"+a(e)+">"}function g(e){("start"===e.event?c:u)(e.node)} for(;e.length||n.length;){var d=l() ;if(s+=t(r.substring(i,d[0].offset)),i=d[0].offset,d===e){o.reverse().forEach(u) ;do{g(d.splice(0,1)[0]),d=l()}while(d===e&&d.length&&d[0].offset===i) ;o.reverse().forEach(c) }else"start"===d[0].event?o.push(d[0].node):o.pop(),g(d.splice(0,1)[0])} return s+t(r.substr(i))}});const s=e=>!!e.kind;class o{constructor(e,n){ this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){ this.buffer+=t(e)}openNode(e){if(!s(e))return;let n=e.kind ;e.sublanguage||(n=`${this.classPrefix}${n}`),this.span(n)}closeNode(e){ s(e)&&(this.buffer+="</span>")}value(){return this.buffer}span(e){ this.buffer+=`<span class="${e}">`}}class l{constructor(){this.rootNode={ children:[]},this.stack=[this.rootNode]}get top(){ return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){ this.top.children.push(e)}openNode(e){const n={kind:e,children:[]} ;this.add(n),this.stack.push(n)}closeNode(){ if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){ for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)} walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){ return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n), n.children.forEach((n=>this._walk(e,n))),e.closeNode(n)),e}static _collapse(e){ "string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{ l._collapse(e)})))}}class c extends l{constructor(e){super(),this.options=e} addKeyword(e,n){""!==e&&(this.openNode(n),this.addText(e),this.closeNode())} addText(e){""!==e&&this.add(e)}addSublanguage(e,n){const t=e.root ;t.kind=n,t.sublanguage=!0,this.add(t)}toHTML(){ return new o(this,this.options).value()}finalize(){return!0}}function u(e){ return e?"string"==typeof e?e:e.source:null} const g="[a-zA-Z]\\w*",d="[a-zA-Z_]\\w*",h="\\b\\d+(\\.\\d+)?",f="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",p="\\b(0b[01]+)",m={ begin:"\\\\[\\s\\S]",relevance:0},b={className:"string",begin:"'",end:"'", illegal:"\\n",contains:[m]},v={className:"string",begin:'"',end:'"', illegal:"\\n",contains:[m]},x={ begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ },E=function(e,n,t={}){var a=r({className:"comment",begin:e,end:n,contains:[] },t);return a.contains.push(x),a.contains.push({className:"doctag", begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0}),a },_=E("//","$"),w=E("/\\*","\\*/"),N=E("#","$");var y=Object.freeze({ __proto__:null,IDENT_RE:g,UNDERSCORE_IDENT_RE:d,NUMBER_RE:h,C_NUMBER_RE:f, BINARY_NUMBER_RE:p, RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", SHEBANG:(e={})=>{const n=/^#![ ]*\//;return e.binary&&(e.begin=function(...e){ return e.map((e=>u(e))).join("")}(n,/.*\b/,e.binary,/\b.*/)),r({ className:"meta",begin:n,end:/$/,relevance:0,"on:begin":(e,n)=>{ 0!==e.index&&n.ignoreMatch()}},e)},BACKSLASH_ESCAPE:m,APOS_STRING_MODE:b, QUOTE_STRING_MODE:v,PHRASAL_WORDS_MODE:x,COMMENT:E,C_LINE_COMMENT_MODE:_, C_BLOCK_COMMENT_MODE:w,HASH_COMMENT_MODE:N,NUMBER_MODE:{className:"number", begin:h,relevance:0},C_NUMBER_MODE:{className:"number",begin:f,relevance:0}, BINARY_NUMBER_MODE:{className:"number",begin:p,relevance:0},CSS_NUMBER_MODE:{ className:"number", begin:h+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", relevance:0},REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp", begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[m,{begin:/\[/,end:/\]/, relevance:0,contains:[m]}]}]},TITLE_MODE:{className:"title",begin:g,relevance:0 },UNDERSCORE_TITLE_MODE:{className:"title",begin:d,relevance:0},METHOD_GUARD:{ begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:function(e){ return Object.assign(e,{"on:begin":(e,n)=>{n.data._beginMatch=e[1]}, "on:end":(e,n)=>{n.data._beginMatch!==e[1]&&n.ignoreMatch()}})} }),R="of and for in not or if then".split(" ");function k(e){function n(n,t){ return RegExp(u(n),"m"+(e.case_insensitive?"i":"")+(t?"g":""))}class t{ constructor(){ this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0} addRule(e,n){ n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]), this.matchAt+=function(e){return RegExp(e.toString()+"|").exec("").length-1 }(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null) ;const e=this.regexes.map((e=>e[1]));this.matcherRe=n(function(e,n="|"){ for(var t=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,r=0,a="",i=0;i<e.length;i++){ var s=r+=1,o=u(e[i]);for(i>0&&(a+=n),a+="(";o.length>0;){var l=t.exec(o) ;if(null==l){a+=o;break} a+=o.substring(0,l.index),o=o.substring(l.index+l[0].length), "\\"===l[0][0]&&l[1]?a+="\\"+(Number(l[1])+s):(a+=l[0],"("===l[0]&&r++)}a+=")"} return a}(e),!0),this.lastIndex=0}exec(e){ this.matcherRe.lastIndex=this.lastIndex;const n=this.matcherRe.exec(e) ;if(!n)return null ;const t=n.findIndex(((e,n)=>n>0&&void 0!==e)),r=this.matchIndexes[t] ;return n.splice(0,t),Object.assign(n,r)}}class a{constructor(){ this.rules=[],this.multiRegexes=[], this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){ if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t ;return this.rules.slice(e).forEach((([e,t])=>n.addRule(e,t))), n.compile(),this.multiRegexes[e]=n,n}resumingScanAtSamePosition(){ return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,n){ this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){ const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex ;let t=n.exec(e) ;if(this.resumingScanAtSamePosition())if(t&&t.index===this.lastIndex);else{ const n=this.getMatcher(0);n.lastIndex=this.lastIndex+1,t=n.exec(e)} return t&&(this.regexIndex+=t.position+1, this.regexIndex===this.count&&this.considerAll()),t}}function i(e,n){ const t=e.input[e.index-1],r=e.input[e.index+e[0].length] ;"."!==t&&"."!==r||n.ignoreMatch()} if(e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.") ;return function t(s,o){const l=s;if(s.compiled)return l ;s.compiled=!0,s.__beforeBegin=null,s.keywords=s.keywords||s.beginKeywords ;let c=null ;if("object"==typeof s.keywords&&(c=s.keywords.$pattern,delete s.keywords.$pattern), s.keywords&&(s.keywords=function(e,n){var t={} ;return"string"==typeof e?r("keyword",e):Object.keys(e).forEach((function(n){ r(n,e[n])})),t;function r(e,r){ n&&(r=r.toLowerCase()),r.split(" ").forEach((function(n){var r=n.split("|") ;t[r[0]]=[e,O(r[0],r[1])]}))} }(s.keywords,e.case_insensitive)),s.lexemes&&c)throw Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ") ;return l.keywordPatternRe=n(s.lexemes||c||/\w+/,!0), o&&(s.beginKeywords&&(s.begin="\\b("+s.beginKeywords.split(" ").join("|")+")(?=\\b|\\s)", s.__beforeBegin=i), s.begin||(s.begin=/\B|\b/),l.beginRe=n(s.begin),s.endSameAsBegin&&(s.end=s.begin), s.end||s.endsWithParent||(s.end=/\B|\b/), s.end&&(l.endRe=n(s.end)),l.terminator_end=u(s.end)||"", s.endsWithParent&&o.terminator_end&&(l.terminator_end+=(s.end?"|":"")+o.terminator_end)), s.illegal&&(l.illegalRe=n(s.illegal)), void 0===s.relevance&&(s.relevance=1),s.contains||(s.contains=[]), s.contains=[].concat(...s.contains.map((function(e){return function(e){ return e.variants&&!e.cached_variants&&(e.cached_variants=e.variants.map((function(n){ return r(e,{variants:null},n)}))),e.cached_variants?e.cached_variants:M(e)?r(e,{ starts:e.starts?r(e.starts):null}):Object.isFrozen(e)?r(e):e}("self"===e?s:e) }))),s.contains.forEach((function(e){t(e,l) })),s.starts&&t(s.starts,o),l.matcher=function(e){const n=new a ;return e.contains.forEach((e=>n.addRule(e.begin,{rule:e,type:"begin" }))),e.terminator_end&&n.addRule(e.terminator_end,{type:"end" }),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n}(l),l}(e)}function M(e){ return!!e&&(e.endsWithParent||M(e.starts))}function O(e,n){ return n?Number(n):function(e){return R.includes(e.toLowerCase())}(e)?0:1} const L={props:["language","code","autodetect"],data:function(){return{ detectedLanguage:"",unknownLanguage:!1}},computed:{className(){ return this.unknownLanguage?"":"hljs "+this.detectedLanguage},highlighted(){ if(!this.autoDetect&&!hljs.getLanguage(this.language))return console.warn(`The language "${this.language}" you specified could not be found.`), this.unknownLanguage=!0,t(this.code);let e ;return this.autoDetect?(e=hljs.highlightAuto(this.code), this.detectedLanguage=e.language):(e=hljs.highlight(this.language,this.code,this.ignoreIllegals), this.detectectLanguage=this.language),e.value},autoDetect(){ return!(this.language&&(e=this.autodetect,!e&&""!==e));var e}, ignoreIllegals:()=>!0},render(e){return e("pre",{},[e("code",{ class:this.className,domProps:{innerHTML:this.highlighted}})])}},j={install(e){ e.component("highlightjs",L)} },I=t,T=r,{nodeStream:S,mergeStreams:A}=i,B=Symbol("nomatch") ;return function(t){ var r=[],a=Object.create(null),i=Object.create(null),s=[],o=!0,l=/(^(<[^>]+>|\t|)+|\n)/gm,u="Could not find the language '{}', did you forget to load/include a language module?" ;const g={disableAutodetect:!0,name:"Plain text",contains:[]};var d={ noHighlightRe:/^(no-?highlight)$/i, languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-", tabReplace:null,useBR:!1,languages:null,__emitter:c};function h(e){ return d.noHighlightRe.test(e)}function f(e,n,t,r){var a={code:n,language:e} ;N("before:highlight",a);var i=a.result?a.result:p(a.language,a.code,t,r) ;return i.code=a.code,N("after:highlight",i),i}function p(e,t,r,i){var s=t ;function l(e,n){var t=_.case_insensitive?n[0].toLowerCase():n[0] ;return Object.prototype.hasOwnProperty.call(e.keywords,t)&&e.keywords[t]} function c(){null!=y.subLanguage?function(){if(""!==O){var e=null ;if("string"==typeof y.subLanguage){ if(!a[y.subLanguage])return void M.addText(O) ;e=p(y.subLanguage,O,!0,R[y.subLanguage]),R[y.subLanguage]=e.top }else e=m(O,y.subLanguage.length?y.subLanguage:null) ;y.relevance>0&&(L+=e.relevance),M.addSublanguage(e.emitter,e.language)} }():function(){if(!y.keywords)return void M.addText(O);let e=0 ;y.keywordPatternRe.lastIndex=0;let n=y.keywordPatternRe.exec(O),t="";for(;n;){ t+=O.substring(e,n.index);const r=l(y,n);if(r){const[e,a]=r ;M.addText(t),t="",L+=a,M.addKeyword(n[0],e)}else t+=n[0] ;e=y.keywordPatternRe.lastIndex,n=y.keywordPatternRe.exec(O)} t+=O.substr(e),M.addText(t)}(),O=""}function g(e){ return e.className&&M.openNode(e.className),y=Object.create(e,{parent:{value:y} })}function h(e,t,r){let a=function(e,n){var t=e&&e.exec(n) ;return t&&0===t.index}(e.endRe,r);if(a){if(e["on:end"]){const r=new n(e) ;e["on:end"](t,r),r.ignore&&(a=!1)}if(a){for(;e.endsParent&&e.parent;)e=e.parent ;return e}}if(e.endsWithParent)return h(e.parent,t,r)}function f(e){ return 0===y.matcher.regexIndex?(O+=e[0],1):(S=!0,0)}function b(e){ var n=e[0],t=s.substr(e.index),r=h(y,e,t);if(!r)return B;var a=y ;a.skip?O+=n:(a.returnEnd||a.excludeEnd||(O+=n),c(),a.excludeEnd&&(O=n));do{ y.className&&M.closeNode(),y.skip||y.subLanguage||(L+=y.relevance),y=y.parent }while(y!==r.parent) ;return r.starts&&(r.endSameAsBegin&&(r.starts.endRe=r.endRe), g(r.starts)),a.returnEnd?0:n.length}var v={};function x(t,a){var i=a&&a[0] ;if(O+=t,null==i)return c(),0 ;if("begin"===v.type&&"end"===a.type&&v.index===a.index&&""===i){ if(O+=s.slice(a.index,a.index+1),!o){const n=Error("0 width match regex") ;throw n.languageName=e,n.badRule=v.rule,n}return 1} if(v=a,"begin"===a.type)return function(e){var t=e[0],r=e.rule ;const a=new n(r),i=[r.__beforeBegin,r["on:begin"]] ;for(const n of i)if(n&&(n(e,a),a.ignore))return f(t) ;return r&&r.endSameAsBegin&&(r.endRe=RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")), r.skip?O+=t:(r.excludeBegin&&(O+=t), c(),r.returnBegin||r.excludeBegin||(O=t)),g(r),r.returnBegin?0:t.length}(a) ;if("illegal"===a.type&&!r){ const e=Error('Illegal lexeme "'+i+'" for mode "'+(y.className||"<unnamed>")+'"') ;throw e.mode=y,e}if("end"===a.type){var l=b(a);if(l!==B)return l} if("illegal"===a.type&&""===i)return 1 ;if(T>1e5&&T>3*a.index)throw Error("potential infinite loop, way more iterations than matches") ;return O+=i,i.length}var _=E(e) ;if(!_)throw console.error(u.replace("{}",e)),Error('Unknown language: "'+e+'"') ;var w=k(_),N="",y=i||w,R={},M=new d.__emitter(d);!function(){ for(var e=[],n=y;n!==_;n=n.parent)n.className&&e.unshift(n.className) ;e.forEach((e=>M.openNode(e)))}();var O="",L=0,j=0,T=0,S=!1;try{ for(y.matcher.considerAll();;){ T++,S?S=!1:y.matcher.considerAll(),y.matcher.lastIndex=j ;const e=y.matcher.exec(s);if(!e)break;const n=x(s.substring(j,e.index),e) ;j=e.index+n}return x(s.substr(j)),M.closeAllNodes(),M.finalize(),N=M.toHTML(),{ relevance:L,value:N,language:e,illegal:!1,emitter:M,top:y}}catch(n){ if(n.message&&n.message.includes("Illegal"))return{illegal:!0,illegalBy:{ msg:n.message,context:s.slice(j-100,j+100),mode:n.mode},sofar:N,relevance:0, value:I(s),emitter:M};if(o)return{illegal:!1,relevance:0,value:I(s),emitter:M, language:e,top:y,errorRaised:n};throw n}}function m(e,n){ n=n||d.languages||Object.keys(a);var t=function(e){const n={relevance:0, emitter:new d.__emitter(d),value:I(e),illegal:!1,top:g} ;return n.emitter.addText(e),n}(e),r=t ;return n.filter(E).filter(w).forEach((function(n){var a=p(n,e,!1);a.language=n, a.relevance>r.relevance&&(r=a),a.relevance>t.relevance&&(r=t,t=a) })),r.language&&(t.second_best=r),t}function b(e){ return d.tabReplace||d.useBR?e.replace(l,(e=>"\n"===e?d.useBR?"<br>":e:d.tabReplace?e.replace(/\t/g,d.tabReplace):e)):e }function v(e){let n=null;const t=function(e){var n=e.className+" " ;n+=e.parentNode?e.parentNode.className:"";const t=d.languageDetectRe.exec(n) ;if(t){var r=E(t[1]) ;return r||(console.warn(u.replace("{}",t[1])),console.warn("Falling back to no-highlight mode for this block.",e)), r?t[1]:"no-highlight"}return n.split(/\s+/).find((e=>h(e)||E(e)))}(e) ;if(h(t))return;N("before:highlightBlock",{block:e,language:t }),d.useBR?(n=document.createElement("div"), n.innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[ /]*>/g,"\n")):n=e ;const r=n.textContent,a=t?f(t,r,!0):m(r),s=S(n);if(s.length){ const e=document.createElement("div");e.innerHTML=a.value,a.value=A(s,S(e),r)} a.value=b(a.value),N("after:highlightBlock",{block:e,result:a }),e.innerHTML=a.value,e.className=function(e,n,t){var r=n?i[n]:t,a=[e.trim()] ;return e.match(/\bhljs\b/)||a.push("hljs"), e.includes(r)||a.push(r),a.join(" ").trim() }(e.className,t,a.language),e.result={language:a.language,re:a.relevance, relavance:a.relevance},a.second_best&&(e.second_best={ language:a.second_best.language,re:a.second_best.relevance, relavance:a.second_best.relevance})}const x=()=>{if(!x.called){x.called=!0 ;var e=document.querySelectorAll("pre code");r.forEach.call(e,v)}} ;function E(e){return e=(e||"").toLowerCase(),a[e]||a[i[e]]} function _(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach((e=>{i[e]=n }))}function w(e){var n=E(e);return n&&!n.disableAutodetect}function N(e,n){ var t=e;s.forEach((function(e){e[t]&&e[t](n)}))}Object.assign(t,{highlight:f, highlightAuto:m,fixMarkup:function(e){ return console.warn("fixMarkup is deprecated and will be removed entirely in v11.0"), console.warn("Please see https://github.com/highlightjs/highlight.js/issues/2534"), b(e)},highlightBlock:v,configure:function(e){ e.useBR&&(console.warn("'useBR' option is deprecated and will be removed entirely in v11.0"), console.warn("Please see https://github.com/highlightjs/highlight.js/issues/2559")), d=T(d,e)},initHighlighting:x,initHighlightingOnLoad:function(){ window.addEventListener("DOMContentLoaded",x,!1)}, registerLanguage:function(e,n){var r=null;try{r=n(t)}catch(n){ if(console.error("Language definition for '{}' could not be registered.".replace("{}",e)), !o)throw n;console.error(n),r=g} r.name||(r.name=e),a[e]=r,r.rawDefinition=n.bind(null,t), r.aliases&&_(r.aliases,{languageName:e})},listLanguages:function(){ return Object.keys(a)},getLanguage:E,registerAliases:_, requireLanguage:function(e){var n=E(e);if(n)return n ;throw Error("The '{}' language is required, but not loaded.".replace("{}",e))}, autoDetection:w,inherit:T,addPlugin:function(e){s.push(e)},vuePlugin:j }),t.debugMode=function(){o=!1},t.safeMode=function(){o=!0 },t.versionString="10.3.2";for(const n in y)"object"==typeof y[n]&&e(y[n]) ;return Object.assign(t,y),t}({})}() ;"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);hljs.registerLanguage("javascript",function(){"use strict" ;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],s=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]) ;function r(e){return i("(?=",e,")")}function t(e){return i("(",e,")?")} function i(...e){return e.map((e=>{ return(n=e)?"string"==typeof n?n:n.source:null;var n})).join("")} return function(c){const o=e,l={begin:/<[A-Za-z0-9\\._:-]+/, end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{ const a=e[0].length+e.index,s=e.input[a];"<"!==s?">"===s&&(((e,{after:n})=>{ const a=e[0].replace("<","</");return-1!==e.input.indexOf(a,n)})(e,{after:a })||n.ignoreMatch()):n.ignoreMatch()}},g={$pattern:e,keyword:n.join(" "), literal:a.join(" "),built_in:s.join(" ") },d=(e,n)=>`\\b0[${e}][${n}]([${n}_]*[${n}])?n?`,b=/[1-9]([0-9_]*\d)?/,E=/\d([0-9_]*\d)?/,u=i(/[eE][+-]?/,E),_={ className:"number",variants:[{begin:d("bB","01")},{begin:d("oO","0-7")},{ begin:d("xX","0-9a-fA-F")},{begin:i(/\b/,b,"n")},{begin:i(/(\b0)?\./,E,t(u))},{ begin:i(/\b/,b,t(i(/\./,t(E))),t(u))},{begin:/\b0[\.n]?/}],relevance:0},m={ className:"subst",begin:"\\$\\{",end:"\\}",keywords:g,contains:[]},N={ begin:"html`",end:"",starts:{end:"`",returnEnd:!1, contains:[c.BACKSLASH_ESCAPE,m],subLanguage:"xml"}},y={begin:"css`",end:"", starts:{end:"`",returnEnd:!1,contains:[c.BACKSLASH_ESCAPE,m],subLanguage:"css"} },f={className:"string",begin:"`",end:"`",contains:[c.BACKSLASH_ESCAPE,m]},A={ className:"comment",variants:[c.COMMENT("/\\*\\*","\\*/",{relevance:0, contains:[{className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type", begin:"\\{",end:"\\}",relevance:0},{className:"variable", begin:o+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/, relevance:0}]}]}),c.C_BLOCK_COMMENT_MODE,c.C_LINE_COMMENT_MODE] },p=[c.APOS_STRING_MODE,c.QUOTE_STRING_MODE,N,y,f,_,c.REGEXP_MODE] ;m.contains=p.concat({begin:/{/,end:/}/,keywords:g,contains:["self"].concat(p)}) ;const O=[].concat(A,m.contains),T=O.concat([{begin:/\(/,end:/\)/,keywords:g, contains:["self"].concat(O)}]),R={className:"params",begin:/\(/,end:/\)/, excludeBegin:!0,excludeEnd:!0,keywords:g,contains:T};return{name:"Javascript", aliases:["js","jsx","mjs","cjs"],keywords:g,exports:{PARAMS_CONTAINS:T}, illegal:/#(?![$_A-z])/,contains:[c.SHEBANG({label:"shebang",binary:"node", relevance:5}),{label:"use_strict",className:"meta",relevance:10, begin:/^\s*['"]use (strict|asm)['"]/ },c.APOS_STRING_MODE,c.QUOTE_STRING_MODE,N,y,f,A,_,{ begin:i(/[{,\n]\s*/,r(i(/(\/\/.*$)*/,/(\/\*(.|\n)*\*\/)*/,/\s*/,o+"\\s*:"))), relevance:0,contains:[{className:"attr",begin:o+r("\\s*:"),relevance:0}]},{ begin:"("+c.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*", keywords:"return throw case",contains:[A,c.REGEXP_MODE,{className:"function", begin:"(\\([^()]*(\\([^()]*(\\([^()]*\\))*[^()]*\\))*[^()]*\\)|"+c.UNDERSCORE_IDENT_RE+")\\s*=>", returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{ begin:c.UNDERSCORE_IDENT_RE},{className:null,begin:/\(\s*\)/,skip:!0},{ begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:g,contains:T}]}]},{ begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{variants:[{ begin:"<>",end:"</>"},{begin:l.begin,"on:begin":l.isTrulyOpeningTag,end:l.end}], subLanguage:"xml",contains:[{begin:l.begin,end:l.end,skip:!0,contains:["self"]}] }],relevance:0},{className:"function",beginKeywords:"function",end:/[{;]/, excludeEnd:!0,keywords:g,contains:["self",c.inherit(c.TITLE_MODE,{begin:o}),R], illegal:/%/},{className:"function", begin:c.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\))*[^()]*\\))*[^()]*\\)\\s*{", returnBegin:!0,contains:[R,c.inherit(c.TITLE_MODE,{begin:o})]},{variants:[{ begin:"\\."+o},{begin:"\\$"+o}],relevance:0},{className:"class", beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{ beginKeywords:"extends"},c.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/, end:/[\{;]/,excludeEnd:!0,contains:[c.inherit(c.TITLE_MODE,{begin:o}),"self",R] },{begin:"(get|set)\\s+(?="+o+"\\()",end:/{/,keywords:"get set", contains:[c.inherit(c.TITLE_MODE,{begin:o}),{begin:/\(\)/},R]},{begin:/\$[(.]/}] }}}());hljs.registerLanguage("xml",function(){"use strict";return function(e){var n={ className:"symbol",begin:"&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;"},a={begin:"\\s", contains:[{className:"meta-keyword",begin:"#?[a-z_][a-z1-9_-]+",illegal:"\\n"}] },s=e.inherit(a,{begin:"\\(",end:"\\)"}),t=e.inherit(e.APOS_STRING_MODE,{ className:"meta-string"}),i=e.inherit(e.QUOTE_STRING_MODE,{ className:"meta-string"}),c={endsWithParent:!0,illegal:/</,relevance:0, contains:[{className:"attr",begin:"[A-Za-z0-9\\._:-]+",relevance:0},{ begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{ begin:/"/,end:/"/,contains:[n]},{begin:/'/,end:/'/,contains:[n]},{ begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML", aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"], case_insensitive:!0,contains:[{className:"meta",begin:"<![a-z]",end:">", relevance:10,contains:[a,i,t,s,{begin:"\\[",end:"\\]",contains:[{ className:"meta",begin:"<![a-z]",end:">",contains:[a,s,i,t]}]}] },e.COMMENT("\x3c!--","--\x3e",{relevance:10}),{begin:"<\\!\\[CDATA\\[", end:"\\]\\]>",relevance:10},n,{className:"meta",begin:/<\?xml/,end:/\?>/, relevance:10},{className:"tag",begin:"<style(?=\\s|>)",end:">",keywords:{ name:"style"},contains:[c],starts:{end:"</style>",returnEnd:!0, subLanguage:["css","xml"]}},{className:"tag",begin:"<script(?=\\s|>)",end:">", keywords:{name:"script"},contains:[c],starts:{end:"<\/script>",returnEnd:!0, subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:"</?", end:"/?>",contains:[{className:"name",begin:/[^\/><\s]+/,relevance:0},c]}]}} }());hljs.registerLanguage("css",function(){"use strict";return function(e){var n={ begin:/(?:[A-Z\_\.\-]+|--[a-zA-Z0-9_-]+)\s*:/,returnBegin:!0,end:";", endsWithParent:!0,contains:[{className:"attribute",begin:/\S/,end:":", excludeEnd:!0,starts:{endsWithParent:!0,excludeEnd:!0,contains:[{ begin:/[\w-]+\(/,returnBegin:!0,contains:[{className:"built_in",begin:/[\w-]+/ },{begin:/\(/,end:/\)/, contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE]}] },e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{ className:"number",begin:"#[0-9A-Fa-f]+"},{className:"meta",begin:"!important"}] }}]};return{name:"CSS",case_insensitive:!0,illegal:/[=\/|'\$]/, contains:[e.C_BLOCK_COMMENT_MODE,{className:"selector-id", begin:/#[A-Za-z0-9_-]+/},{className:"selector-class",begin:/\.[A-Za-z0-9_-]+/},{ className:"selector-attr",begin:/\[/,end:/\]/,illegal:"$", contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},{className:"selector-pseudo", begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"@(page|font-face)", lexemes:"@[a-z-]+",keywords:"@page @font-face"},{begin:"@",end:"[{;]", illegal:/:/,returnBegin:!0,contains:[{className:"keyword", begin:/@\-?\w[\w]*(\-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0, relevance:0,keywords:"and or not only",contains:[{begin:/[a-z-]+:/, className:"attribute"},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE] }]},{className:"selector-tag",begin:"[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},{ begin:"{",end:"}",illegal:/\S/,contains:[e.C_BLOCK_COMMENT_MODE,n]}]}}}());hljs.registerLanguage("scss",function(){"use strict";return function(e){ var t="@[a-z-]+",i={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b" },r={className:"number",begin:"#[0-9A-Fa-f]+"} ;return e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE, e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{name:"SCSS",case_insensitive:!0, illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{ className:"selector-id",begin:"\\#[A-Za-z0-9_-]+",relevance:0},{ className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},{ className:"selector-attr",begin:"\\[",end:"\\]",illegal:"$"},{ className:"selector-tag", begin:"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b", relevance:0},{className:"selector-pseudo", begin:":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)" },{className:"selector-pseudo", begin:"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)" },i,{className:"attribute", begin:"\\b(src|z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b", illegal:"[^\\s]"},{ begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b" },{begin:":",end:";", contains:[i,r,e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{ className:"meta",begin:"!important"}]},{begin:"@(page|font-face)",lexemes:t, keywords:"@page @font-face"},{begin:"@",end:"[{;]",returnBegin:!0, keywords:"and or not only",contains:[{begin:t,className:"keyword" },i,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,r,e.CSS_NUMBER_MODE]}]}}}()); </script> <script type="text/javascript">(function(){ // hovering over sort navigation var sortNav = $('.sort-nav'); $(sortNav).on('mouseover',function(e){ e.preventDefault(); $(this).addClass('active'); }).on('mouseleave',function(e){ e.preventDefault(); $(this).removeClass('active'); }); // add target="_blank" to all outgoing links $('.post-content a').each(function() { var a = new RegExp('/' + window.location.host + '/'); if (!a.test(this.href)) { $(this).attr("target","_blank"); } }); // Marketo Forms if(typeof MktoForms2 != "undefined" ){ // Call DTP to pre-fill form $.getScript('https://recurly.com/external/js/teknkl-simpledto-1.0.4.js', function() { var DTO = new SimpleDTO({ domain: "recurly.com", dataSrc: "https://go.recurly.com/data-transfer-page.html", debug: true, mode: "receive", cb: function(instance){ var mktoFields = DTO.getGlobal()["mktoPreFillFields"]; DTO.cleanup(); MktoForms2.whenReady(function(form) { form.setValuesCoerced(mktoFields); // Blog subscribe only: remove label if there's an email prefilled already var blogSubscribeExists = $('.blog__subscribe-wrapper input[name="Email"]').length; if(blogSubscribeExists) { var blogInput = $('.blog__subscribe-wrapper input[name="Email"]')[0]; if(blogInput.value){ var label = $('.blog__subscribe-wrapper input[name="Email"]').prevAll('label'); label.addClass('active'); } } }); } }); }); } }()); </script> <script type="text/javascript">(function(){ // sticky sides let scrollV = $(this).scrollTop(); let winW = $(window).width(); let postBody = $('.post-body'); let postBodyH = postBody.height(); let postMeta = $('.blog-post .post-meta'); let postMetaH = postMeta.height(); let postSubscribe = $('.blog__subscribe-input'); let postSubscribeH = postSubscribe.height(); $(window).on('load scroll', function(){ let scrollV = $(this).scrollTop(); if(winW > 991){ //only for desktop // for post meta info side if(scrollV > (postBodyH - postMetaH) ) { //blog reaches the bottom section postMeta.css({ 'top' : (postBodyH - postMetaH) - 50 }).removeClass('fixed'); } else if(scrollV >= 50 && scrollV <= (postBodyH - postMetaH) ) { // start of sticky postMeta.addClass('fixed'); postMeta.removeAttr('style'); } else if(scrollV < 50) { // remove sticky if at the top postMeta.removeClass('fixed'); } // for blog subscribe side if(scrollV > (postBodyH - postSubscribeH) ) { //blog reaches the bottom section postSubscribe.css({ 'top' : (postBodyH - postSubscribeH) - 50 }).removeClass('fixed'); } else if(scrollV >= 50 && scrollV <= (postBodyH - postSubscribeH) ) { // start of sticky postSubscribe.addClass('fixed'); postSubscribe.removeAttr('style'); } else if(scrollV < 50) { // remove sticky if at the top postSubscribe.removeClass('fixed'); } } }); const backToTop = $('.blog__back-to-top'); backToTop.on('click', function(){ $("html, body").animate({scrollTop: 0}, 500); }); })(); </script> <script type="text/javascript">$(window).on('load',function(){ $animation = $('.animation'), canAnimate = function(){ return !$('html').hasClass('no-cssanimations'); }, playAnimation = function() { if (canAnimate() == true) { $animation.each(function() { var t = this; if($(t).hasClass('short')){ $(t).waypoint({ offset: 350, handler: function($t) { $(t).addClass('play'); } }); }else if($(t).hasClass('shorter')){ $(t).waypoint({ offset: '20%', handler: function($t) { $(t).addClass('play'); } }); }else if($(t).hasClass('tall')){ $(t).waypoint({ offset: '80%', handler: function($t) { $(t).addClass('play'); } }); }else{ $(t).waypoint({ offset: 500, handler: function($t) { $(t).addClass('play'); } }); } }); }; }; if($animation.length > 0){ playAnimation(); }; }); </script> <script type="text/javascript">$(document).ready(function(){ var headerEl = $('.header-wrap'); var navigationItems = headerEl.find('.navigation__item'); var leaveTime = 300; var triggerNavTimeout = 10; var headerHoverTimer; var scrollV; var userHasEnteredSubnav = false; $(window).on('scroll', function(){ scrollV = $(this).scrollTop(); }); var onHeaderEnter = function(){ clearTimeout(headerHoverTimer); headerEl.addClass('header-wrap--fixed'); }; var onHeaderLeave = function(){ headerHoverTimer = setTimeout(function(){ headerEl.removeClass('header-wrap--fixed'); }, leaveTime); }; var onItemEnter = function(){ clearTimeout(headerHoverTimer); headerEl.addClass('header--hover'); }; var onItemLeave = function(){ headerHoverTimer = setTimeout(function(){ headerEl.removeClass('header--hover'); }, leaveTime); }; var clearAllSubs = function(){ headerEl.find('.navigation__item--hover').removeClass('navigation__item--hover'); headerEl.find('.hover').removeClass('hover'); }; headerEl.on('mouseenter focus', function(){ onHeaderEnter(); }); headerEl.on('keyup', function(e) { if (e.which == 9) { onHeaderEnter(); } }); headerEl.on('mouseleave', function(){ scrollV == 0 ? onHeaderLeave() : null; clearAllSubs(); }); navigationItems.each(function(){ var navigationItemHoverTimer; var el = $(this); var hasSub = $(this).hasClass('subnav'); var navSubnav = $(this).data('subnav'); // name of the subnav var hasSubnavItem = $(this).find('.subnav-item__column').length; var navSubObserver = null; var navEnterTimeout; var navigationLink = $('.navigation a'); var hideSubNav = function() { userHasEnteredSubnav = false; if(navSubnav !== 'undefined'){ navItem= $('.subnav-item__column--'+navSubnav).addClass('hide'); } if($(".subnav-item__column:hover, .subnav-item__column:focus").length === 0) { // if not hovering over subnav el.removeClass('navigation__item--hover'); } onItemLeave(); }; hideSubNav(); if(hasSub){ el.on('mouseenter focus keyup', function(){ clearTimeout(navigationItemHoverTimer); navSubObserver = el; clearTimeout(navEnterTimeout); // user has entered subnav if(el.hasClass('header-nav')) { userHasEnteredSubnav = true; // check to see if user ever entered subnav. } navEnterTimeout = setTimeout(function(){ if (navSubObserver === el) { if($(".subnav-item__column:hover, .subnav-item__column:focus").length === 0){ // if not hovering over subnav clearAllSubs(); } el.addClass('navigation__item--hover'); if(hasSub){ $('.subnav-item__column').addClass('hide'); $('.subnav-item__column--'+navSubnav).removeClass('hide'); } onItemEnter(); } }, triggerNavTimeout); // add active class to first subnav item el.find('.subnav-item__nav').removeClass('active'); el.find('.subnav-item__nav').first().addClass('active'); el.find('.subnav-item__secondary').removeClass('active'); el.find('.subnav-item__secondary--1').addClass('active'); }); el.on('mouseleave', function(){ clearTimeout(navEnterTimeout); navSubObserver = null; // User hovered out of main nav, probably into subnav. if(!el.hasClass('header-nav')) { // check to see if user ever entered subnav. setTimeout(function(){ if(!userHasEnteredSubnav) { hideSubNav(); } }, triggerNavTimeout); return; } hideSubNav(); // select only the 1st of the subnav on mouseleave el.find('.subnav-item__secondary').removeClass('active'); el.find('.subnav-item__secondary--1').addClass('active'); }); //close nav when clicking on link navigationLink.on('click',function(){ hideSubNav(); }); } }); $(".subnav-item__column").on('mouseleave', function() { clearAllSubs(); }); var navigationItemNav = $('.subnav-item__left .subnav-item__nav'); navigationItemNav.on('mouseenter focus keyup', function(){ $('.subnav-item__left .subnav-item__nav').removeClass('active'); $(this).addClass('active'); $('.subnav-item__secondary').removeClass('active'); var hoverdata = $(this).data('hover'); $('.subnav-item__secondary--'+hoverdata).addClass('active'); }); // mobile nav const $mobileToggle = $('.action-toggle-mobile-nav'); const $mobileMenu = $('#mobileNav'); const $headerWrap = $('.header-wrap'); $mobileToggle.on('click', function() { var $this = $(this); var promoBannerPadding = $('.promo-banner--padding'); $this.toggleClass('header__toggle--active'); $mobileMenu.toggleClass('mobile-nav__menu--active'); $this.find('.category-item-link').toggleClass('active') $headerWrap.toggleClass('mobile-nav-open'); if(promoBannerPadding.length){ $('.wrap__content').toggleClass('nav-open'); } //fix background nav scrolling issue // if(headerLink.hasClass('header__toggle--active')) { // $('html').css('overflow-y','scroll'); // } else { // $('html').css('overflow-y','hidden'); // } }); function manageActiveItem (element) { var $menuItem = element.closest('.mobile-nav__category-item-link.mobile-nav__accordion-toggle'); var $accordianActive = element.closest('.mobile-nav__accordion'); $('.mobile-nav__category-item-link.mobile-nav__accordion-toggle').not($menuItem).removeClass('active'); $('.mobile-nav__accordion').not($accordianActive).removeClass('active'); element.find('.mobile-nav__accordion').removeClass('active'); element.removeClass('active'); } $('.mobile-nav__accordion-toggle').on('click', function() { var $this = $(this); if($this.hasClass('active')) { manageActiveItem($this) return; } manageActiveItem($this); $this.toggleClass('active'); $this.siblings('.mobile-nav__accordion').toggleClass('active'); }); var lastScrollTop = 0; var winW = $(window).width(); var headerWrap = $('.stickynav .header-wrap'); // on load and scroll $(window).on('load scroll', function() { var scrollPos = $(window).scrollTop(); var heroBanner = $('.home-promo'); var heroBannerHeight = heroBanner.outerHeight(); if(heroBanner.length){ var heroBannerHeight = heroBanner.outerHeight(); } else { var heroBannerHeight = 0; } if (scrollPos > lastScrollTop) { //scrolling down if (scrollPos >= heroBannerHeight || winW <= 992) { headerWrap.addClass('header-wrap--fixed').css({ 'top': '0' }); } else if (scrollPos < heroBannerHeight) { headerWrap.removeClass('header-wrap--fixed').css({ 'top': heroBannerHeight }); } } else { //scrolling up headerWrap.removeClass('header-wrap--fixed').css({ 'top': heroBannerHeight }); } }); }); </script> <script type="text/javascript">(function($, doc, win){ "user strict"; // Array Remove - By John Resig (MIT Licensed) // Array.prototype.remove = function(from, to) { // var rest = this.slice((to || from) + 1 || this.length); // this.length = from < 0 ? this.length + from : from; // return this.push.apply(this, rest); // }; // var parseURL = function(string){ // var url = (string != "" && string != undefined) ? string : location.href; // return url.split('/'); // } // ,isroot = function(array){ // var address = (array !== null) ? array : parseURL(); // address.pop(); // var last = address[address.length-1]; // if(last === 'product' || address[address.length-2] === 'product'){ // return true; // } // return last; // } // ,changeURL = function(loc){ // var urlArray = parseURL(); // if(isroot(urlArray) !== true) // urlArray.pop(urlArray[urlArray.length-1]); // urlArray.push(loc); // return urlArray.join('/'); // } // ,locate = function(loc, title, desc, state){ // if(title == undefined){ // title = 'Product'; // } // title = title + " | Product - Recurly"; // var url = changeURL(loc)+"/"; // ga('send', 'pageview'); // if(!$('html').hasClass('ie9')){ // if(state == 'replaceState'){ // history.replaceState(null, title, url); // }else if(state == 'pushState') { // history.pushState(null, title, url); // } // } // $('title').text(title); // $('meta[property="og:title"], meta[name="twitter:title"]').attr('content', title); // $('meta[property="og:url"], meta[name="twitter:url"]').attr('content', url); // $('meta[name=description], meta[property="og:description"], meta[name="twitter:description"]').attr('content', desc); // $('link[rel=canonical]').attr('href', url); // } // ,scrollPage = function(loc){ // $('html, body').animate({ // scrollTop : $('#'+loc).offset().top - 79 // }, 800); // } // ,pageLoadScroll = function(){ // if($('body').hasClass('product')){ // var loc = isroot(parseURL()); // var cur = parseURL(); // if(cur.length == 5){ // cur.push(""); // } // var curLast = cur[cur.length-1]; // if( loc !== true && // (cur[cur.length-1] == 'product' || // cur[cur.length-1] == 'subscription-management' || // cur[cur.length-1] == 'payment-optimization' || // cur[cur.length-1] == 'billing-and-accounting' || // cur[cur.length-1] == 'security-and-compliance' || // cur[cur.length-1] == 'developer-resources' || // cur[cur.length-1] == 'expert-support' )){ // scrollPage(loc); // }else { // function offsetAnchor() { // var yPos = curLast != "" ? $(curLast).offset().top - 79 : 0; // window.scrollTo(window.scrollX, yPos); // } // $(window).on("hashchange", function () { // offsetAnchor(); // }); // window.setTimeout(function() { // offsetAnchor(); // }, 500); // } // }; // } // ,pageLoad = function(){ // // if($('body').hasClass('product')){ // // var cur = parseURL(); // // if(cur.length == 5 && cur[cur.length-2] != 'product'){ // // cur.push(""); // // } // // if(cur.length == 5){ // // cur.push(""); // // } // // if(cur[cur.length-1] == ""){ // // var newcur = cur.pop(); // // } // // var popped = cur.pop(); // // popped = popped.toString().replace("#",""); // // if( cur[cur.length-1] == 'subscription-management' || // // cur[cur.length-1] == 'payment-optimization' || // // cur[cur.length-1] == 'billing-and-accounting' || // // cur[cur.length-1] == 'security-and-compliance' || // // cur[cur.length-1] == 'developer-resources' || // // cur[cur.length-1] == 'expert-support' ){ // // window.location.replace(cur.join('/')+'/#'+popped); // // }else if(cur[cur.length-1] == 'product' ){ // in subpages // // var urlArray = parseURL(); // // if(urlArray.length == 5 && urlArray[urlArray.length-1] != ''){ // // var joined = urlArray.join('/'); // // window.history.replaceState(null, 'title', joined+'/'); // // } // // } // // }; // } // ,clickHandler = function(e, that){ // var href = $(that).attr('href'), // current = location.href; // href = parseURL(href); // current = parseURL(current); // e.preventDefault(); // if(href[href.length-1] === ""){ // href.pop(); // } // // scroll to page // if( current[current.length-2] === href[href.length-2] && current[current.length-2] !== 'product' ){ // e.preventDefault(); // var loc = href[href.length-1]; // var title = $('#'+loc).find('.heading-label'), // desc = $('#'+loc).attr('data-description'); // locate(loc, $(title[0]).html(), desc, 'pushState'); // scrollPage(loc); // } else if(href[href.length-2] == 'product' || href[href.length-2] == '' ){ // // go to product-sub page // e.preventDefault(); // var hrefpopped2 = href.pop(); // href = href.join('/'); // window.location = href+'/'+hrefpopped2+'/'; // }else if(href[href.length-3] == 'product' ){ // // go to product-sub page id // e.preventDefault(); // var hrefpopped2 = href.pop(); // href = href.join('/'); // window.location = href+'/#'+hrefpopped2; // // return false; // } // }; // pageLoadScroll(); // pageLoad(); // $('.product').find('.data-section:not("#help")').waypoint(function(direction){ // if(this.element.id != null){ // if(direction == 'up'){ // if(this.element.previousElementSibling != null){ // var loc = this.element.previousElementSibling.id; // }else if(this.parentElement != undefined){ // var loc = this.element.parentElement.id; // }else { // var loc = this.element.parentElement.previousElementSibling.id; // } // }else { // var loc = this.element.id; // } // if(loc){ // var desc = $('#'+loc).attr('data-description'), // title = $('#'+loc).find('.heading-label'); // locate(loc, $(title[0]).html(), desc, 'replaceState'); // } // }; // },{ // offset: 80 // }); // $('.navigation__productlist a, .heading-lite a').on('click', function(e){ // clickHandler(e, this); // }); // var winW = $(window).width(); // $(window).on('resize', function(){ // winW = $(window).width(); // }); // show/hide sticky nav var lastScrollTop = 0; var ctaSegment = $('.cta-segment--inline'); if(ctaSegment.length > 0){ var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; } })(jQuery, document, window); </script> <script type="text/javascript">(function(){ /* config area - replace with your instance values */ var mktoFormConfig = { podId : "//go.recurly.com", munchkinId : "439-LSC-903", formIds : [1483] //blog subscribe }; /* ---- NO NEED TO TOUCH ANYTHING BELOW THIS LINE! ---- */ function mktoFormChain(config) { /* util */ var arrayFrom = Function.prototype.call.bind(Array.prototype.slice); /* const */ var MKTOFORM_ID_ATTRNAME = "data-formid"; /* fix inter-form label bug! */ MktoForms2.whenRendered(function(form) { $('.mktoForm').removeAttr('style'); $('.mktoForm > style').remove(); $('.mktoHasWidth').width('auto'); var blogSubscribeExists = $('.blog__subscribe-wrapper').length; if(blogSubscribeExists){ $('.blog__subscribe-wrapper .mktoForm .mktoButtonWrap.mktoSimple .mktoButton').text('Submit'); $('.blog__subscribe-wrapper .mktoForm input[type=email]').click(function() { $('.blog__subscribe-wrapper .mktoForm > div:nth-child(2)').addClass('open'); $('.blog__subscribe-wrapper .gdpr__privacy').addClass('open'); $('.blog__subscribe-wrapper .mktoForm .mktoButtonWrap.mktoSimple .mktoButton').addClass('open'); $('.blog__subscribe-wrapper .mktoForm .mktoButtonRow').addClass('open'); }); } var thankYouExists = $('.blog__subscribe-input .submitted-message').length; if(thankYouExists){ $('.blog__subscribe-input').addClass('thankyou'); } function randomNumber() { return "_" + new Date().getTime() + Math.random(); } var formEl = form.getFormElem()[0]; arrayFrom(formEl.querySelectorAll("label[for]")).forEach(function(labelEl) { var forEl = formEl.querySelector('[id="' + labelEl.htmlFor + '"]'); if (forEl) { labelEl.htmlFor = forEl.id = forEl.id + randomNumber(); } }); var btn = $(formEl).find('.mktoButton'); $('.mktoForm').removeAttr('style'); $('.mktoForm > style').remove(); $('.mktoHasWidth').width('auto'); //Add an onSuccess handler form.onSuccess(function(values, followUpUrl) { // only for blog if($(formEl).parent().hasClass('blog__subscribe-wrapper')){ $('.mktoButton').text(''); btn.addClass('progress').css({'background':'url("/img2/icons/icon_loading-success_css.svg?'+randomNumber()+'") center no-repeat #893999', 'background-size':'24px'}).val(''); $(formEl).find('.mktoField').prop( "disabled", true ).change() setTimeout(function(){ $('.blog__subscribe-start').fadeOut(500); $('.blog__subscribe-wrapper .mktoForm').fadeTo(500, 0).delay(500).css({'z-index':'-1','height':'5rem'}); $('.blog__subscribe-start').fadeTo(500, 0).delay(500).css({'display':'none'}); $('.blog__subscribe-end').fadeIn(500); },3000); } return false; }); }); MktoForms2.onFormRender(function(form) { //label animation $(".mktoField").focus(function() { var label = $(this).prevAll('label'); $(this).addClass('active'); label.addClass('active'); }); $(".mktoField").blur(function() { var label = $(this).prevAll('label'); var input = $(this); if (!(input).val()) { label.removeClass('active'); } }); }); /* chain, ensuring only one #mktoForm_nnn exists at a time */ arrayFrom(config.formIds).forEach(function(formId) { var loadForm = MktoForms2.loadForm.bind(MktoForms2,config.podId,config.munchkinId,formId), formEls = arrayFrom(document.querySelectorAll("[" + MKTOFORM_ID_ATTRNAME + '="' + formId + '"]')); (function loadFormCb(formEls) { var formEl = formEls.shift(); formEl.id = "mktoForm_" + formId; loadForm(function(form) { formEl.id = ""; if (formEls.length) { loadFormCb(formEls); } }); })(formEls); }); } var form14833exists = false; $('form').each(function(){ if($(this).data('formid') == '1483'){ form14833exists = true; } }); if(form14833exists && typeof MktoForms2 != "undefined" ) { mktoFormChain(mktoFormConfig); } }()); </script> <script type="text/javascript">// add target="_blank" to all outgoing links $('.wrap__content a').each(function() { var a = new RegExp('/' + window.location.host + '/'); if (!a.test(this.href)) { $(this).attr("target","_blank"); } }); </script> <script type="text/javascript"> (function(){ // Marketo Forms if(typeof MktoForms2 != "undefined" ){ MktoForms2.whenReady( function(form){ //move privacy policy before the submit button $('.mktoForm').each(function(){ var privacy = $(this).find('.gdpr__privacy').closest('.mktoFormRow').detach(); var mktoButton = $(this).find('.mktoButtonRow'); privacy.insertAfter(mktoButton); }); }); } // Qualified (function(w,q){w['QualifiedObject']=q;w[q]=w[q]||function(){ (w[q].q=w[q].q||[]).push(arguments)};})(window,'qualified') let script = document.createElement("script"); script.type = 'text/javascript'; script.async = true; script.src = 'https://js.qualified.com/qualified.js?token=axRUhvBKmPtNTBZg'; document.head.appendChild(script); }()); </script> </body> </html>

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