<!DOCTYPE html>
<html lang="en-US">
<head>
	<meta charset="UTF-8" />
	<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Pixelyzed - Modern WordPress &amp; web development</title><link rel="preload" href="https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045.jpg" as="image" imagesrcset="https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045.jpg 2048w, https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045-300x225.jpg 300w, https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045-1024x768.jpg 1024w, https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045-150x150.jpg 150w, https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045-768x576.jpg 768w, https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045-1536x1152.jpg 1536w, https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045-1200x675.jpg 1200w, https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045-1200x900.jpg 1200w, https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045-1200x1200.jpg 1200w, https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045-600x450.jpg 600w, https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045-600x600.jpg 600w, https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045-1320x990.jpg 1320w" imagesizes="(max-width: 2048px) 100vw, 2048px" fetchpriority="high"><link rel="preload" href="https://pixelyzed.com/wp-content/uploads/2020/05/stephane_twitter.jpg" as="image" fetchpriority="high"><link rel="preload" href="https://pixelyzed.com/wp-content/uploads/2026/01/y2pqb9bnspw-768x768.jpg" as="image" imagesrcset="https://pixelyzed.com/wp-content/uploads/2026/01/y2pqb9bnspw-300x300.jpg 300w, https://pixelyzed.com/wp-content/uploads/2026/01/y2pqb9bnspw-150x150.jpg 150w, https://pixelyzed.com/wp-content/uploads/2026/01/y2pqb9bnspw-768x768.jpg 768w" imagesizes="(max-width: 768px) 100vw, 768px" fetchpriority="high"><link rel="preload" href="https://pixelyzed.com/wp-content/uploads/2025/12/bvoumgh5gby-768x512.jpg" as="image" imagesrcset="https://pixelyzed.com/wp-content/uploads/2025/12/bvoumgh5gby-300x200.jpg 300w, https://pixelyzed.com/wp-content/uploads/2025/12/bvoumgh5gby-150x150.jpg 150w, https://pixelyzed.com/wp-content/uploads/2025/12/bvoumgh5gby-768x512.jpg 768w" imagesizes="(max-width: 768px) 100vw, 768px" fetchpriority="high"><link rel="preload" href="https://pixelyzed.com/wp-content/uploads/2023/05/b0tawaqubza-768x512.jpg" as="image" imagesrcset="https://pixelyzed.com/wp-content/uploads/2023/05/b0tawaqubza-300x200.jpg 300w, https://pixelyzed.com/wp-content/uploads/2023/05/b0tawaqubza-150x150.jpg 150w, https://pixelyzed.com/wp-content/uploads/2023/05/b0tawaqubza-768x512.jpg 768w" imagesizes="auto, (max-width: 768px) 100vw, 768px" fetchpriority="high"><link rel="preload" href="https://pixelyzed.com/wp-content/cache/perfmatters/pixelyzed.com/css/front.used.css?ver=1770011478" as="style" /><link rel="stylesheet" id="perfmatters-used-css" href="https://pixelyzed.com/wp-content/cache/perfmatters/pixelyzed.com/css/front.used.css?ver=1770011478" media="all" />
<!-- SureRank Meta Data -->
<link rel="canonical" href="https://pixelyzed.com/">
<meta name="description" content="Pixelyzed.com is a place where I share tips, techniques, reviews and opinions based on my experience building web sites with WordPress for my agency‘s clients.">
<meta name="robots" content="noarchive, index, follow">
<meta property="og:url" content="https://pixelyzed.com/">
<meta property="og:site_name" content="Pixelyzed">
<meta property="og:locale" content="en_US">
<meta property="og:type" content="website">
<meta property="og:title" content="Pixelyzed - Modern WordPress &amp; web development">
<meta property="og:description" content="Pixelyzed.com is where I share tips, techniques, reviews and opinions based on my experience building web sites with WordPress for my agency‘s clients.">
<meta property="og:image" content="https://pixelyzed.com/wp-content/uploads/2025/07/Pixelyzed-Social.png">
<meta property="article:publisher" content="https://www.facebook.com/pixelyzed">
<meta property="article:author" content="https://www.facebook.com/pixelyzed">
<meta property="article:published_time" content="2022-01-04T10:05:22-05:00">
<meta property="article:modified_time" content="2026-02-02T03:30:34+00:00">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@pixelyzed">
<meta name="twitter:title" content="Pixelyzed - Modern WordPress &amp; web development">
<meta name="twitter:description" content="Pixelyzed.com is where I share tips, techniques, reviews and opinions based on my experience building web sites with WordPress for my agency‘s clients.">
<meta name="twitter:image" content="https://pixelyzed.com/wp-content/uploads/2025/07/Pixelyzed-Social.png">
<meta name="twitter:creator" content="@pixelyzed">
<script type="application/ld+json" id="surerank-schema">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://pixelyzed.com/#website","name":"Pixelyzed","description":"Modern WordPress &amp; web development","url":"https://pixelyzed.com/","potentialAction":{"@id":"https://pixelyzed.com/#searchaction"},"publisher":{"@id":"https://pixelyzed.com/#organization"}},{"@type":"WebPage","@id":"https://pixelyzed.com#webpage","name":"Home","inLanguage":"en_US","url":"https://pixelyzed.com","isPartOf":{"@id":"https://pixelyzed.com/#website"},"publisher":{"@id":"https://pixelyzed.com/#organization"}},{"@type":"Organization","@id":"https://pixelyzed.com/#organization","name":"Pixelyzed","logo":"https://pixelyzed.com/wp-content/uploads/2025/06/cropped-favicon-1-1.png","sameAs":["https://www.facebook.com/pixelyzed","https://www.instagram.com/pixelyzed/","https://www.linkedin.com/in/stephane-bergeron/","https://bsky.app/profile/pixelyzed.bsky.social"],"slogan":"Modern WordPress &amp; web development","url":"https://pixelyzed.com/ "},{"@type":"SearchAction","@id":"https://pixelyzed.com/#searchaction","target":"https://pixelyzed.com/?s={search_term_string}","query-input":"required name=search_term_string"}]}</script>
<!-- /SureRank Meta Data -->
<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://pixelyzed.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fpixelyzed.com%2F" />
<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://pixelyzed.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fpixelyzed.com%2F&#038;format=xml" />
<style id='wp-img-auto-sizes-contain-inline-css'>
img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
</style>
<style id='wp-block-post-content-inline-css'>
.wp-block-post-content{display:flow-root}
/*# sourceURL=https://pixelyzed.com/wp-includes/blocks/post-content/style.min.css */
</style>
<link rel="stylesheet" id="fluent-form-styles-css" media="all" data-pmdelayedstyle="https://pixelyzed.com/wp-content/plugins/fluentform/assets/css/fluent-forms-public.css?ver=6.1.21">
<link rel="stylesheet" id="fluentform-public-default-css" media="all" data-pmdelayedstyle="https://pixelyzed.com/wp-content/plugins/fluentform/assets/css/fluentform-public-default.css?ver=6.1.21">

<link rel="stylesheet" id="fluent-forms-public-css" media="all" data-pmdelayedstyle="https://pixelyzed.com/wp-content/plugins/fluentform/assets/css/fluent-forms-public.css?ver=6.1.21">

<style id='wpgb-head-inline-css'>
.wp-grid-builder:not(.wpgb-template),.wpgb-facet{opacity:0.01}.wpgb-facet fieldset{margin:0;padding:0;border:none;outline:none;box-shadow:none}.wpgb-facet fieldset:last-child{margin-bottom:40px;}.wpgb-facet fieldset legend.wpgb-sr-only{height:1px;width:1px}
/*# sourceURL=wpgb-head-inline-css */
</style>
<script src="https://pixelyzed.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
<script id="breeze-prefetch-js-extra" defer src="data:text/javascript;base64,CnZhciBicmVlemVfcHJlZmV0Y2ggPSB7ImxvY2FsX3VybCI6Imh0dHBzOi8vcGl4ZWx5emVkLmNvbSIsImlnbm9yZV9yZW1vdGVfcHJlZmV0Y2giOiIxIiwiaWdub3JlX2xpc3QiOlsid3AtYWRtaW4iLCJ3cC1sb2dpbi5waHAiXX07Ci8vIyBzb3VyY2VVUkw9YnJlZXplLXByZWZldGNoLWpzLWV4dHJhCg=="></script>
<script src="https://pixelyzed.com/wp-content/plugins/breeze/assets/js/js-front-end/breeze-prefetch-links.min.js?ver=2.4.2" id="breeze-prefetch-js" defer></script>
<link rel="alternate" href="https://pixelyzed.com/" hreflang="en" />
<link rel="alternate" href="https://pixelyzed.com/fr/" hreflang="fr" />
			<style id="etch-defaults-css-styles">
				@layer etch-defaults {
	body {
		line-height: 1.5;
		-webkit-font-smoothing: antialiased;
		font-family: system-ui;
		display: flex;
		flex-direction: column;
	}
}
			</style>
						<style id="etch-reset-css-styles">
				@layer etch-reset {
	/* Box sizing rules */
	*,
	*::before,
	*::after {
		box-sizing: border-box;
	}

	/* Remove default margins */
	* {
		margin: 0;
	}

	/* Prevent font size inflation */
	html {
		-moz-text-size-adjust: none;
		-webkit-text-size-adjust: none;
		text-size-adjust: none;
	}

	/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
	ul[role='list'],
	ol[role='list'] {
		list-style: none;
	}

	ul[class]:not(
			[data-etch-has-custom-classes='false'], /* data-etch-has-custom-classes is builder only (not output on frontend) */
			.wp-block-list,
			.list,
			[class*='marker']
		),
	ol[class]:not(
			[data-etch-has-custom-classes='false'], /* data-etch-has-custom-classes is builder only (not output on frontend) */
			.wp-block-list,
			.list,
			[class*='marker']
		) {
		padding: 0;
		list-style: none;
	}

	/* Set body min height */
	body {
		min-block-size: 100vh;
		display: flex;
		flex-direction: column;

		main {
			flex-grow: 1;
		}
	}

	/* A elements that don't have a class get default styles */
	a:not([class]) {
		text-decoration-skip-ink: auto;
	}

	/* Make media easier to work with */
	img,
	picture,
	video,
	canvas,
	svg:not(.block-editor-list-view-tree svg),
	a:not(
		p > a,
		span > a,
		h1 > a,
		h2 > a,
		h3 > a,
		h4 > a,
		h5 > a,
		h6 > a,
		li > a,
		em > a,
		label > a,
		strong > a,
		figcaption > a,
		.editor-styles-wrapper a
	) {
		max-inline-size: 100%;
		height: auto;
		display: block;
	}

	/* Inherit fonts for inputs and buttons */
	input,
	button,
	textarea,
	select {
		font: inherit;
		font-size: inherit;
	}

	button {
		cursor: pointer;
		background-color: transparent;
		border: none;
		color: currentColor;
	}

	/* Make sure textareas without a rows attribute are not tiny */
	textarea:not([rows]) {
		min-height: 10em;
	}

	/* Avoid text overflows */
	p,
	h1,
	h2,
	h3,
	h4,
	h5,
	h6 {
		overflow-wrap: break-word;
	}

	figure > img {
		inline-size: 100%;
	}

	img {
		block-size: auto;
	}

	/* Add back select GB styles that are removed by global settings toggle */
	.has-text-align-center {
		text-align: center;
	}

	.has-text-align-left {
		text-align: left;
	}

	.has-text-align-right {
		text-align: right;
	}

	.has-fit-text {
		white-space: nowrap !important;
	}

	#end-resizable-editor-section {
		display: none;
	}

	.aligncenter {
		clear: both;
	}

	.items-justified-left {
		justify-content: flex-start;
	}

	.items-justified-center {
		justify-content: center;
	}

	.items-justified-right {
		justify-content: flex-end;
	}

	.items-justified-space-between {
		justify-content: space-between;
	}

	.screen-reader-text {
		border: 0;
		clip-path: inset(50%);
		height: 1px;
		margin: -1px;
		overflow: hidden;
		padding: 0;
		position: absolute;
		width: 1px;
		word-wrap: normal !important;
	}

	.screen-reader-text:focus {
		background-color: #ddd;
		clip-path: none;
		color: #444;
		display: block;
		font-size: 1em;
		height: auto;
		left: 5px;
		line-height: normal;
		padding: 15px 23px 14px;
		text-decoration: none;
		top: 5px;
		width: auto;
		z-index: 100000;
	}
}
			</style>
			<noscript><style>.wp-grid-builder .wpgb-card.wpgb-card-hidden .wpgb-card-wrapper{opacity:1!important;visibility:visible!important;transform:none!important}.wpgb-facet {opacity:1!important;pointer-events:auto!important}.wpgb-facet *:not(.wpgb-pagination-facet){display:none}</style></noscript><link rel="icon" href="https://pixelyzed.com/wp-content/uploads/2025/06/cropped-favicon-1-1-32x32.png" sizes="32x32" />
<link rel="icon" href="https://pixelyzed.com/wp-content/uploads/2025/06/cropped-favicon-1-1-192x192.png" sizes="192x192" />
<link rel="apple-touch-icon" href="https://pixelyzed.com/wp-content/uploads/2025/06/cropped-favicon-1-1-180x180.png" />
<meta name="msapplication-TileImage" content="https://pixelyzed.com/wp-content/uploads/2025/06/cropped-favicon-1-1-270x270.png" />
<style id="etch-page-styles">:where([data-etch-element="section"]) { inline-size: 100%;
  display: flex;
  flex-direction: column;
  align-items: center; }
.pix-header { padding-block: var(--space-m);
  padding-inline: var(--gutter);
  color: var(--white);
  position: relative;
  background-color: var(--bg-dark); }
:where([data-etch-element="container"]) { inline-size: 100%;
  display: flex;
  flex-direction: column;
  max-inline-size: var(--content-width, 1366px);
  align-self: center; margin-inline: auto; }
.pix-header__inner { display: flex;
  flex-direction: row;
  column-gap: var(--grid-gap);
  align-items: center; }
.pix-header__logo-link { display: block;
  width: 400px;  
  @media (width >= 56.25rem) {
    flex-shrink: 0;
  } }
:where([data-etch-element="flex-div"]) { inline-size: 100%;
  display: flex;
  flex-direction: column; }
.header__nav-wrapper { display: flex;
  flex-direction: row;
  justify-content: flex-end;
  width: 100%;
  align-items: center; }
.etch-nav { /* Nav */
  --nav-background-color: transparent;
  --nav-foreground-color: #fff;
  --nav-mobile-background-color: var(--bg-dark);
  --nav-z-index: 999;

  /* Nav List */
  --nav-list-style: none;
  --nav-list-padding: 0;
  --nav-list-margin: 0;

  /* Nav Items */
  --nav-item-block-padding: 0.5rem;
  --nav-item-inline-padding: 1rem;
  --nav-item-padding: var(--nav-item-block-padding) var(--nav-item-inline-padding);
  --nav-item-focus-line: 2px;
  --nav-item-focus-outline-color: var(--nav-foreground-color);
  --transition-duration: 0.3s;
  --transition-timing-function: ease-in-out;
  --nav-item-icon-rotation: 180deg;

  /* Nav Current Active Item */
  --nav-item-current-active-decoration: none;
  --nav-item-current-active-offset: 5px;

  /* Nav Button Icons */
  --nav-button-icon-size: 20px;

  /* Nav Links */
  --nav-link-padding: 0.5em 1em;
  --nav-link-color: var(--nav-foreground-color);
  --nav-link-color-contrast: var(--nav-background-color);
  --nav-link-color-hover: var(--secondary, #f7941d);
  --nav-link-background-hover: transparent;

  /* Nav Dropdowns and flyouts */
  --nav-dropdown-background: var(--bg-dark);
  --nav-flyout-background: var(--bg-dark);
  --nav-flyout-icon-desktop-initial-angle: -90deg;
  --nav-flyout-icon-desktop-rotation: 90deg;

  /* Set header to relative */
  /*header:has(&) {
    position: relative;
  }*/

  background-color: var(--nav-background-color);
  display: none;
  z-index: var(--nav-z-index);

  &[aria-expanded='true'] {
    --nav-background-color: var(--nav-mobile-background-color);
    display: flex;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
  }

  :where(.etch-nav__list) {
    display: flex;
    flex-direction: column;
    width: 100%;
    margin: var(--nav-list-margin);
    padding: var(--nav-list-padding);
    list-style: var(--nav-list-style);
  }

  :where(.etch-nav__list, .etch-nav__dropdown, .etch-nav__flyout) {
    margin: var(--nav-list-margin);
    padding: var(--nav-list-padding);
    list-style: var(--nav-list-style);
  }

  :where(.etch-nav__item) {
    display: flex;
    flex-direction: column;
  }

  :where(.etch-nav__link:focus, .etch-nav__link:focus-visible, .etch-nav__button:focus, .etch-nav__button:focus-visible) {
    outline: var(--nav-item-focus-line) solid var(--nav-item-focus-outline-color);
  }

  :where(.etch-nav__item .etch-nav__link, .etch-nav__item .etch-nav__button, .etch-nav__item.lang-switcher a) {
    text-decoration: none;
    color: var(--nav-link-color);
    padding: var(--nav-item-padding);
  }

  :where(.etch-nav__link[aria-current='page']) {
    text-decoration: var(--nav-item-current-active-decoration);
    text-underline-offset: var(--nav-item-current-active-offset);
    color: var(--secondary);
  }

  :where(.etch-nav__button) {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: var(--nav-link-color);

    svg {
      width: var(--nav-button-icon-size);
      min-width: var(--nav-button-icon-size); /* There seems to be some issue with etch.reset and max-width 100%*/
      height: var(--nav-button-icon-size);
      transition: transform var(--transition-duration) var(--transition-timing-function);
    }
  }

  :where(.etch-nav__button--dropdown-toggle[aria-expanded='true'] svg, .etch-nav__button--flyout-toggle[aria-expanded='true'] svg) {
    transform: rotate(var(--nav-item-icon-rotation));
  }

  :where(.etch-nav__item:hover > .etch-nav__link, .etch-nav__item:hover > .etch-nav__button[aria-expanded='true']) {
    color: var(--nav-link-color-hover);
    background-color: var(--nav-link-background-hover);
  }

  :where(.etch-nav__item--has-dropdown, .etch-nav__item--has-flyout) {
    position: relative;
  }

  :where(.etch-nav__dropdown) {
    position: relative;
    background-color: var(--nav-dropdown-background);
    transition:
      max-height calc(var(--transition-duration) / 2) var(--transition-timing-function),
      opacity var(--transition-duration) var(--transition-timing-function),
      visibility var(--transition-duration) var(--transition-timing-function);
  }

  :where(.etch-nav__button--dropdown-toggle[aria-expanded='false'] ~ .etch-nav__dropdown, .etch-nav__button--flyout-toggle[aria-expanded='false'] ~ .etch-nav__flyout) {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transition:
      max-height var(--transition-duration) var(--transition-timing-function),
      opacity var(--transition-duration) var(--transition-timing-function),
      visibility var(--transition-duration) var(--transition-timing-function);
  }

  :where(.etch-nav__flyout) {
    background-color: var(--nav-flyout-background);
    transition:
      max-height calc(var(--transition-duration) / 2) var(--transition-timing-function),
      opacity var(--transition-duration) var(--transition-timing-function),
      visibility var(--transition-duration) var(--transition-timing-function);
  }

  /* Set the desired breakpoint */
  @media (min-width: 1024px) {
    display: flex;

    :where(.etch-nav__item) {
      text-wrap: nowrap;
    }

    :where(.etch-nav__list) {
      flex-direction: row;
    }

    :where(.etch-nav__button:nth-child(2)) {
      padding-inline: 0 var(--nav-item-horizontal-padding);
    }

    :where(.etch-nav__dropdown) {
      position: absolute;
      top: 100%;
      left: 0;
      overflow: inherit;
      max-height: 0; /* desktop flicker fix */
      box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
    }

    :where(.etch-nav__button--flyout-toggle svg) {
      transform: rotate(var(--nav-flyout-icon-desktop-initial-angle));
    }

    :where(.etch-nav__button--flyout-toggle[aria-expanded='true'] svg) {
      transform: rotate(var(--nav-flyout-icon-desktop-rotation));
    }

    :where(.etch-nav__flyout) {
      position: absolute;
      top: 0;
      left: 100%;
      box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
    }
  } }
.etch-burger { --burger-width: 30px;
  --burger-line-thickness: 2px;
  --burger-line-spacing: 6px;
  --burger-dark-color: var(--white);
  --transition-duration: 0.3s;
  --transition-timing-function: ease-in-out;

  inline-size: var(--burger-width);
  block-size: calc(var(--burger-line-thickness) * 3 + var(--burger-line-spacing) * 2);
  padding: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;

  /* Hide Burger above X breakpoint */
  @media (min-width: 1024px) {
    display: none;
  }

  .etch-burger__lines {
    position: relative;
    width: var(--burger-width);
    height: var(--burger-line-thickness);
    min-height: 0;
    min-width: 0;
    background: var(--burger-dark-color);
    transition:
      transform var(--transition-duration) var(--transition-timing-function),
      background var(--transition-duration) var(--transition-timing-function);

    &::before,
    &::after {
      content: '';
      position: absolute;
      left: 0;
      width: 100%;
      height: var(--burger-line-thickness);
      background: var(--burger-dark-color);
      transition:
        transform var(--transition-duration) var(--transition-timing-function),
        opacity var(--transition-duration) var(--transition-timing-function);
    }

    &::before {
      top: calc(-1 * (var(--burger-line-thickness) + var(--burger-line-spacing)));
    }

    &::after {
      bottom: calc(-1 * (var(--burger-line-thickness) + var(--burger-line-spacing)));
    }
  }

  /* Animated state */
  &[aria-expanded='true'] .etch-burger__lines {
    background: transparent;

    &::before {
      transform: translateY(calc(var(--burger-line-thickness) + var(--burger-line-spacing))) rotate(45deg);
    }

    &::after {
      transform: translateY(calc(-1 * (var(--burger-line-thickness) + var(--burger-line-spacing)))) rotate(-45deg);
    }
  } }
.search-container { position: relative; /* Allows absolute positioning of child elements */
    display: flex;
    align-items: center;
    z-index: 1000; /* High z-index to ensure it appears above other elements */

    /* Search Toggle Button - The button that opens/closes the search field */
    .search-toggle-btn {
        background: transparent; /* No background color */
        border: 2px solid #333; /* Dark border */
        border-radius: 50%; /* Makes it circular */
        width: 44px; /* Fixed width for consistent size */
        height: 44px; /* Fixed height for consistent size */
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer; /* Pointer cursor on hover */
        transition: all 0.3s ease; /* Smooth transition for all properties */
        color: var(--white); /* Icon color */
        position: relative; /* For icon positioning */
        overflow: hidden; /* Prevents icon overflow during animation */

        /* Hover effect for search toggle button */
        &:hover {
            background-color: #333; /* Dark background on hover */
            color: white; /* White icon on hover */
            transform: scale(1.05); /* Slightly larger on hover */
        }

        /* Focus styles for accessibility */
        &:focus {
            outline: 2px solid #007cba; /* WordPress blue focus outline */
            outline-offset: 2px; /* Space between element and outline */
        }
    }

    /* Search Icon - Default visible icon */
    .search-icon {
        transition: all 0.3s ease; /* Smooth transition */
        opacity: 1; /* Fully visible by default */
        transform: scale(1); /* Normal size */
    }

    /* Close Icon - Hidden by default */
    .close-icon {
        position: absolute; /* Positioned absolutely within button */
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%) scale(0); /* Centered and scaled to 0 */
        opacity: 0; /* Hidden by default */
        transition: all 0.3s ease; /* Smooth transition */
    }

    /* When search is active, hide search icon and show close icon */
    &.active .search-icon {
        opacity: 0; /* Hide search icon */
        transform: scale(0); /* Scale down to 0 */
    }

    &.active .close-icon {
        opacity: 1; /* Show close icon */
        transform: translate(-50%, -50%) scale(1); /* Scale up to normal size */
    }

    /* Search Form Wrapper - Container for the expandable search form */
    .search-form-wrapper {
        position: absolute; /* Positioned absolutely to overlay */
        top: 0;
        right: 54px; /* Positioned to the left of the toggle button */
        height: 44px; /* Same height as toggle button */
        overflow: hidden; /* Hides content during animation */
        transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); /* Smooth easing transition */
        width: 0; /* Initially collapsed */
        opacity: 0; /* Initially invisible */
    }

    /* Active state for search form wrapper */
    &.active .search-form-wrapper {
        width: 300px; /* Expanded width */
        opacity: 1; /* Fully visible */
    }

    /* Search Form - The actual form element */
    .search-form {
        display: flex; /* Flexbox layout */
        align-items: center; /* Center items vertically */
        height: 100%; /* Full height of wrapper */
        background: white; /* White background */
        border: 2px solid #333; /* Dark border matching toggle button */
        border-radius: 25px; /* Rounded corners */
        padding: 0; /* No padding on form itself */
        padding-right: 2px; /* Small padding on right to contain submit button */
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); /* Subtle shadow */
    }

    /* Search Input Field */
    .search-field {
        flex: 1; /* Takes up remaining space */
        border: none; /* No border */
        outline: none; /* No outline */
        padding: 0 16px; /* Horizontal padding */
        font-size: 14px; /* Font size */
        background: transparent; /* Transparent background */
        color: #333; /* Text color */
        height: 100%; /* Full height */
        border-radius: 22px 0 0 22px; /* Rounded left corners only */

        /* Placeholder styling */
        &::placeholder {
            color: #666; /* Gray placeholder text */
            opacity: 1; /* Ensure visibility across browsers */
        }
    }

    /* Search Submit Button */
    .search-submit {
        background: #333; /* Dark background */
        border: none; /* No border */
        color: var(--white); /* White icon */
        width: 40px; /* Fixed width */
        height: 40px; /* Fixed height */
        border-radius: 50%; /* Circular shape */
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer; /* Pointer cursor */
        flex-shrink: 0; /* Prevent button from shrinking */
      transform: translateX(2px);
        transition: background-color 0.3s ease; /* Smooth background transition */

        /* Hover effect for submit button */
        &:hover {
            background-color: #555; /* Lighter background on hover */
        }

        /* Focus styles for submit button */
        &:focus {
            outline: 2px solid #007cba; /* WordPress blue focus outline */
            outline-offset: 1px; /* Smaller offset for circular button */
        }
    }

    /* Animation for search results (optional enhancement) */
    .search-results {
        opacity: 0; /* Hidden by default */
        transform: translateY(-20px); /* Slightly above normal position */
        transition: all 0.3s ease; /* Smooth transition */

        /* Show search results with animation */
        &.show {
            opacity: 1; /* Fully visible */
            transform: translateY(0); /* Normal position */
        }
    }

    /* Responsive Design - Mobile adjustments */
    @media (max-width: 768px) {
        /* Reduce expanded width on mobile */
        &.active .search-form-wrapper {
            width: 250px; /* Smaller width for mobile */
        }
        
        /* Adjust positioning for smaller screens */
        .search-form-wrapper {
            right: 48px; /* Closer to toggle button (changed from left) */
        }
    }

    /* Small mobile screens */
    @media (max-width: 480px) {
        /* Further reduce width on very small screens */
        &.active .search-form-wrapper {
            width: 200px; /* Even smaller width */
        }
    } }
.search-toggle-btn { background: transparent; /* No background color */
    border: 2px solid #333; /* Dark border */
    border-radius: 50%; /* Makes it circular */
    width: 44px; /* Fixed width for consistent size */
    height: 44px; /* Fixed height for consistent size */
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer; /* Pointer cursor on hover */
    transition: all 0.3s ease; /* Smooth transition for all properties */
    color: #333; /* Icon color */
    position: relative; /* For icon positioning */
    overflow: hidden; /* Prevents icon overflow during animation */

  &:hover {
    background-color: #333; /* Dark background on hover */
    color: white; /* White icon on hover */
    transform: scale(1.05); /* Slightly larger on hover */
  }
  &:focus {
    outline: 2px solid #007cba; /* WordPress blue focus outline */
    outline-offset: 2px; /* Space between element and outline */
  } }
.search-icon { transition: all 0.3s ease; /* Smooth transition */
  opacity: 1; /* Fully visible by default */
  transform: scale(1); /* Normal size */ }
.close-icon { position: absolute; /* Positioned absolutely within button */
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0); /* Centered and scaled to 0 */
  opacity: 0; /* Hidden by default */
  transition: all 0.3s ease; /* Smooth transition */ }
.home-hero { min-height: calc(100dvh - var(--header-height));
  justify-content: center;
  position: relative; }
.home-hero__inner { z-index: 1; }
.home-hero__heading { color: var(--white);
  font-weight: 200; }
.home-hero__text { font-size: calc(var(--text-xl) * 0.888);
  line-height: 1.2;
  font-family: Montserrat-ExtraLight, sans-serif;
  color: var(--white);
  a:link, a:visited {
    color: var(--accent);
  }
  a:hover, a:active {
    color: var(--white);
  } }
.background-image { :has(> &) {
    position: relative;
    isolation: isolate;
  }
  pointer-events: none;
  position: absolute;
  inset: 0;
  z-index: -1;
  &[data-has-overlay='false'] {
    --overlay-display: none;
  }
  &::after {
    content: '';
    background: var(--overlay-color);
    opacity: var(--overlay-opacity);
    position: absolute;
    inset: 0;
    display: var(--overlay-display);
  } }
.background-image__img { position: absolute;
  inset: 0;
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  border-radius: 0; }
.pix-pixels-bgnd { position: absolute;
  opacity: var(--pix-opacity);
  width: auto;
  height: auto;
  border-radius: 0;
  .pix-pixels-bgnd__svg {
    width: 128px;
    height: auto;
    pointer-events: none;
  }
  z-index: 0;  
  @media (width < 106.875rem) {
    .pix-pixels-bgnd__svg {
      width: 64px;
      height: auto;
    }
    &.left {
      left: calc(50% - calc(64px) / 2);
    }
    &.right {
      right: calc(50% - calc(64px) / 2);
    }
    top: unset;
    bottom: 20px;
  }
  @media (width >= 106.875rem) {
    top: calc(50% - calc(128px) / 2);
    &.left {
      left: 40px;
    }
    &.right {
      right: 40px;
    }
  }
  @media (width < 80rem) {
    .pix-pixels-bgnd__svg {
      height: calc(var(--section-padding-block) - 20px);
      width: auto;
    }
    bottom: 10px;
  } }
.pix-pixels-bgnd__svg { border-radius: 0; }
.pix-intro { position: relative; }
.pix-intro__inner { z-index: 1;
  @media (width >= 65rem) {
    display: grid;
    grid-template-columns: var(--grid-2-1);
    gap: var(--grid-gap);
  } }
.pix-intro__content-wrapper { display: flex;
  flex-direction: column;
  gap: var(--content-gap); }
.pix-ctas-wrapper { display: flex;
  gap: var(--content-gap);
  flex-direction: row;
  @media (width <= 37.5rem) {
    flex-direction: column;
  } }
.pix-intro__media-wrapper { aspect-ratio: 1;
  object-fit: cover; }
.pix-latest-posts { background: var(--bg-ultra-light);
  position: relative; }
.pix-posts-grid { @media (width >= 62.5rem) {
    display: grid;
    gap: var(--grid-gap);
    grid-template-columns: var(--grid-3);
  } }
.pix-post-card { background-color: var(--white);
  display: flex;
  flex-direction: column;
  gap: var(--card-gap);
  justify-content: space-between; }
.pix-post-card__heading-wrapper { gap: calc(var(--card-gap) / 2);
  /*background: #ddd;*/ }
.pix-post-card__featured-image-wrapper { margin: 0;
  overflow: clip; }
.pix-post-card__featured-image { width: 100%;
  border-radius: 0;
  aspect-ratio: 16/9;
  object-fit: cover;
  transition: scale 0.5s ease-in-out;
  &:hover {
    scale: 1.2;
  } }
.pix-post-card__post-heading { padding-inline: var(--space-m);
  margin-block-start: var(--card-gap); }
.pix-post-card__meta-wrapper { padding-inline: var(--space-m); }
.pix-post-card__content-wrapper { padding: var(--space-m);
  /*background: #e0e;*/ }
.pix-resources { position: relative; }
.pix-resources__inner { z-index: 2; }
.pix-resources-grid { background-color: var(--white);
  display: grid;
  gap: var(--grid-gap);
  align-items: center;
  @media (width >= 22.5rem) {
    grid-template-columns: var(--grid-1);
  }
  @media (width >= 30rem) {
    grid-template-columns: var(--grid-2);
  }
  @media (width >= 48rem) {
    grid-template-columns: var(--grid-3);
  }
  @media (width >= 64rem) {
    grid-template-columns: var(--grid-4);
  }
  @media (width >= 80rem) {
    grid-template-columns: var(--grid-5);
  } }
.pix-resources-grid__resource { align-items: center; }
.pix-resources-grid__resource-svg { width: 100%;
  height: auto;
  color: var(--black); }
.fat-footer { padding-block: var(--space-xl) var(--space-s);
  padding-inline: var(--gutter);
  gap: var(--container-gap);
  color: var(--white);
  background: var(--bg-dark); }
.fat-footer__inner { display: grid;
  grid-template-columns: var(--grid-3);
  gap: calc(var(--grid-gap) * 3);
  @media (width <= 63.9375rem) {
    grid-template-columns: var(--grid-2);
    gap: calc(var(--grid-gap) * 2);
  }
  @media (width <= 37.5rem) {
    grid-template-columns: var(--grid-1);
  } }
.fat-footer__pixels-logo { max-height: 100%;
  margin-top: -1px; }
.fat-footer__short-bio { font-size: calc(var(--text-s) * 1.15);
  line-height: 1.6; }
.social-share-alpha { --icon-gap: 0.5em;
  --background: var(--white);
  max-inline-size: max-content;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: var(--icon-gap);
  &[data-show-labels='false'] {
    .social-share-alpha__item-label {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
      border: 0;
    }
  }
  &[data-bar-style='true']:not([data-show-labels="true"]) {
    padding: var(--icon-gap);
    border-radius: var(--radius);
    background: var(--background);
  } }
.social-share-alpha__item-link { display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.5em;
  line-height: 1;
  text-decoration: none;
  [data-show-labels='true']:has(&) a {
    padding: 0.5em 1em;
    border-radius: var(--radius, 5px);
    background: var(--background, #fff);
  } }
.social-share-alpha__item-icon { inline-size: calc(var(--icon-size-m) * 1.3);
  aspect-ratio: 1;
  color: var(--white, currentColor);
  fill: var(--white); }
.social-share-alpha__item-label { font-size: var(--icon-size);
  color: var(--label-color, currentColor); }
.fat-footer__column-title { color: var(--white);
  font-size: var(--h3); }
.footer-nav { display: flex;
  flex-direction: column;
  gap: 0;
  .footer-nav__item {
    border-top: 1px solid var(--neutral-semi-dark);
  }
  .footer-nav__item:first-child {
    border-top: none;
  }
  a,
  .footer-nav__link {
    display: block;
    padding-block: 10px;
    &:link,
    &:visited {
      color: var(--white);
    }
    &:hover,
    &:active {
      color: var(--secondary);
    }
  } }
.footer-form { form.fluent_form_1 .ff_submit_btn_wrapper {
    .ff-btn-submit {
      width: 100%;
      background: var(--primary);
      color: var(--white);
      font-size: var(--text-m);
      font-weight: 500;
      padding-inline: var(--space-m);
      padding-block: calc(var(--space-xs) * 0.88);
    }
    .ff-btn-submit:hover {
      background: var(--secondary);
    }
  } }
.footer__credits { text-align: center;
  gap: calc(var(--content-gap) / 4);
  font-size: var(--text-s); }
.footer__powered-by { /*a {
    display: inline;
  }*/
  a:link,
  a:visited {
    color: var(--secondary);
  }
  a:hover,
  a:active {
    color: var(--white);
  } }
.fw-scroll-to-top { /* Size & placement */
  --fw-size: 3rem;
  --fw-offset: 4rem;
  --fw-z: 1000;

  /* Colors (fallbacks included) */
  --fw-bg: var(--primary);
  --fw-icon: var(--white, #ffffff);
  --fw-ring: var(--secondary);

  /* Stroke width and animation */
  --fw-stroke: 3;
  --fw-progress-rotate: -90deg;
  --fw-progress-duration: 0.2s;
  --fw-radius: 50vw;

  display: none;
  position: fixed;
  bottom: calc(var(--fw-offset) / 2);
  right: calc(var(--fw-offset) / 2);
  @media (width > 768px) {
    bottom: var(--fw-offset);
    right: var(--fw-offset);
  }
  z-index: var(--fw-z);
  background-color: transparent;
  border: none;

  .fw-scroll-progress-ring {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(var(--fw-progress-rotate));
    pointer-events: none;

    circle {
      fill: none;
      stroke-linecap: round;
      stroke: var(--fw-ring);
      stroke-width: var(--fw-stroke);
      stroke-dasharray: 100;
      stroke-dashoffset: 100;
      transition: stroke-dashoffset var(--fw-progress-duration) linear;
    }
  }

  .fw-scroll-to-top__inner {
    background-color: var(--fw-bg);
    border-radius: var(--fw-radius);
    width: var(--fw-size);
    height: var(--fw-size);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    svg {
      /*margin-top: calc(var(--fw-size) * -0.25);*/
      stroke: var(--fw-icon);
      color: var(--fw-icon);
    }

    p {
      margin: 0;
      font-size: calc(var(--fw-size) / 4);
      line-height: 0.8;
      font-weight: 600;
      color: var(--fw-icon);
      text-transform: uppercase;
    }
  }
  .fw-scroll-to-top__inner:hover {
    background-color: var(--base-light);
    svg {
      stroke: var(--primary);
      color: var(--primary);
    }
  } }
:root { /* BasicNav additional vairables */
  --nav-item-top-font-size: var(--text-m); }</style><script id="etch-script-jjebz" type="module" defer src="data:text/javascript;base64,Y2xhc3MgRXRjaE5hdlNjcmlwdCB7Cgljb25zdHJ1Y3RvcihuYXZFbGVtZW50LCBvcHRpb25zID0ge30pIHsKCQl0aGlzLm5hdkVsID0gbmF2RWxlbWVudDsKCQl0aGlzLm9wdGlvbnMgPSBvcHRpb25zOwoJCXRoaXMuaG92ZXJUaW1lb3V0cyA9IG5ldyBNYXAoKTsKCQl0aGlzLmlzVG91Y2hEZXZpY2UgPSB0aGlzLmRldGVjdFRvdWNoRGV2aWNlKCk7CgkJdGhpcy5pbml0KCk7Cgl9CgoJZGV0ZWN0VG91Y2hEZXZpY2UoKSB7CgkJcmV0dXJuICdvbnRvdWNoc3RhcnQnIGluIHdpbmRvdyB8fCBuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHMgPiAwOwoJfQoKCWluaXQoKSB7CgkJaWYgKCF0aGlzLm5hdkVsKSByZXR1cm4gY29uc29sZS5lcnJvcignQ2Fubm90IGZpbmQgTmF2IGVsZW1lbnQnKTsKCgkJdGhpcy5uYXZMaXN0ID0gdGhpcy5nZXROYXZMaXN0KCk7CgkJdGhpcy50b3BMZXZlbE5hdkl0ZW1zID0gdGhpcy5nZXRUb3BMZXZlbE5hdkl0ZW1zKHRoaXMubmF2TGlzdCk7CgkJdGhpcy5zZXRUYWJJbmRleCh0aGlzLnRvcExldmVsTmF2SXRlbXMpOwoKCQl0aGlzLmludGVyYWN0aW9uTW9kZSA9IHRoaXMubmF2RWwuZGF0YXNldD8ubmF2SW50ZXJhY3Rpb24gfHwgJ2hvdmVyJzsKCgkJW3RoaXMuZHJvcGRvd25CdXR0b25zLCB0aGlzLmZseW91dEJ1dHRvbnNdID0gdGhpcy5nZXRCdXR0b25zKAoJCQl0aGlzLm5hdkxpc3QKCQkpOwoJCVt0aGlzLmRyb3Bkb3duTmF2LCB0aGlzLmZseW91dE5hdl0gPSB0aGlzLmdldEFyZWFOYXYodGhpcy5uYXZMaXN0KTsKCgkJdGhpcy5zZXRCdXR0b25OYXZNYXAoKTsKCQl0aGlzLmJ1aWxkRm9jdXNNYXBzKCk7CgoJCXRoaXMuYXR0YWNoRXZlbnRMaXN0ZW5lcnMoKTsKCQl0aGlzLnNldEluaXRpYWxOYXZTdGF0ZXMoKTsKCgkJaWYgKHRoaXMuaXNBcmlhQ3VycmVudFBhZ2VFbmFibGVkKCkpIHsKCQkJdGhpcy5zZXRBcmlhQ3VycmVudFBhZ2UoKTsKCQl9Cgl9CgoJZ2V0TmF2TGlzdCgpIHsKCQlyZXR1cm4gdGhpcy5uYXZFbC5xdWVyeVNlbGVjdG9yKCcuZXRjaC1uYXZfX2xpc3QnKTsKCX0KCglnZXRBcmlhQ3VycmVudFBhZ2VDb25maWcoKSB7CgkJY29uc3QgdmFsdWUgPSB0aGlzLm9wdGlvbnM/LmFyaWFDdXJyZW50UGFnZTsKCgkJaWYgKHZhbHVlID09PSB0cnVlKQoJCQlyZXR1cm4gewoJCQkJZW5hYmxlZDogdHJ1ZSwKCQkJCWhvbWVQYWdlOiB0cnVlCgkJCX07CgoJCWlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKQoJCQlyZXR1cm4gewoJCQkJZW5hYmxlZDogdHJ1ZSwKCQkJCWhvbWVQYWdlOiB2YWx1ZS5ob21lUGFnZSA9PT0gZmFsc2UgPyBmYWxzZSA6IHRydWUKCQkJfTsKCgkJcmV0dXJuIHsKCQkJZW5hYmxlZDogZmFsc2UKCQl9OwoJfQoKCXNldEFyaWFDdXJyZW50UGFnZSgpIHsKCQljb25zdCB7IGhvbWVQYWdlIH0gPSB0aGlzLmdldEFyaWFDdXJyZW50UGFnZUNvbmZpZygpOwoKCQljb25zdCBjdXJyZW50VXJsID0gdGhpcy5ub3JtYWxpemVVcmwod2luZG93LmxvY2F0aW9uLmhyZWYpOwoJCWNvbnN0IGhvbWVwYWdlVXJsID0gdGhpcy5ub3JtYWxpemVVcmwod2luZG93LmxvY2F0aW9uLm9yaWdpbik7CgoJCWlmICghaG9tZVBhZ2UgJiYgY3VycmVudFVybCA9PT0gaG9tZXBhZ2VVcmwpIHJldHVybjsKCgkJY29uc3QgbmF2TGlua3MgPSB0aGlzLnRvcExldmVsTmF2SXRlbXMuZmlsdGVyKAoJCQkoZWwpID0+CgkJCQllbC5jbGFzc0xpc3QuY29udGFpbnMoJ2V0Y2gtbmF2X19saW5rJykgJiYKCQkJCWVsLmhhc0F0dHJpYnV0ZSgnaHJlZicpCgkJKTsKCgkJZm9yIChjb25zdCBpdGVtIG9mIG5hdkxpbmtzKSB7CgkJCWNvbnN0IGl0ZW1VcmwgPSB0aGlzLm5vcm1hbGl6ZVVybCgKCQkJCW5ldyBVUkwoaXRlbS5ocmVmLCB3aW5kb3cubG9jYXRpb24ub3JpZ2luKS5ocmVmCgkJCSk7CgkJCWlmIChpdGVtVXJsID09PSBjdXJyZW50VXJsKSB7CgkJCQlpdGVtLnNldEF0dHJpYnV0ZSgnYXJpYS1jdXJyZW50JywgJ3BhZ2UnKTsKCQkJCWJyZWFrOwoJCQl9CgkJfQoJfQoKCWlzQXJpYUN1cnJlbnRQYWdlRW5hYmxlZCgpIHsKCQlyZXR1cm4gdGhpcy5nZXRBcmlhQ3VycmVudFBhZ2VDb25maWcoKS5lbmFibGVkOwoJfQoKCW5vcm1hbGl6ZVVybCh1cmwpIHsKCQlsZXQgbm9ybWFsaXplZCA9IHVybC5yZXBsYWNlKC9cLyskLywgJycpOwoJCWlmIChub3JtYWxpemVkID09PSB3aW5kb3cubG9jYXRpb24ub3JpZ2luKSB7CgkJCW5vcm1hbGl6ZWQgKz0gJy8nOwoJCX0KCQlyZXR1cm4gbm9ybWFsaXplZDsKCX0KCglnZXRUb3BMZXZlbE5hdkl0ZW1zKG5hdkxpc3QpIHsKCQlyZXR1cm4gQXJyYXkuZnJvbShuYXZMaXN0LmNoaWxkcmVuKS5mbGF0TWFwKChsaSkgPT4KCQkJQXJyYXkuZnJvbShsaS5jaGlsZHJlbikuZmlsdGVyKAoJCQkJKGVsKSA9PgoJCQkJCWVsLmNsYXNzTGlzdC5jb250YWlucygnZXRjaC1uYXZfX2xpbmsnKSB8fAoJCQkJCWVsLmNsYXNzTGlzdC5jb250YWlucygnZXRjaC1uYXZfX2J1dHRvbicpCgkJCSkKCQkpOwoJfQoKCWdldEJ1dHRvbnMobmF2TGlzdCkgewoJCXJldHVybiBbCgkJCUFycmF5LmZyb20oCgkJCQluYXZMaXN0LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ldGNoLW5hdl9fYnV0dG9uLS1kcm9wZG93bi10b2dnbGUnKQoJCQkpLAoJCQlBcnJheS5mcm9tKAoJCQkJbmF2TGlzdC5xdWVyeVNlbGVjdG9yQWxsKCcuZXRjaC1uYXZfX2J1dHRvbi0tZmx5b3V0LXRvZ2dsZScpCgkJCSkKCQldOwoJfQoKCWdldEFyZWFOYXYobmF2TGlzdCkgewoJCXJldHVybiBbCgkJCUFycmF5LmZyb20obmF2TGlzdC5xdWVyeVNlbGVjdG9yQWxsKCcuZXRjaC1uYXZfX2Ryb3Bkb3duJykpLAoJCQlBcnJheS5mcm9tKG5hdkxpc3QucXVlcnlTZWxlY3RvckFsbCgnLmV0Y2gtbmF2X19mbHlvdXQnKSkKCQldOwoJfQoKCWdldEZvY3VzYWJsZUFyZWFFbGVtZW50cyhhcmVhTmF2KSB7CgkJcmV0dXJuIEFycmF5LmZyb20oYXJlYU5hdi5jaGlsZHJlbikuZmxhdE1hcCgobGkpID0+CgkJCUFycmF5LmZyb20oCgkJCQlsaS5xdWVyeVNlbGVjdG9yQWxsKAoJCQkJCSc6c2NvcGUgPiBhLCA6c2NvcGUgPiBidXR0b24sIDpzY29wZSA+IFt0YWJpbmRleF06bm90KFt0YWJpbmRleD0iLTEiXSknCgkJCQkpCgkJCSkKCQkpOwoJfQoKCWdldE9wZW5GbHlvdXRzSW5Ecm9wZG93bihkcm9wZG93bikgewoJCWNvbnN0IGZseW91dHMgPSBkcm9wZG93bi5xdWVyeVNlbGVjdG9yQWxsKCcuZXRjaC1uYXZfX2ZseW91dCcpOwoJCXJldHVybiBBcnJheS5mcm9tKGZseW91dHMpLmZpbHRlcigoZmx5b3V0KSA9PiB7CgkJCWNvbnN0IGJ1dHRvbiA9IHRoaXMuYXJlYVRyaWdnZXJNYXAuZ2V0KGZseW91dCk7CgkJCXJldHVybiBidXR0b24/LmdldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcpID09PSAndHJ1ZSc7CgkJfSk7Cgl9CgoJZ2V0T3Blbk5hdkZyb21CdXR0b24oYnV0dG9uKSB7CgkJY29uc3QgbmF2ID0gdGhpcy5idXR0b25OYXZNYXAuZ2V0KGJ1dHRvbik7CgkJY29uc3QgaXNPcGVuID0gYnV0dG9uLmdldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcpID09PSAndHJ1ZSc7CgkJcmV0dXJuIGlzT3BlbiA/IG5hdiA6IG51bGw7Cgl9CgoJZ2V0Q29udGV4dEZvclRhcmdldCh0YXJnZXQpIHsKCQljb25zdCBhcmVhID0gdGhpcy5lbGVtZW50QXJlYU1hcC5nZXQodGFyZ2V0KTsKCQlpZiAoIWFyZWEpIHsKCQkJcmV0dXJuIHsKCQkJCXR5cGU6ICd0b3AtbGV2ZWwnLAoJCQkJaXRlbXM6IHRoaXMudG9wTGV2ZWxOYXZJdGVtcywKCQkJCWFyZWE6IG51bGwKCQkJfTsKCQl9CgkJY29uc3QgaXRlbXMgPSB0aGlzLmFyZWFGb2N1c01hcC5nZXQoYXJlYSk7CgkJY29uc3QgdHlwZSA9IGFyZWEuY2xhc3NMaXN0LmNvbnRhaW5zKCdldGNoLW5hdl9fZmx5b3V0JykKCQkJPyAnZmx5b3V0JwoJCQk6ICdkcm9wZG93bic7CgkJcmV0dXJuIHsgdHlwZSwgaXRlbXMsIGFyZWEgfTsKCX0KCglnZXRQYXJlbnREcm9wZG93bihlbGVtZW50KSB7CgkJbGV0IHBhcmVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudDsKCQl3aGlsZSAocGFyZW50KSB7CgkJCWlmIChwYXJlbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdldGNoLW5hdl9fZHJvcGRvd24nKSkgcmV0dXJuIHBhcmVudDsKCQkJcGFyZW50ID0gcGFyZW50LnBhcmVudEVsZW1lbnQ7CgkJfQoJCXJldHVybiBudWxsOwoJfQoKCXNldFRhYkluZGV4KGl0ZW1zKSB7CgkJaXRlbXMuZm9yRWFjaCgoZWwpID0+IGVsLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnMCcpKTsKCX0KCglzZXRCdXR0b25OYXZNYXAoKSB7CgkJdGhpcy5idXR0b25OYXZNYXAgPSBuZXcgTWFwKCk7CgoJCXRoaXMuZHJvcGRvd25CdXR0b25zPy5mb3JFYWNoKChidXR0b24pID0+IHsKCQkJY29uc3QgbGkgPSBidXR0b24uY2xvc2VzdCgnbGknKTsKCQkJY29uc3QgZHJvcGRvd24gPSB0aGlzLmRyb3Bkb3duTmF2LmZpbmQoCgkJCQkobSkgPT4gbS5jbG9zZXN0KCdsaScpID09PSBsaQoJCQkpOwoJCQlpZiAoZHJvcGRvd24pIHRoaXMuYnV0dG9uTmF2TWFwLnNldChidXR0b24sIGRyb3Bkb3duKTsKCQl9KTsKCgkJdGhpcy5mbHlvdXRCdXR0b25zPy5mb3JFYWNoKChidXR0b24pID0+IHsKCQkJY29uc3QgbGkgPSBidXR0b24uY2xvc2VzdCgnbGknKTsKCQkJY29uc3QgZmx5b3V0ID0gdGhpcy5mbHlvdXROYXYuZmluZCgobSkgPT4gbS5jbG9zZXN0KCdsaScpID09PSBsaSk7CgkJCWlmIChmbHlvdXQpIHRoaXMuYnV0dG9uTmF2TWFwLnNldChidXR0b24sIGZseW91dCk7CgkJfSk7Cgl9CgoJc2V0QXJlYU5hdlN0YXRlKGJ1dHRvbiwgb3BlbikgewoJCWNvbnN0IG5hdiA9IHRoaXMuYnV0dG9uTmF2TWFwLmdldChidXR0b24pOwoJCWlmICghbmF2KSByZXR1cm47CgoJCWJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCBTdHJpbmcob3BlbikpOwoKCQlpZiAob3BlbikgewoJCQl0aGlzLnNldEV4cGFuZGVkTmF2SGVpZ2h0KG5hdik7CgkJfSBlbHNlIHsKCQkJdGhpcy5zZXRDb2xsYXBzZWROYXZIZWlnaHQobmF2KTsKCgkJCWlmIChuYXYuY2xhc3NMaXN0LmNvbnRhaW5zKCdldGNoLW5hdl9fZHJvcGRvd24nKSkgewoJCQkJY29uc3Qgb3BlbkZseW91dHMgPSB0aGlzLmdldE9wZW5GbHlvdXRzSW5Ecm9wZG93bihuYXYpOwoJCQkJZm9yIChjb25zdCBmbHlvdXQgb2Ygb3BlbkZseW91dHMpIHsKCQkJCQljb25zdCBmbHlvdXRCdXR0b24gPSB0aGlzLmFyZWFUcmlnZ2VyTWFwLmdldChmbHlvdXQpOwoJCQkJCWZseW91dEJ1dHRvbj8uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7CiAgICAgICAgICAgICAgICAgIGZseW91dC5zdHlsZS5tYXhIZWlnaHQgPSAnMHB4JzsKCQkJCX0KCQkJfQoKCQl9CgoJCWlmIChuYXYuY2xhc3NMaXN0LmNvbnRhaW5zKCdldGNoLW5hdl9fZmx5b3V0JykpIHsKCQkJdGhpcy5jYWxjdWxhdGVEcm9wZG93bkV4dHJhSGVpZ2h0KG5hdik7CgkJfQoJfQoKCXNldEluaXRpYWxOYXZTdGF0ZXMoKSB7CgkJZm9yIChjb25zdCBbYnV0dG9uXSBvZiB0aGlzLmJ1dHRvbk5hdk1hcC5lbnRyaWVzKCkpIHsKCQkJY29uc3QgaXNPcGVuID0gYnV0dG9uLmdldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcpID09PSAndHJ1ZSc7CgkJCXRoaXMuc2V0QXJlYU5hdlN0YXRlKGJ1dHRvbiwgaXNPcGVuKTsKCQl9Cgl9CgoJc2V0RXhwYW5kZWROYXZIZWlnaHQobmF2KSB7CgkJY29uc3QgaGVpZ2h0ID0gdGhpcy5jYWxjdWxhdGVOYXZIZWlnaHQobmF2KTsKCQluYXYuc3R5bGUubWF4SGVpZ2h0ID0gJzBweCc7CgkJbmF2Lm9mZnNldEhlaWdodDsgLy8gZm9yY2UgcmVmbG93CgkJbmF2LnN0eWxlLm1heEhlaWdodCA9IGAke2hlaWdodH1weGA7Cgl9CgoJc2V0Q29sbGFwc2VkTmF2SGVpZ2h0KG5hdikgewoJCW5hdi5zdHlsZS5tYXhIZWlnaHQgPSBgJHtuYXYuc2Nyb2xsSGVpZ2h0fXB4YDsKCQluYXYub2Zmc2V0SGVpZ2h0OyAvLyBmb3JjZSByZWZsb3cKCQluYXYuc3R5bGUubWF4SGVpZ2h0ID0gJzBweCc7Cgl9CgoJYnVpbGRGb2N1c01hcHMoKSB7CgkJdGhpcy5hcmVhRm9jdXNNYXAgPSBuZXcgTWFwKCk7CgkJdGhpcy5hcmVhVHJpZ2dlck1hcCA9IG5ldyBNYXAoKTsKCQl0aGlzLmVsZW1lbnRBcmVhTWFwID0gbmV3IE1hcCgpOwoKCQlmb3IgKGNvbnN0IGVsIG9mIHRoaXMudG9wTGV2ZWxOYXZJdGVtcykgewoJCQl0aGlzLmVsZW1lbnRBcmVhTWFwLnNldChlbCwgdW5kZWZpbmVkKTsKCQl9CgoJCVsuLi50aGlzLmRyb3Bkb3duTmF2LCAuLi50aGlzLmZseW91dE5hdl0uZm9yRWFjaCgobmF2KSA9PiB7CgkJCWNvbnN0IGJ1dHRvbiA9IFsuLi50aGlzLmJ1dHRvbk5hdk1hcC5lbnRyaWVzKCldLmZpbmQoCgkJCQkoWywgbV0pID0+IG0gPT09IG5hdgoJCQkpPy5bMF07CgkJCWlmICghYnV0dG9uKSByZXR1cm47CgoJCQljb25zdCBpdGVtcyA9IHRoaXMuZ2V0Rm9jdXNhYmxlQXJlYUVsZW1lbnRzKG5hdik7CgoJCQl0aGlzLmFyZWFGb2N1c01hcC5zZXQobmF2LCBpdGVtcyk7CgkJCXRoaXMuYXJlYVRyaWdnZXJNYXAuc2V0KG5hdiwgYnV0dG9uKTsKCgkJCWZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykgewoJCQkJdGhpcy5lbGVtZW50QXJlYU1hcC5zZXQoaXRlbSwgbmF2KTsKCQkJfQoJCX0pOwoJfQoKCWNhbGN1bGF0ZU5hdkhlaWdodChuYXYpIHsKCQlpZiAobmF2LmNsYXNzTGlzdC5jb250YWlucygnZXRjaC1uYXZfX2ZseW91dCcpKSB7CgkJCXJldHVybiBuYXYuc2Nyb2xsSGVpZ2h0OwoJCX0KCgkJY29uc3QgZHJvcGRvd25NYXhIZWlnaHQgPSBuYXYuc3R5bGUubWF4SGVpZ2h0OwoJCW5hdi5zdHlsZS5tYXhIZWlnaHQgPSAnbm9uZSc7CgkJbGV0IHRvdGFsSGVpZ2h0ID0gbmF2LnNjcm9sbEhlaWdodDsKCQluYXYuc3R5bGUubWF4SGVpZ2h0ID0gZHJvcGRvd25NYXhIZWlnaHQ7CgoJCWNvbnN0IG9wZW5GbHlvdXRzID0gdGhpcy5nZXRPcGVuRmx5b3V0c0luRHJvcGRvd24obmF2KTsKCQlmb3IgKGNvbnN0IGZseW91dCBvZiBvcGVuRmx5b3V0cykgewoJCQl0b3RhbEhlaWdodCArPSBmbHlvdXQuc2Nyb2xsSGVpZ2h0OwoJCX0KCgkJcmV0dXJuIHRvdGFsSGVpZ2h0OwoJfQoKCS8vIFRoaXMgbWV0aG9kIG1hdGNoZXMgdGhlIGRyb3Bkb3duIGhlaWdodCB3aGVuIGEgZmx5b3V0IGlzIG9wZW5lZAoJY2FsY3VsYXRlRHJvcGRvd25FeHRyYUhlaWdodChmbHlvdXQpIHsKCQljb25zdCBwYXJlbnREcm9wZG93biA9IHRoaXMuZ2V0UGFyZW50RHJvcGRvd24oZmx5b3V0KTsKCQlpZiAoIXBhcmVudERyb3Bkb3duKSByZXR1cm47CgoJCWNvbnN0IGJ1dHRvbiA9IHRoaXMuYXJlYVRyaWdnZXJNYXAuZ2V0KHBhcmVudERyb3Bkb3duKTsKCQlpZiAoYnV0dG9uPy5nZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnKSA9PT0gJ3RydWUnKSB7CgkJCWNvbnN0IGhlaWdodCA9IHRoaXMuY2FsY3VsYXRlTmF2SGVpZ2h0KHBhcmVudERyb3Bkb3duKTsKCQkJcGFyZW50RHJvcGRvd24uc3R5bGUubWF4SGVpZ2h0ID0gYCR7aGVpZ2h0fXB4YDsKCQl9Cgl9CgoJdG9nZ2xlQXJlYU5hdihidXR0b24pIHsKCQl0aGlzLmNsZWFySG92ZXJUaW1lb3V0KGJ1dHRvbik7CgoJCWNvbnN0IGlzT3BlbiA9IGJ1dHRvbi5nZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnKSA9PT0gJ3RydWUnOwoJCXRoaXMuc2V0QXJlYU5hdlN0YXRlKGJ1dHRvbiwgIWlzT3Blbik7CgkJaWYgKCFpc09wZW4pIHsKCQkJdGhpcy5jbG9zZVNpYmxpbmdOYXYoYnV0dG9uKTsKCQkJdGhpcy5oYW5kbGVNb2JpbGVNZW51Rm9jdXMoYnV0dG9uKTsKCQl9Cgl9CgoJaGFuZGxlTW9iaWxlTWVudUZvY3VzKGJ1dHRvbikgewoJCWNvbnN0IGlzTW9iaWxlTWVudU9wZW4gPQoJCQl0aGlzLm5hdkVsLmdldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcpID09PSAndHJ1ZSc7CgkJaWYgKCFpc01vYmlsZU1lbnVPcGVuKSByZXR1cm47CgoJCWNvbnN0IG5hdiA9IHRoaXMuYnV0dG9uTmF2TWFwLmdldChidXR0b24pOwoJCWNvbnN0IGl0ZW1zID0gdGhpcy5hcmVhRm9jdXNNYXAuZ2V0KG5hdik7CgkJaWYgKCFpdGVtcz8ubGVuZ3RoKSByZXR1cm47CgoJCWNvbnN0IGZvY3VzRmlyc3RJdGVtID0gKCkgPT4gewoJCQlpdGVtc1swXS5mb2N1cygpOwoJCX07CgoJCWNvbnN0IHJlbW92ZUxpc3RlbmVycyA9ICgpID0+IHsKCQkJbmF2LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RyYW5zaXRpb25lbmQnLCBmb2N1c0ZpcnN0SXRlbSk7CgkJCW5hdi5yZW1vdmVFdmVudExpc3RlbmVyKCdhbmltYXRpb25lbmQnLCBmb2N1c0ZpcnN0SXRlbSk7CgkJfTsKCgkJbmF2LmFkZEV2ZW50TGlzdGVuZXIoJ3RyYW5zaXRpb25lbmQnLCBmb2N1c0ZpcnN0SXRlbSwgeyBvbmNlOiB0cnVlIH0pOwoJCW5hdi5hZGRFdmVudExpc3RlbmVyKCdhbmltYXRpb25lbmQnLCBmb2N1c0ZpcnN0SXRlbSwgeyBvbmNlOiB0cnVlIH0pOwoKCQlzZXRUaW1lb3V0KCgpID0+IHsKCQkJcmVtb3ZlTGlzdGVuZXJzKCk7CgkJCWZvY3VzRmlyc3RJdGVtKCk7CgkJfSwgMTAwKTsKCX0KCgljbG9zZVNpYmxpbmdOYXYoY3VycmVudEJ1dHRvbikgewoJCWZvciAoY29uc3QgW2J1dHRvbl0gb2YgdGhpcy5idXR0b25OYXZNYXAuZW50cmllcygpKSB7CgkJCWlmICgKCQkJCWJ1dHRvbiAhPT0gY3VycmVudEJ1dHRvbiAmJgoJCQkJYnV0dG9uLmNsb3Nlc3QoJ3VsJykgPT09IGN1cnJlbnRCdXR0b24uY2xvc2VzdCgndWwnKSAmJgoJCQkJYnV0dG9uLmdldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcpID09PSAndHJ1ZScKCQkJKSB7CgkJCQl0aGlzLnNldEFyZWFOYXZTdGF0ZShidXR0b24sIGZhbHNlKTsKCQkJfQoJCX0KCX0KCgljbG9zZUFsbE5hdnMoKSB7CgkJZm9yIChjb25zdCBbYnV0dG9uXSBvZiB0aGlzLmJ1dHRvbk5hdk1hcC5lbnRyaWVzKCkpIHsKCQkJdGhpcy5zZXRBcmVhTmF2U3RhdGUoYnV0dG9uLCBmYWxzZSk7CgkJfQoJfQoKCWNsb3NlTmF2QW5kUmV0dXJuRm9jdXMoYXJlYSkgewogICAgICBjb25zb2xlLmxvZygnY2xvc2VOYXZBbmRSZXR1cm5Gb2N1cyBjYWxsZWQnKQoJCWNvbnN0IGJ1dHRvbiA9IHRoaXMuYXJlYVRyaWdnZXJNYXAuZ2V0KGFyZWEpOwoJCWlmIChidXR0b24pIHsKCQkJdGhpcy5zZXRBcmVhTmF2U3RhdGUoYnV0dG9uLCBmYWxzZSk7CgkJCWJ1dHRvbi5mb2N1cygpOwoJCX0KCX0KCglmb2N1c0ZpcnN0Q2hpbGROYXZJdGVtSWZPcGVuKGJ1dHRvbikgewoJCWNvbnN0IG5hdiA9IHRoaXMuZ2V0T3Blbk5hdkZyb21CdXR0b24oYnV0dG9uKTsKCQlpZiAoIW5hdikgcmV0dXJuIHsgZm9jdXNlZDogZmFsc2UsIHR5cGU6IG51bGwgfTsKCgkJY29uc3QgaXRlbXMgPSB0aGlzLmFyZWFGb2N1c01hcC5nZXQobmF2KTsKCQlpZiAoaXRlbXM/Lmxlbmd0aCkgaXRlbXNbMF0uZm9jdXMoKTsKCgkJY29uc3QgdHlwZSA9IG5hdi5jbGFzc0xpc3QuY29udGFpbnMoJ2V0Y2gtbmF2X19mbHlvdXQnKQoJCQk/ICdmbHlvdXQnCgkJCTogJ2Ryb3Bkb3duJzsKCQlyZXR1cm4geyBmb2N1c2VkOiB0cnVlLCB0eXBlIH07Cgl9CgoJbW92ZUZvY3VzKGl0ZW1zLCBkaXJlY3Rpb24pIHsKCQljb25zdCBhY3RpdmUgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50OwoJCWxldCBpbmRleCA9IGl0ZW1zLmluZGV4T2YoYWN0aXZlKTsKCQlpZiAoaW5kZXggPT09IC0xKSBpbmRleCA9IDA7CgoJCWxldCBuZXh0ID0gaW5kZXggKyBkaXJlY3Rpb247CgkJaWYgKG5leHQgPj0gaXRlbXMubGVuZ3RoKSBuZXh0ID0gMDsKCQlpZiAobmV4dCA8IDApIG5leHQgPSBpdGVtcy5sZW5ndGggLSAxOwoKCQlpdGVtc1tuZXh0XT8uZm9jdXM/LigpOwoJfQoKCWhhbmRsZUZvY3VzSW4oZSkgewoJCWNvbnN0IG5ld2x5Rm9jdXNlZEVsZW1lbnQgPSBlLnRhcmdldDsKCQljb25zdCBpc1RvcExldmVsSXRlbSA9CgkJCXRoaXMudG9wTGV2ZWxOYXZJdGVtcy5pbmNsdWRlcyhuZXdseUZvY3VzZWRFbGVtZW50KTsKCgkJY29uc3QgaXNJbk9wZW5OYXYgPSBbLi4udGhpcy5idXR0b25OYXZNYXAuZW50cmllcygpXS5zb21lKAoJCQkoW2J0biwgbmF2XSkgPT4gewoJCQkJY29uc3QgaXNCdXR0b25PcGVuID0KCQkJCQlidG4uZ2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJykgPT09ICd0cnVlJzsKCQkJCWNvbnN0IGlzV2l0aGluTmF2ID0KCQkJCQluYXYuY29udGFpbnMobmV3bHlGb2N1c2VkRWxlbWVudCkgfHwKCQkJCQlidG4gPT09IG5ld2x5Rm9jdXNlZEVsZW1lbnQ7CgoJCQkJcmV0dXJuIGlzQnV0dG9uT3BlbiAmJiBpc1dpdGhpbk5hdjsKCQkJfQoJCSk7CgoJCWlmIChpc1RvcExldmVsSXRlbSAmJiAhaXNJbk9wZW5OYXYpIHsKCQkJdGhpcy5jbG9zZUFsbE5hdnMoKTsKCQl9Cgl9CgoJYXR0YWNoRXZlbnRMaXN0ZW5lcnMoKSB7CgkJdGhpcy5hdHRhY2hDbGlja0V2ZW50TGlzdGVuZXJzKCk7CgkJdGhpcy5hdHRhY2hIb3ZlckV2ZW50TGlzdGVuZXJzKCk7CgoJCXRoaXMubmF2RWwuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChlKSA9PiB0aGlzLmhhbmRsZUtleURvd24oZSkpOwoJCXRoaXMubmF2RWwuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNpbicsIChlKSA9PiB0aGlzLmhhbmRsZUZvY3VzSW4oZSkpOwoKCQlpZiAoWydjbGljaycsICdjbGljay1zdWItaG92ZXInXS5pbmNsdWRlcyh0aGlzLmludGVyYWN0aW9uTW9kZSkpIHsKCQkJdGhpcy5hdHRhY2hDbGlja091dHNpZGVMaXN0ZW5lcigpOwoJCX0KCX0KCglhdHRhY2hDbGlja0V2ZW50TGlzdGVuZXJzKCkgewoJCVsuLi50aGlzLmRyb3Bkb3duQnV0dG9ucywgLi4udGhpcy5mbHlvdXRCdXR0b25zXS5mb3JFYWNoKChidG4pID0+CgkJCWJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMudG9nZ2xlQXJlYU5hdihidG4pKQoJCSk7Cgl9CgoJYXR0YWNoSG92ZXJFdmVudExpc3RlbmVycygpIHsKCQlpZiAodGhpcy5pc1RvdWNoRGV2aWNlIHx8IHRoaXMuaW50ZXJhY3Rpb25Nb2RlID09PSAnY2xpY2snKSByZXR1cm47CgoJCWNvbnN0IGJ1dHRvbnNUb0hvdmVyID0KCQkJdGhpcy5pbnRlcmFjdGlvbk1vZGUgPT09ICdjbGljay1zdWItaG92ZXInCgkJCQk/IHRoaXMuZmx5b3V0QnV0dG9ucwoJCQkJOiBbLi4udGhpcy5kcm9wZG93bkJ1dHRvbnMsIC4uLnRoaXMuZmx5b3V0QnV0dG9uc107CgoJCWJ1dHRvbnNUb0hvdmVyLmZvckVhY2goKGJ1dHRvbikgPT4gewoJCQljb25zdCBuYXYgPSB0aGlzLmJ1dHRvbk5hdk1hcC5nZXQoYnV0dG9uKTsKCQkJaWYgKCFuYXYpIHJldHVybjsKCgkJCWNvbnN0IGNsZWFyID0gKCkgPT4gdGhpcy5jbGVhckhvdmVyVGltZW91dChidXR0b24pOwoJCQljb25zdCBzY2hlZHVsZSA9ICgpID0+IHRoaXMuc2NoZWR1bGVIb3ZlclRpbWVvdXQoYnV0dG9uLCBuYXYpOwoKCQkJYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoKSA9PiB7CgkJCQljb25zdCBpc09wZW4gPSBidXR0b24uZ2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJykgPT09ICd0cnVlJzsKCQkJCWlmICghaXNPcGVuKSB0aGlzLnNldEFyZWFOYXZTdGF0ZShidXR0b24sIHRydWUpOwoJCQl9KTsKCgkJCWJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgc2NoZWR1bGUpOwoJCQluYXYuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHNjaGVkdWxlKTsKCQkJbmF2LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBjbGVhcik7CgkJfSk7Cgl9CgoJYXR0YWNoQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKSB7CgkJdGhpcy5fb25DbGlja091dHNpZGUgPSAoZSkgPT4gewoJCQlpZiAoIXRoaXMubmF2RWwuY29udGFpbnMoZS50YXJnZXQpKSB7CgkJCQl0aGlzLmNsb3NlQWxsTmF2cygpOwoJCQl9CgkJfTsKCgkJZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9vbkNsaWNrT3V0c2lkZSk7Cgl9CgoJc2NoZWR1bGVIb3ZlclRpbWVvdXQoYnV0dG9uLCBuYXYpIHsKCQl0aGlzLmNsZWFySG92ZXJUaW1lb3V0KGJ1dHRvbik7CgoJCWNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHsKCQkJY29uc3QgaXNIb3ZlcmluZyA9CgkJCQlidXR0b24ubWF0Y2hlcygnOmhvdmVyJykgfHwKCQkJCW5hdi5tYXRjaGVzKCc6aG92ZXInKSB8fAoJCQkJbmF2LmNvbnRhaW5zKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJzpob3ZlcicpKTsKCgkJCWlmICghaXNIb3ZlcmluZykgdGhpcy5zZXRBcmVhTmF2U3RhdGUoYnV0dG9uLCBmYWxzZSk7CgkJCXRoaXMuaG92ZXJUaW1lb3V0cy5kZWxldGUoYnV0dG9uKTsKCQl9LCAyNSk7CgoJCXRoaXMuaG92ZXJUaW1lb3V0cy5zZXQoYnV0dG9uLCB0aW1lb3V0KTsKCX0KCgljbGVhckhvdmVyVGltZW91dChidXR0b24pIHsKCQlpZiAodGhpcy5ob3ZlclRpbWVvdXRzLmhhcyhidXR0b24pKSB7CgkJCWNsZWFyVGltZW91dCh0aGlzLmhvdmVyVGltZW91dHMuZ2V0KGJ1dHRvbikpOwoJCQl0aGlzLmhvdmVyVGltZW91dHMuZGVsZXRlKGJ1dHRvbik7CgkJfQoJfQoKCWhhbmRsZUtleURvd24oZSkgewoJCWNvbnN0IHsga2V5LCB0YXJnZXQgfSA9IGU7CgkJY29uc3QgeyB0eXBlLCBpdGVtcywgYXJlYSB9ID0gdGhpcy5nZXRDb250ZXh0Rm9yVGFyZ2V0KHRhcmdldCk7CgoJCXN3aXRjaCAoa2V5KSB7CgkJCWNhc2UgJ0Fycm93UmlnaHQnOgoJCQljYXNlICdBcnJvd0xlZnQnOgoJCQljYXNlICdBcnJvd1VwJzoKCQkJY2FzZSAnQXJyb3dEb3duJzoKCQkJCWUucHJldmVudERlZmF1bHQoKTsKCQkJCXRoaXMuaGFuZGxlRGlyZWN0aW9uYWxBcnJvdyhrZXksIHR5cGUsIGl0ZW1zLCB0YXJnZXQsIGFyZWEpOwoJCQkJYnJlYWs7CgkJCWNhc2UgJ1RhYic6CgkJCQlpZiAoZS5zaGlmdEtleSAmJiBhcmVhICYmIGl0ZW1zLmluZGV4T2YodGFyZ2V0KSA9PT0gMCkgewoJCQkJCWUucHJldmVudERlZmF1bHQoKTsKCQkJCQl0aGlzLmNsb3NlTmF2QW5kUmV0dXJuRm9jdXMoYXJlYSk7CgkJCQl9CgkJCQlicmVhazsKCQkJY2FzZSAnRW50ZXInOgoJCQljYXNlICcgJzoKCQkJCWlmICh0aGlzLmJ1dHRvbk5hdk1hcC5oYXModGFyZ2V0KSkgewoJCQkJCWUucHJldmVudERlZmF1bHQoKTsKCQkJCQl0aGlzLnRvZ2dsZUFyZWFOYXYodGFyZ2V0KTsKCQkJCX0KCQkJCWJyZWFrOwoJCQljYXNlICdFc2NhcGUnOgoJCQkJZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKCQkJCXRoaXMuaGFuZGxlRXNjYXBlS2V5KGFyZWEpOwoJCQkJYnJlYWs7CgkJfQoJfQoKCWhhbmRsZUVzY2FwZUtleShhcmVhKSB7CgkJaWYgKGFyZWEpIHsKICAgICAgICAgIGNvbnNvbGUubG9nKCdhcmVhIGlzJywgYXJlYSkKCQkJdGhpcy5jbG9zZU5hdkFuZFJldHVybkZvY3VzKGFyZWEpOwoJCX0gZWxzZSB7CiAgICAgICAgICBjb25zb2xlLmxvZygnYXJlYSBzaG91bGQgbm90IGJlJykKCQkJdGhpcy5jbG9zZUFsbE5hdnMoKTsKCQl9Cgl9CgoJaGFuZGxlRGlyZWN0aW9uYWxBcnJvdyhrZXksIHR5cGUsIGl0ZW1zLCB0YXJnZXQsIGFyZWEpIHsKCQljb25zdCBpbmRleCA9IGl0ZW1zLmluZGV4T2YodGFyZ2V0KTsKCQljb25zdCBpc0ZpcnN0ID0gaW5kZXggPT09IDA7CgoJCXN3aXRjaCAoa2V5KSB7CgkJCWNhc2UgJ0Fycm93UmlnaHQnOgoJCQkJaWYgKHR5cGUgPT09ICd0b3AtbGV2ZWwnIHx8IHR5cGUgPT09ICdmbHlvdXQnKSB7CgkJCQkJdGhpcy5tb3ZlRm9jdXMoaXRlbXMsIDEpOwoJCQkJfSBlbHNlIGlmICh0eXBlID09PSAnZHJvcGRvd24nKSB7CgkJCQkJY29uc3QgeyBmb2N1c2VkLCB0eXBlOiBuZXh0VHlwZSB9ID0KCQkJCQkJdGhpcy5mb2N1c0ZpcnN0Q2hpbGROYXZJdGVtSWZPcGVuKHRhcmdldCk7CgkJCQkJaWYgKCFmb2N1c2VkIHx8IG5leHRUeXBlICE9PSAnZmx5b3V0JykKCQkJCQkJdGhpcy5tb3ZlRm9jdXMoaXRlbXMsIDEpOwoJCQkJfQoJCQkJYnJlYWs7CgkJCWNhc2UgJ0Fycm93TGVmdCc6CgkJCQlpZiAodHlwZSA9PT0gJ3RvcC1sZXZlbCcgfHwgdHlwZSA9PT0gJ2Ryb3Bkb3duJykgewoJCQkJCXRoaXMubW92ZUZvY3VzKGl0ZW1zLCAtMSk7CgkJCQl9IGVsc2UgaWYgKHR5cGUgPT09ICdmbHlvdXQnKSB7CgkJCQkJaWYgKCFpc0ZpcnN0KSB0aGlzLm1vdmVGb2N1cyhpdGVtcywgLTEpOwoJCQkJCWVsc2UgdGhpcy5jbG9zZU5hdkFuZFJldHVybkZvY3VzKGFyZWEpOwoJCQkJfQoJCQkJYnJlYWs7CgkJCWNhc2UgJ0Fycm93VXAnOgoJCQkJaWYgKHR5cGUgPT09ICdkcm9wZG93bicpIHsKCQkJCQlpZiAoIWlzRmlyc3QpIHRoaXMubW92ZUZvY3VzKGl0ZW1zLCAtMSk7CgkJCQkJZWxzZSB0aGlzLmNsb3NlTmF2QW5kUmV0dXJuRm9jdXMoYXJlYSk7CgkJCQl9IGVsc2UgaWYgKHR5cGUgPT09ICdmbHlvdXQnKSB7CgkJCQkJdGhpcy5tb3ZlRm9jdXMoaXRlbXMsIC0xKTsKCQkJCX0KCQkJCWJyZWFrOwoJCQljYXNlICdBcnJvd0Rvd24nOgoJCQkJaWYgKHR5cGUgPT09ICd0b3AtbGV2ZWwnKSB7CgkJCQkJdGhpcy5mb2N1c0ZpcnN0Q2hpbGROYXZJdGVtSWZPcGVuKHRhcmdldCk7CgkJCQl9IGVsc2UgewoJCQkJCXRoaXMubW92ZUZvY3VzKGl0ZW1zLCAxKTsKCQkJCX0KCQkJCWJyZWFrOwoJCX0KCX0KfQoKZnVuY3Rpb24gaW5zdGFudGlhdGVOYXZDbGFzcyhvcHRpb25zID0ge30pIHsKCS8vIGV0Y2ggbmF2IGVsZW1lbnQgKCBpZiB5b3UgY2hhbmdlZCB0aGUgZGF0YS1ldGNoLW5hdiBhdHRyaWJ1dGUgdmFsdWUgaW4gaHRtbCwgaXQgbmVlZCB0byBiZSByZWZsZWN0ZWQgaGVyZSBhcyB3ZWxsKQoJY29uc3QgbmF2RWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1ldGNoLW5hdj0ibWFpbiJdJyk7CgoJaWYgKCFuYXZFbCkgewoJCWNvbnNvbGUuZXJyb3IoCgkJCSdDYW5ub3QgZmluZCBOYXYgZWxlbWVudCwgaXMgdGhlIFtkYXRhLWV0Y2gtbmF2PSIiXSBhdHRyaWJ1dGUgY29ycmVjdD8nCgkJKTsKCQlyZXR1cm47Cgl9CgoJLy8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoZSBuYXYgc2NyaXB0Cgljb25zdCBuYXZJbnN0YW5jZSA9IG5ldyBFdGNoTmF2U2NyaXB0KG5hdkVsLCBvcHRpb25zKTsKCgkvLyB1c2UgZXRjaEVsZW1lbnRzIHdpbmRvdyBvYmplY3Qgb3IgY3JlYXRlIGEgbmV3IG9uZSBpZiBkb2VzbnQgZXhpc3QKCXdpbmRvdy5ldGNoRWxlbWVudHMgPSB3aW5kb3cuZXRjaEVsZW1lbnRzIHx8IFtdOwoJLy8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIG5hdkluc3RhbmNlIG9uIHRoZSB3aW5kb3cKCXdpbmRvdy5ldGNoRWxlbWVudHMuZXRjaE5hdiA9IG5hdkluc3RhbmNlOwp9CgppbnN0YW50aWF0ZU5hdkNsYXNzKHsKCWFyaWFDdXJyZW50UGFnZTogdHJ1ZQp9KTs="></script><script id="etch-script-_pssl" type="module" defer src="data:text/javascript;base64,Y2xhc3MgRXRjaEJ1cmdlclNjcmlwdCB7Cgljb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHsKCQl0aGlzLmJ1dHRvbiA9IG9wdGlvbnMuYnV0dG9uOwoJCXRoaXMudGFyZ2V0ID0gdGhpcy5yZXNvbHZlVGFyZ2V0KG9wdGlvbnMudGFyZ2V0KTsKCQl0aGlzLnNlbGZBcmlhRXhwYW5kZWQgPSBvcHRpb25zLnNlbGZBcmlhRXhwYW5kZWQgPz8gZmFsc2U7CgoJCWNvbnN0IHRhcmdldENvbmZpZyA9IG9wdGlvbnMudGFyZ2V0T3B0aW9ucyA/PyB7fTsKCQl0aGlzLnRhcmdldENsYXNzID0gdGFyZ2V0Q29uZmlnLmNsYXNzID8/IG51bGw7CgkJdGhpcy50YXJnZXRBcmlhRXhwYW5kZWQgPSB0YXJnZXRDb25maWcuYXJpYUV4cGFuZGVkID8/IGZhbHNlOwoKCQl0aGlzLm9uVG9nZ2xlID0KCQkJdHlwZW9mIG9wdGlvbnMub25Ub2dnbGUgPT09ICdmdW5jdGlvbicgPyBvcHRpb25zLm9uVG9nZ2xlIDogbnVsbDsKCQl0aGlzLm9uQ2xvc2UgPQoJCQl0eXBlb2Ygb3B0aW9ucy5vbkNsb3NlID09PSAnZnVuY3Rpb24nID8gb3B0aW9ucy5vbkNsb3NlIDogbnVsbDsKCgkJdGhpcy5mb2N1c2FibGVFbGVtZW50cyA9IFtdOwoJCXRoaXMua2V5ZG93bkhhbmRsZXIgPSAoZSkgPT4gdGhpcy5oYW5kbGVLZXlEb3duKGUpOwoJCXRoaXMuZm9jdXNUcmFwSGFuZGxlciA9IChlKSA9PiB0aGlzLmhhbmRsZUZvY3VzVHJhcChlKTsKCgkJdGhpcy5pbml0KCk7Cgl9CgoJaW5pdCgpIHsKCQlpZiAoIXRoaXMuYnV0dG9uKSByZXR1cm4gY29uc29sZS5lcnJvcignQ2Fubm90IGZpbmQgQnVyZ2VyIGJ1dHRvbicpOwoJCXRoaXMuYXR0YWNoRXZlbnRMaXN0ZW5lcnMoKTsKCX0KCglpc0V0Y2hFZGl0b3IoKSB7CgkJY29uc3QgaXNJbkVkaXRvciA9CgkJCXdpbmRvdyAhPT0gd2luZG93LnRvcCAmJiBmcmFtZUVsZW1lbnQuaWQgPT09ICdldGNoLWlmcmFtZSc7CgkJcmV0dXJuIGlzSW5FZGl0b3I7Cgl9CgoJaXNNZW51T3BlbigpIHsKCQlpZiAodGhpcy5zZWxmQXJpYUV4cGFuZGVkKSB7CgkJCXJldHVybiB0aGlzLmJ1dHRvbi5nZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnKSA9PT0gJ3RydWUnOwoJCX0KCQlyZXR1cm4gZmFsc2U7Cgl9CgoJcmVzb2x2ZVRhcmdldCh0YXJnZXQpIHsKCQlpZiAodGFyZ2V0ID09IG51bGwpIHJldHVybiBudWxsOwoKCQlpZiAodGhpcy5pc0V0Y2hFZGl0b3IoKSkgcmV0dXJuIG51bGw7CgoJCWlmICh0eXBlb2YgdGFyZ2V0ID09PSAnc3RyaW5nJykgewoJCQljb25zdCBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0YXJnZXQpOwoJCQlpZiAoIWVsZW1lbnQpIHJldHVybiBjb25zb2xlLmVycm9yKCdDYW5ub3QgZmluZCB0YXJnZXQgZWxlbWVudCcpOwoJCQlyZXR1cm4gZWxlbWVudDsKCQl9CgoJCWlmICh0YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkgcmV0dXJuIHRhcmdldDsKCgkJY29uc29sZS5lcnJvcigKCQkJJ0ludmFsaWQgdGFyZ2V0IOKAlCBtdXN0IGJlIGEgc2VsZWN0b3Igc3RyaW5nIG9yIEhUTUxFbGVtZW50JwoJCSk7CgkJcmV0dXJuIG51bGw7Cgl9CgoJYXR0YWNoRXZlbnRMaXN0ZW5lcnMoKSB7CgkJdGhpcy5idXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLmhhbmRsZUNsaWNrKCkpOwoJfQoKCWhhbmRsZUNsaWNrKCkgewoJCWNvbnN0IG5ld1N0YXRlID0gdGhpcy5nZXRUb2dnbGVTdGF0ZSgpOwoJCXRoaXMudXBkYXRlQnVyZ2VyU3RhdGUobmV3U3RhdGUpOwoJCXRoaXMudXBkYXRlVGFyZ2V0U3RhdGUobmV3U3RhdGUpOwoKCQlpZiAobmV3U3RhdGUpIHsKCQkJdGhpcy5zZXRGb2N1c1RyYXAoKTsKCQl9IGVsc2UgewoJCQl0aGlzLnJlbW92ZUZvY3VzVHJhcCgpOwoJCX0KCgkJdHJ5IHsKCQkJaWYgKHRoaXMub25Ub2dnbGUpIHRoaXMub25Ub2dnbGUobmV3U3RhdGUpOwoJCQlpZiAoIW5ld1N0YXRlICYmIHRoaXMub25DbG9zZSkgdGhpcy5vbkNsb3NlKCk7CgkJfSBjYXRjaCAoZXJyb3IpIHsKCQkJY29uc29sZS5lcnJvcignRXJyb3Igb24gY2FsbGJhY2s6JywgZXJyb3IpOwoJCX0KCX0KCgljbG9zZU1lbnUoKSB7CiAgICAgIGNvbnNvbGUubG9nKCdidXJnZXIgY2xvc2VNZW51IGNhbGxlZCcpCgkJdGhpcy51cGRhdGVCdXJnZXJTdGF0ZShmYWxzZSk7CgkJdGhpcy51cGRhdGVUYXJnZXRTdGF0ZShmYWxzZSk7CgkJdGhpcy5yZW1vdmVGb2N1c1RyYXAoKTsKCQl0aGlzLmJ1dHRvbi5mb2N1cygpOwoKCQl0cnkgewoJCQlpZiAodGhpcy5vbkNsb3NlKSB0aGlzLm9uQ2xvc2UoKTsKCQl9IGNhdGNoIChlcnJvcikgewoJCQljb25zb2xlLmVycm9yKCdFcnJvciBvbiBjYWxsYmFjazonLCBlcnJvcik7CgkJfQoJfQoKCWdldFRvZ2dsZVN0YXRlKCkgewoJCWlmICh0aGlzLnNlbGZBcmlhRXhwYW5kZWQpIHsKCQkJY29uc3QgaXNPcGVuID0gdGhpcy5idXR0b24uZ2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJykgPT09ICd0cnVlJzsKCQkJcmV0dXJuICFpc09wZW47CgkJfQoKCQlyZXR1cm4gZmFsc2U7Cgl9CgoJZ2V0QXJpYUxhYmVsKCkgewoJCXJldHVybiB0aGlzLmJ1dHRvbi5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnKSB8fCAnJzsKCX0KCglzZXRGb2N1c2FibGVFbGVtZW50cygpIHsKCQl0aGlzLmZvY3VzYWJsZUVsZW1lbnRzID0gQXJyYXkuZnJvbSgKCQkJdGhpcy50YXJnZXQucXVlcnlTZWxlY3RvckFsbCgKCQkJCSdhLCBidXR0b24sIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD0iLTEiXSknCgkJCSkKCQkpLmZpbHRlcigKCQkJKGVsKSA9PgoJCQkJIWVsLmRpc2FibGVkICYmCgkJCQllbC5vZmZzZXRQYXJlbnQgIT09IG51bGwgJiYKCQkJCWdldENvbXB1dGVkU3R5bGUoZWwpLnZpc2liaWxpdHkgIT09ICdoaWRkZW4nCgkJKTsKCX0KCglzZXRGb2N1c1RyYXAoKSB7CgkJaWYgKCF0aGlzLnRhcmdldCkgcmV0dXJuOwoKCQl0aGlzLnNldEZvY3VzYWJsZUVsZW1lbnRzKCk7CgoJCXRoaXMudGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLmtleWRvd25IYW5kbGVyLCB0cnVlKTsKCQlkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5mb2N1c1RyYXBIYW5kbGVyLCB0cnVlKTsKCgkJdGhpcy5mb2N1c2FibGVFbGVtZW50c1swXT8uZm9jdXMoKTsKCX0KCglyZW1vdmVGb2N1c1RyYXAoKSB7CgkJaWYgKHRoaXMudGFyZ2V0KSB7CgkJCXRoaXMudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoCgkJCQkna2V5ZG93bicsCgkJCQl0aGlzLmtleWRvd25IYW5kbGVyLAoJCQkJdHJ1ZQoJCQkpOwoJCX0KCQlkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5mb2N1c1RyYXBIYW5kbGVyLCB0cnVlKTsKCQl0aGlzLmZvY3VzYWJsZUVsZW1lbnRzID0gW107Cgl9CgoJdXBkYXRlQXJpYUxhYmVsKG5ld1N0YXRlKSB7CgkJY29uc3QgYXJpYUxhYmVsID0gdGhpcy5nZXRBcmlhTGFiZWwoKTsKCQlpZiAoIWFyaWFMYWJlbCkgcmV0dXJuOwoKCQljb25zdCBtYXRjaCA9IGFyaWFMYWJlbC5tYXRjaCgvXlxzKihbXlxzXSspKC4qKSQvKTsKCQljb25zdCByZXN0ID0gbWF0Y2hbMl07CgkJY29uc3QgYWN0aW9uID0gbmV3U3RhdGUgPyAnQ2xvc2UnIDogJ09wZW4nOwoKCQl0aGlzLmJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCBgJHthY3Rpb259JHtyZXN0fWApOwoJfQoKCXVwZGF0ZUJ1cmdlclN0YXRlKG5ld1N0YXRlKSB7CgkJaWYgKHRoaXMuc2VsZkFyaWFFeHBhbmRlZCkgewoJCQl0aGlzLmJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCBTdHJpbmcobmV3U3RhdGUpKTsKCQl9CgkJdGhpcy51cGRhdGVBcmlhTGFiZWwobmV3U3RhdGUpOwoJfQoKCXVwZGF0ZVRhcmdldFN0YXRlKG5ld1N0YXRlKSB7CgkJaWYgKHRoaXMudGFyZ2V0ID09IG51bGwpIHJldHVybjsKCQlpZiAoIXRoaXMudGFyZ2V0KSB7CgkJCWNvbnNvbGUuZXJyb3IoJ0Nhbm5vdCBmaW5kIHRhcmdldCBlbGVtZW50Jyk7CgkJCXJldHVybjsKCQl9CgoJCWlmICh0aGlzLnRhcmdldENsYXNzKSB7CgkJCXRoaXMudGFyZ2V0LmNsYXNzTGlzdC50b2dnbGUodGhpcy50YXJnZXRDbGFzcywgbmV3U3RhdGUpOwoJCX0KCgkJaWYgKHRoaXMudGFyZ2V0QXJpYUV4cGFuZGVkKSB7CgkJCXRoaXMudGFyZ2V0LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsIFN0cmluZyhuZXdTdGF0ZSkpOwoJCX0KCX0KCgloYW5kbGVLZXlEb3duKGUpIHsKCQljb25zdCB7IGtleSB9ID0gZTsKCgkJaWYgKGtleSA9PT0gJ0VzY2FwZScgJiYgdGhpcy5pc01lbnVPcGVuKCkpIHsKICAgICAgICAgICAgIGlmICh0aGlzLmhhc09wZW5TdWJtZW51cygpKSByZXR1cm47CgkJCWUucHJldmVudERlZmF1bHQoKTsKCQkJdGhpcy5jbG9zZU1lbnUoKTsKCQl9Cgl9CgoJaGFuZGxlRm9jdXNUcmFwKGUpIHsKCQljb25zdCB7IGtleSB9ID0gZTsKCgkJaWYgKAoJCQkhdGhpcy5pc01lbnVPcGVuKCkgfHwKCQkJa2V5ICE9PSAnVGFiJyB8fAoJCQkhdGhpcy5mb2N1c2FibGVFbGVtZW50cy5sZW5ndGgKCQkpCgkJCXJldHVybjsKCgkJY29uc3QgZm9jdXNlZEVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50OwoJCWNvbnN0IGZvY3VzZWRJbmRleCA9IHRoaXMuZm9jdXNhYmxlRWxlbWVudHMuaW5kZXhPZihmb2N1c2VkRWxlbWVudCk7CgoJCWlmIChrZXkuc2hpZnRLZXkpIHsKCQkJaWYgKGZvY3VzZWRJbmRleCA9PT0gMCkgewoJCQkJZS5wcmV2ZW50RGVmYXVsdCgpOwoJCQkJdGhpcy5mb2N1c2FibGVFbGVtZW50c1sKCQkJCQl0aGlzLmZvY3VzYWJsZUVsZW1lbnRzLmxlbmd0aCAtIDEKCQkJCV0/LmZvY3VzKCk7CgkJCX0KCQl9IGVsc2UgewoJCQlpZiAoZm9jdXNlZEluZGV4ID09PSB0aGlzLmZvY3VzYWJsZUVsZW1lbnRzLmxlbmd0aCAtIDEpIHsKCQkJCWUucHJldmVudERlZmF1bHQoKTsKCQkJCXRoaXMuZm9jdXNhYmxlRWxlbWVudHNbMF0/LmZvY3VzKCk7CgkJCX0KCQl9Cgl9CgogICAgaGFzT3BlblN1Ym1lbnVzKCkgewogICAgICBpZiAoIXRoaXMudGFyZ2V0KSByZXR1cm4gZmFsc2U7CiAgICAgIGNvbnN0IG9wZW5TdWJtZW51cyA9IHRoaXMudGFyZ2V0LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAgICAgICAnLmV0Y2gtbmF2X19idXR0b24tLWRyb3Bkb3duLXRvZ2dsZVthcmlhLWV4cGFuZGVkPSJ0cnVlIl0sIC5ldGNoLW5hdl9fYnV0dG9uLS1mbHlvdXQtdG9nZ2xlW2FyaWEtZXhwYW5kZWQ9InRydWUiXScKICAgICAgKTsKICAgICAgcmV0dXJuIG9wZW5TdWJtZW51cy5sZW5ndGggPiAwOwogICAgfQp9CgovLyBldGNOYXYgcGFyYW1ldGVyIGlzIG5vdCBuZWVkZWQgaWYgdGhlIGJ1cmdlciBpcyBub3QgdG8gd29yayB3aXRoIHRoZSBuYXYgY29tcG9uZW50CmZ1bmN0aW9uIGluc3RhbnRpYXRlQnVyZ2VyQ2xhc3MoZXRjaE5hdiwgb25DbG9zZSkgewoJLy8gZ2V0IGV0Y2ggYnVyZ2VyIGVsZW1lbnQKCWNvbnN0IGJ1cmdlckJ0biA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ldGNoLWJ1cmdlcicpOwoJLy8gY3JlYXRlIGV0Y2ggYnVyZ2VyIGluc3RhbmNlIHdpdGggb3B0aW9ucwoJY29uc3QgYnVyZ2VySW5zdGFuY2UgPSBuZXcgRXRjaEJ1cmdlclNjcmlwdCh7CgkJYnV0dG9uOiBidXJnZXJCdG4sCgkJdGFyZ2V0OiBldGNoTmF2LAoJCXNlbGZBcmlhRXhwYW5kZWQ6IHRydWUsCgkJdGFyZ2V0T3B0aW9uczogewoJCQlhcmlhRXhwYW5kZWQ6IHRydWUKCQl9LAoJCW9uQ2xvc2UKCX0pOwoKCS8vIHVzZSBldGNoRWxlbWVudHMgd2luZG93IG9iamVjdCBvciBjcmVhdGUgYSBuZXcgb25lIGlmIGl0IGRvZXNuJ3QgZXhpc3QKCXdpbmRvdy5ldGNoRWxlbWVudHMgPSB3aW5kb3cuZXRjaEVsZW1lbnRzIHx8IFtdOwoJLy8gYXNzaWduIGV0Y2ggYnVyZ2VyIGluc3RhbmNlIHRvIHRoZSB3aW5kb3cgb2JqZWN0Cgl3aW5kb3cuZXRjaEVsZW1lbnRzLmV0Y2hCdXJnZXIgPSBidXJnZXJJbnN0YW5jZTsKfQoKLyoqCiAqIENoZWNrIGlmIHRoZSBuYXYgZWxlbWVudCBleGlzdHMKICogSWYgdGhlIGJ1cmdlciBpcyBub3QgdG8gd29yayB3aXRoIHRoZSBuYXYgY29tcG9uZW50LCB0aGVuIHRoZSBibG9jayBvZiBjb2RlIGJlbGxvdyBjYW4gYmUgcmVtb3ZlZAogKi8KY29uc3QgZXRjaE5hdiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWV0Y2gtbmF2PSJtYWluIl0nKTsKaWYgKCFldGNoTmF2KSB7Cgljb25zb2xlLmVycm9yKCdCdXJnZXIgY2Fubm90IGZpbmQgTmF2IGVsZW1lbnQnKTsKfSBlbHNlIHsKCWluc3RhbnRpYXRlQnVyZ2VyQ2xhc3MoZXRjaE5hdiwgY2xvc2VFdGNoTmF2KTsKfQoKLyoqCiAqIFRoaXMgZnVuY3Rpb24gaXMgY3JlYXRlZCBzcGVjaWZpY2FsbHkgdG8gd29yayB3aXRoIHRoZSBuYXYgY29tcG9uZW50IGFuZCBjYWxsIHRoZSBjbG9zZUFsbE5hdnMgbWV0aG9kIHRvIGNsb3NlIGFsbCB0aGUgbmF2IGFyZWFzICggZHJvcGRvd25zIGFuZCBmbHlvdXRzICkKICovCmZ1bmN0aW9uIGNsb3NlRXRjaE5hdigpIHsKCXdpbmRvdy5ldGNoRWxlbWVudHM/LmV0Y2hOYXY/LmNsb3NlQWxsTmF2cygpOwp9CgovKioKICogSWYgdGhlIGJ1cmdlciBpcyBub3QgdG8gdXNlZCB3aXRoIHRoZSBuYXYgY29tcG9uZW50IHRoZW4gdGhlIGNvZGUgYmVsbG93IGNhbiBiZSB1bmNvbW1lbnRlZAogKi8KLy8gaW5zdGFudGlhdGVCdXJnZXJDbGFzcygpOwo="></script><script id="etch-script-x8oj2" type="module" defer src="data:text/javascript;base64,LyoqCiAqIFdvcmRQcmVzcyBFeHBhbmRhYmxlIFNlYXJjaCBGdW5jdGlvbmFsaXR5CiAqIEhhbmRsZXMgdGhlIHRvZ2dsZSBiZWhhdmlvciBmb3IgdGhlIHNlYXJjaCBidXR0b24gYW5kIGZvcm0KICovCmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbigpIHsKICAgIC8vIEdldCBET00gZWxlbWVudHMKICAgIGNvbnN0IHNlYXJjaENvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zZWFyY2gtY29udGFpbmVyJyk7CiAgICBjb25zdCBzZWFyY2hUb2dnbGVCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2VhcmNoVG9nZ2xlQnRuJyk7CiAgICBjb25zdCBzZWFyY2hGb3JtV3JhcHBlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWFyY2hGb3JtV3JhcHBlcicpOwogICAgY29uc3Qgc2VhcmNoRmllbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2VhcmNoRmllbGQnKTsKICAgIAogICAgLy8gQ2hlY2sgaWYgYWxsIHJlcXVpcmVkIGVsZW1lbnRzIGV4aXN0CiAgICBpZiAoIXNlYXJjaENvbnRhaW5lciB8fCAhc2VhcmNoVG9nZ2xlQnRuIHx8ICFzZWFyY2hGb3JtV3JhcHBlciB8fCAhc2VhcmNoRmllbGQpIHsKICAgICAgICBjb25zb2xlLmVycm9yKCdTZWFyY2ggZWxlbWVudHMgbm90IGZvdW5kIGluIERPTScpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIAogICAgLy8gVHJhY2sgc2VhcmNoIHN0YXRlCiAgICBsZXQgaXNTZWFyY2hPcGVuID0gZmFsc2U7CiAgICAKICAgIC8qKgogICAgICogVG9nZ2xlIHNlYXJjaCBmb3JtIHZpc2liaWxpdHkKICAgICAqIEhhbmRsZXMgb3BlbmluZyBhbmQgY2xvc2luZyB0aGUgc2VhcmNoIGZvcm0KICAgICAqLwogICAgZnVuY3Rpb24gdG9nZ2xlU2VhcmNoKCkgewogICAgICAgIC8vIFRvZ2dsZSB0aGUgYWN0aXZlIGNsYXNzIG9uIGNvbnRhaW5lcgogICAgICAgIHNlYXJjaENvbnRhaW5lci5jbGFzc0xpc3QudG9nZ2xlKCdhY3RpdmUnKTsKICAgICAgICAKICAgICAgICAvLyBVcGRhdGUgc2VhcmNoIHN0YXRlCiAgICAgICAgaXNTZWFyY2hPcGVuID0gIWlzU2VhcmNoT3BlbjsKICAgICAgICAKICAgICAgICAvLyBVcGRhdGUgQVJJQSBhdHRyaWJ1dGVzIGZvciBhY2Nlc3NpYmlsaXR5CiAgICAgICAgc2VhcmNoVG9nZ2xlQnRuLnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsIGlzU2VhcmNoT3Blbi50b1N0cmluZygpKTsKICAgICAgICBzZWFyY2hUb2dnbGVCdG4uc2V0QXR0cmlidXRlKAogICAgICAgICAgICAnYXJpYS1sYWJlbCcsIAogICAgICAgICAgICBpc1NlYXJjaE9wZW4gPyAnQ2xvc2Ugc2VhcmNoJyA6ICdPcGVuIHNlYXJjaCcKICAgICAgICApOwogICAgICAgIAogICAgICAgIC8vIEZvY3VzIG9uIHNlYXJjaCBpbnB1dCB3aGVuIG9wZW5lZAogICAgICAgIGlmIChpc1NlYXJjaE9wZW4pIHsKICAgICAgICAgICAgLy8gRGVsYXkgZm9jdXMgdG8gYWxsb3cgYW5pbWF0aW9uIHRvIGNvbXBsZXRlCiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBzZWFyY2hGaWVsZC5mb2N1cygpOwogICAgICAgICAgICB9LCA0MDApOyAvLyBNYXRjaCBDU1MgdHJhbnNpdGlvbiBkdXJhdGlvbgogICAgICAgIH0KICAgIH0KICAgIAogICAgLyoqCiAgICAgKiBDbG9zZSBzZWFyY2ggZm9ybQogICAgICogVXNlZCB3aGVuIGNsaWNraW5nIG91dHNpZGUgb3IgcHJlc3NpbmcgZXNjYXBlCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNsb3NlU2VhcmNoKCkgewogICAgICAgIGlmIChpc1NlYXJjaE9wZW4pIHsKICAgICAgICAgICAgc2VhcmNoQ29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOwogICAgICAgICAgICBpc1NlYXJjaE9wZW4gPSBmYWxzZTsKICAgICAgICAgICAgc2VhcmNoVG9nZ2xlQnRuLnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICdmYWxzZScpOwogICAgICAgICAgICBzZWFyY2hUb2dnbGVCdG4uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgJ09wZW4gc2VhcmNoJyk7CiAgICAgICAgfQogICAgfQogICAgCiAgICAvLyBFdmVudCBsaXN0ZW5lciBmb3IgdG9nZ2xlIGJ1dHRvbiBjbGljawogICAgc2VhcmNoVG9nZ2xlQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgIGUucHJldmVudERlZmF1bHQoKTsgLy8gUHJldmVudCBhbnkgZGVmYXVsdCBiZWhhdmlvcgogICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7IC8vIFByZXZlbnQgZXZlbnQgYnViYmxpbmcKICAgICAgICB0b2dnbGVTZWFyY2goKTsKICAgIH0pOwogICAgCiAgICAvLyBFdmVudCBsaXN0ZW5lciBmb3Iga2V5Ym9hcmQgbmF2aWdhdGlvbgogICAgc2VhcmNoVG9nZ2xlQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBmdW5jdGlvbihlKSB7CiAgICAgICAgLy8gQWN0aXZhdGUgb24gRW50ZXIgb3IgU3BhY2Uga2V5CiAgICAgICAgaWYgKGUua2V5ID09PSAnRW50ZXInIHx8IGUua2V5ID09PSAnICcpIHsKICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICB0b2dnbGVTZWFyY2goKTsKICAgICAgICB9CiAgICB9KTsKICAgIAogICAgLy8gQ2xvc2Ugc2VhcmNoIHdoZW4gY2xpY2tpbmcgb3V0c2lkZQogICAgLy8gVXNpbmcgcGFzc2l2ZTogdHJ1ZSBmb3IgYmV0dGVyIHNjcm9sbCBwZXJmb3JtYW5jZSAoY2xpY2sgZG9lc24ndCBwcmV2ZW50IHNjcm9sbGluZykKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgIC8vIENoZWNrIGlmIGNsaWNrIGlzIG91dHNpZGUgc2VhcmNoIGNvbnRhaW5lcgogICAgICAgIGlmIChpc1NlYXJjaE9wZW4gJiYgIXNlYXJjaENvbnRhaW5lci5jb250YWlucyhlLnRhcmdldCkpIHsKICAgICAgICAgICAgY2xvc2VTZWFyY2goKTsKICAgICAgICB9CiAgICB9LCB7IHBhc3NpdmU6IHRydWUgfSk7CiAgICAKICAgIC8vIEhhbmRsZSBFc2NhcGUga2V5IHRvIGNsb3NlIHNlYXJjaAogICAgLy8gUGFzc2l2ZSBsaXN0ZW5lciBzYWZlIGhlcmUgYXMgd2Ugb25seSByZWFkIHRoZSBrZXksIGRvbid0IHByZXZlbnQgZGVmYXVsdHMKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBmdW5jdGlvbihlKSB7CiAgICAgICAgaWYgKGUua2V5ID09PSAnRXNjYXBlJyAmJiBpc1NlYXJjaE9wZW4pIHsKICAgICAgICAgICAgY2xvc2VTZWFyY2goKTsKICAgICAgICAgICAgc2VhcmNoVG9nZ2xlQnRuLmZvY3VzKCk7IC8vIFJldHVybiBmb2N1cyB0byB0b2dnbGUgYnV0dG9uCiAgICAgICAgfQogICAgfSwgeyBwYXNzaXZlOiB0cnVlIH0pOwogICAgCiAgICAvLyBQcmV2ZW50IHNlYXJjaCBmb3JtIHdyYXBwZXIgZnJvbSBjbG9zaW5nIHdoZW4gY2xpY2tlZAogICAgc2VhcmNoRm9ybVdyYXBwZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgIH0pOwogICAgCiAgICAvLyBPcHRpb25hbDogU3VibWl0IHNlYXJjaCBvbiBFbnRlciBrZXkKICAgIHNlYXJjaEZpZWxkLmFkZEV2ZW50TGlzdGVuZXIoJ2tleXByZXNzJywgZnVuY3Rpb24oZSkgewogICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykgewogICAgICAgICAgICAvLyBMZXQgdGhlIGZvcm0gaGFuZGxlIHRoZSBzdWJtaXNzaW9uIG5hdHVyYWxseQogICAgICAgICAgICAvLyBBZGRpdGlvbmFsIGN1c3RvbSBsb2dpYyBjYW4gYmUgYWRkZWQgaGVyZSBpZiBuZWVkZWQKICAgICAgICAgICAgY29uc29sZS5sb2coJ1NlYXJjaCBzdWJtaXR0ZWQ6Jywgc2VhcmNoRmllbGQudmFsdWUpOwogICAgICAgIH0KICAgIH0pOwogICAgCiAgICAvLyBPcHRpb25hbDogQ2xlYXIgc2VhcmNoIGFuZCBjbG9zZSBvbiBlbXB0eSBpbnB1dCBhbmQgRXNjYXBlCiAgICBzZWFyY2hGaWVsZC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24oZSkgewogICAgICAgIGlmIChlLmtleSA9PT0gJ0VzY2FwZScpIHsKICAgICAgICAgICAgaWYgKHNlYXJjaEZpZWxkLnZhbHVlID09PSAnJykgewogICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTsKICAgICAgICAgICAgICAgIHNlYXJjaFRvZ2dsZUJ0bi5mb2N1cygpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgc2VhcmNoRmllbGQudmFsdWUgPSAnJzsgLy8gQ2xlYXIgdGhlIGlucHV0CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9KTsKICAgIAogICAgLyoqCiAgICAgKiBPcHRpb25hbDogQWRkIHNlYXJjaCBzdWdnZXN0aW9ucyBmdW5jdGlvbmFsaXR5CiAgICAgKiBUaGlzIGNhbiBiZSBleHRlbmRlZCB0byBzaG93IGxpdmUgc2VhcmNoIHJlc3VsdHMKICAgICAqLwogICAgbGV0IHNlYXJjaFRpbWVvdXQ7CiAgICBzZWFyY2hGaWVsZC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGZ1bmN0aW9uKCkgewogICAgICAgIGNsZWFyVGltZW91dChzZWFyY2hUaW1lb3V0KTsKICAgICAgICBjb25zdCBxdWVyeSA9IHRoaXMudmFsdWUudHJpbSgpOwogICAgICAgIAogICAgICAgIC8vIERlYm91bmNlIHNlYXJjaCB0byBhdm9pZCB0b28gbWFueSByZXF1ZXN0cwogICAgICAgIGlmIChxdWVyeS5sZW5ndGggPiAyKSB7CiAgICAgICAgICAgIHNlYXJjaFRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgLy8gSGVyZSB5b3UgY291bGQgYWRkIEFKQVggZnVuY3Rpb25hbGl0eSB0byBmZXRjaCBsaXZlIHJlc3VsdHMKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdTZWFyY2hpbmcgZm9yOicsIHF1ZXJ5KTsKICAgICAgICAgICAgICAgIC8vIEV4YW1wbGU6IGZldGNoU2VhcmNoU3VnZ2VzdGlvbnMocXVlcnkpOwogICAgICAgICAgICB9LCAzMDApOyAvLyAzMDBtcyBkZWxheQogICAgICAgIH0KICAgIH0pOwp9KTsKCi8qKgogKiBPcHRpb25hbDogQUpBWCBTZWFyY2ggU3VnZ2VzdGlvbnMgKFdvcmRQcmVzcyBzcGVjaWZpYykKICogVW5jb21tZW50IGFuZCBtb2RpZnkgYXMgbmVlZGVkCiAqLwovKgpmdW5jdGlvbiBmZXRjaFNlYXJjaFN1Z2dlc3Rpb25zKHF1ZXJ5KSB7CiAgICAvLyBXb3JkUHJlc3MgQUpBWCBjYWxsIGZvciBsaXZlIHNlYXJjaCBzdWdnZXN0aW9ucwogICAgY29uc3QgZGF0YSA9IHsKICAgICAgICBhY3Rpb246ICdsaXZlX3NlYXJjaCcsCiAgICAgICAgcXVlcnk6IHF1ZXJ5LAogICAgICAgIG5vbmNlOiBzZWFyY2hfYWpheC5ub25jZSAvLyBBZGQgbm9uY2UgZm9yIHNlY3VyaXR5CiAgICB9OwogICAgCiAgICBmZXRjaChzZWFyY2hfYWpheC5hamF4dXJsLCB7CiAgICAgICAgbWV0aG9kOiAnUE9TVCcsCiAgICAgICAgaGVhZGVyczogewogICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsCiAgICAgICAgfSwKICAgICAgICBib2R5OiBuZXcgVVJMU2VhcmNoUGFyYW1zKGRhdGEpCiAgICB9KQogICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UuanNvbigpKQogICAgLnRoZW4oZGF0YSA9PiB7CiAgICAgICAgaWYgKGRhdGEuc3VjY2VzcykgewogICAgICAgICAgICBkaXNwbGF5U2VhcmNoU3VnZ2VzdGlvbnMoZGF0YS5kYXRhKTsKICAgICAgICB9CiAgICB9KQogICAgLmNhdGNoKGVycm9yID0+IHsKICAgICAgICBjb25zb2xlLmVycm9yKCdTZWFyY2ggZXJyb3I6JywgZXJyb3IpOwogICAgfSk7Cn0KCmZ1bmN0aW9uIGRpc3BsYXlTZWFyY2hTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucykgewogICAgLy8gRGlzcGxheSBzdWdnZXN0aW9ucyBpbiBhIGRyb3Bkb3duCiAgICAvLyBJbXBsZW1lbnRhdGlvbiBkZXBlbmRzIG9uIHlvdXIgc3BlY2lmaWMgbmVlZHMKfQoqLw=="></script><script id="etch-script-spwxe" type="module" defer src="data:text/javascript;base64,ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uICgpIHsKCWNvbnN0IGNpcmNsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5mdy1zY3JvbGwtcHJvZ3Jlc3MtcmluZyBjaXJjbGUiKTsKCWNvbnN0IHNjcm9sbEJ0biA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5mdy1zY3JvbGwtdG8tdG9wIik7CgoJLy8gTWFuYWdlIHJlZCByaW5nIHNjcm9sbCBwcm9ncmVzcwoJZnVuY3Rpb24gdXBkYXRlU2Nyb2xsUHJvZ3Jlc3MoKSB7CgkJY29uc3Qgc2Nyb2xsVG9wID0gd2luZG93LnNjcm9sbFk7CgkJY29uc3QgZG9jSGVpZ2h0ID0KCQkJZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodCAtIHdpbmRvdy5pbm5lckhlaWdodDsKCQljb25zdCBzY3JvbGxlZCA9IChzY3JvbGxUb3AgLyBkb2NIZWlnaHQpICogMTAwOwoJCWNpcmNsZS5zdHlsZS5zdHJva2VEYXNob2Zmc2V0ID0gMTAwIC0gc2Nyb2xsZWQ7Cgl9CgoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHVwZGF0ZVNjcm9sbFByb2dyZXNzKTsKCgkvLyBEaXNwbGF5IHNjcm9sbCBidXR0b24gYWZ0ZXIgc2Nyb2xsaW5nIGRvd24KCWZ1bmN0aW9uIHVwZGF0ZVNjcm9sbCgpIHsKCQljb25zdCBzY3JvbGxUb3AgPSB3aW5kb3cuc2Nyb2xsWTsKCQljb25zdCBkb2NIZWlnaHQgPQoJCQlkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gd2luZG93LmlubmVySGVpZ2h0OwoJCWNvbnN0IHNjcm9sbGVkID0gKHNjcm9sbFRvcCAvIGRvY0hlaWdodCkgKiAxMDA7CgoJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoCgkJCSIuZnctc2Nyb2xsLXByb2dyZXNzLXJpbmcgY2lyY2xlIgoJCSkuc3R5bGUuc3Ryb2tlRGFzaG9mZnNldCA9IDEwMCAtIHNjcm9sbGVkOwoKCQlzY3JvbGxCdG4uc3R5bGUuZGlzcGxheSA9IHNjcm9sbFRvcCA+IDIwID8gImJsb2NrIiA6ICJub25lIjsKCX0KCgkvLyBzY3JvbGwgdG8gdG9wIGJ1dHRvbiBjbGljayBldmVudAoJc2Nyb2xsQnRuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKCkgPT4gewoJCXdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgYmVoYXZpb3I6ICJzbW9vdGgiIH0pOwoJfSk7CgoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHVwZGF0ZVNjcm9sbCk7Cn0pOw=="></script><style type="text/css" id="etch-main-default">/* Add your global styles here */

/* General Styles */
:where(figure) {
    margin: 0;
}
body a:link {
  text-decoration: none;
}

main aside a,
main p a {
  display: inline;
}

main aside.notifications {
  padding: var(--space-m);
  background-color: var(--bg-ultra-light);
}

/* Main Navigation (header) */
.etch-nav__list .etch-nav__item .etch-nav__link,
.etch-nav__list .etch-nav__item .etch-nav__button {
  font-size: var(--nav-item-top-font-size);
}
.etch-nav__dropdown .etch-nav__item .etch-nav__link {
  font-size: calc(var(--nav-item-top-font-size) * 0.9);
}

/* Pagination */
.pagination-wrapper {
    grid-column: 1/-1;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 40px;
}

.pagination-wrapper .wpgb-page .wpgb-dots-page {
  color: var(--text-dark);
}

.pagination-wrapper .wpgb-pagination .wpgb-page a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.5rem;
    height: 2.5rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid #ddd;
    border-radius: 4px;
    background: white;
    color: var(--text-dark);
    text-decoration: none;
    transition: all 0.2s ease;
    font-size: 0.875rem;
    font-family: inherit;

    &:hover:not([aria-current="true"]) {
        background-color: var(--secondary-semi-dark);
        border-color: var(--secondary-semi-dark);
        text-decoration: none;
        color: white;
    }

    &:focus {
        outline: none;
        border-color: #0066cc;
        box-shadow: 0 0 0 2px rgba(0, 102, 204, 0.2);
        text-decoration: none;
    }

    &[aria-current="true"] {
        background-color: var(--primary);
        color: white;
        border-color: var(--primary, #007bff);

        &:hover {
            background-color: var(--primary, #007bff);
            border-color: var(--primary, #007bff);
            color: white;
        }
    }
}

</style><style type="text/css" id="etch-forms-997d74a">/* Style FluentForms */

body .fluentform form.frm-fluent-form .ff-el-group {
  .ff-el-input--label label {
    font-family: Montserrat-Medium, sans-serif;
  }
  .ff-el-input--content input[type=text],
  .ff-el-input--content input[type=email],
  .ff-el-input--content textarea {
    background: var(--bg-ultra-light);
    padding-inline: var(--space-s);
    padding-block: var(--space-xs);
    border: none;
    border-radius: var(--radius);
  }
}
body .fluentform form.frm-fluent-form .ff_submit_btn_wrapper {
  .ff-btn-submit {
    background: var(--primary);
    color: var(--white);
    font-family: Montserrat-SemiBold, sans-serif;
    font-size: var(--text-m);
    font-weight: 500;
    padding-inline: var(--space-l);
    padding-block: var(--space-xs);
    border-radius: var(--radius);
  }
  .ff-btn-submit:hover {
    background: var(--secondary);
  }
}

body .fat-footer .fluentform fieldset {
  display: flex;
  flex-direction: column;
  gap: calc(var(--content-gap) / 2);
}
body .fat-footer .fluentform fieldset .ff-el-group {
  margin-block-end: 0;
}
body .fat-footer .footer-form .ff-el-form-control, 
body .fat-footer .fluentform .ff-btn-submit {
  padding: calc(var(--space-s) / 2) var(--space-s);
  border-radius: var(--radius);
  border: none;
}
body .fat-footer .fluentform .ff-el-group .ff-el-input--content input[type=text],
body .fat-footer .fluentform .ff-el-group .ff-el-input--content .ff-el-form-control {
  color: var(--base-ultra-dark) !important;
}
body .fat-footer .fluentform .ff-el-group .ff-el-input--content input[type=text]::placeholder,
body .fat-footer .fluentform .ff-el-group .ff-el-input--content .ff-el-form-control::placeholder {
color: var(--base-semi-light) !important;
}

/* Comments Form */

body .comment-form {
  display: flex;
  flex-direction: column;
  gap: calc(var(--content-gap) / 2);
  label {
    font-weight: 500;
  }
  input,
  textarea {
    background: var(--white);
    padding-inline: var(--space-s);
    padding-block: var(--space-xs);
    border: none;
    border-radius: var(--radius);
  }
  .form-submit input[type=submit] {
    background: var(--primary);
    color: var(--white);
    font-family: Montserrat-SemiBold, sans-serif;
    font-size: var(--text-m);
    font-weight: 500;
    padding-inline: var(--space-l);
    padding-block: var(--space-xs);
    border-radius: var(--radius);
  }
  .form-submit input[type=submit]:hover {
    background: var(--secondary);
  }
}</style><style type="text/css" id="etch-custom-media-definitions-custom-media">/* Add your custom media definitions here using @custom-media rules. Example: @custom-media --small-screen (max-width: 600px);*/</style>                    <style id="fluentform_styler_css_1_ffs_custom" type="text/css">
                        .fluentform_wrapper_1.ffs_custom_wrap .ff-el-input--content .error , .fluentform_wrapper_1.ffs_custom_wrap .error-text{ text-align: left; } .fluentform_wrapper_1.ffs_custom_wrap .ff-message-success{ text-align: left; } .fluentform_wrapper_1.ffs_custom_wrap .ff-errors-in-stack { text-align: left; }          .fluentform_wrapper_1.ffs_custom_wrap input[type=checkbox] {
        -webkit-appearance: checkbox;
        }
        .fluentform_wrapper_1.ffs_custom_wrap input[type=radio] {
        -webkit-appearance: radio;
        }
        .fluentform_wrapper_1.ffs_custom_wrap .ff-el-group input[type=checkbox]:not(.ff_list_buttons input[type=checkbox]),
        .fluentform_wrapper_1.ffs_custom_wrap .ff-el-group input[type=radio]:not(.ff_list_buttons input[type=radio]) {
        -webkit-transform: scale(1);
        transform: scale(1);
        width: 21px;
        height: 15px;
        margin-right: 0px;
        cursor: pointer;
        font-size: 12px;
        position: relative;
        text-align: left;
        border: none;
        box-shadow: none;
        -moz-appearance: initial;
        }
        .fluentform_wrapper_1.ffs_custom_wrap .ff-el-group input[type=checkbox]:before,
        .fluentform_wrapper_1.ffs_custom_wrap .ff-el-group input[type=radio]:before {
        content: none;
        }
        .fluentform_wrapper_1.ffs_custom_wrap .ff-el-group input[type=checkbox]:after,
        .fluentform_wrapper_1.ffs_custom_wrap .ff-el-group input[type=radio]:after {
        content: " ";
        background-color: #fff;
        display: inline-block;
        margin-left: 3px;        padding-bottom: 3px;
        color: #212529;
        width: 15px;;
        height: 15px;;
        border-color: ;;
        border-style: solid;;
        border-width:1px;        padding-left: 1px;
        border-radius:2px;        padding-top: 1px;
        -webkit-transition: all .1s ease;
        transition: all .1s ease;
        background-size: 9px;
        background-repeat: no-repeat;
        background-position: center center;
        position: absolute;
        box-sizing: border-box;
        }
        .fluentform_wrapper_1.ffs_custom_wrap .ff-el-group input[type=checkbox]:checked:after, .fluentform_wrapper_1.ffs_custom_wrap .ff-el-group input[type=radio]:checked:after {
        border-width:1px;        background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E");
        background-color: black;;
        -webkit-transition: all 0.3s ease-out;
        transition: all 0.3s ease-out;
        color: #fff;
        border-color: black;;
        } .fluentform_wrapper_1.ffs_custom_wrap .ff-el-group input[type=radio]:after {
        border-radius: 50%;        font-size: 10px;
        padding-top: 1px;
        padding-left: 2px;
        } .fluentform_wrapper_1.ffs_custom_wrap .ff-el-group input[type=radio]:checked:after {
        background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E");
        } .fluentform_wrapper_1.ffs_custom_wrap .ff_list_buttons .ff-el-form-check label > span {
        border-color: ;;
        border-style: solid;;
        border-width:1px;        } .fluentform_wrapper_1.ffs_custom_wrap .ff_list_buttons .ff-el-form-check:not(:first-child) label > span {
        border-left: 0;
        } .fluentform_wrapper_1.ffs_custom_wrap .ff_list_buttons .ff-el-form-check:first-child label > span {
        border-color: ;;
        } .fluentform_wrapper_1.ffs_custom_wrap .ff_list_buttons .ff-el-form-check.ff_item_selected label > span {
        background-color: black;;
        } .fluentform_wrapper_1.ffs_custom_wrap .ff_list_buttons .ff-el-form-check.ff_item_selected label > span {
        border-color: black;;
        } .fluentform_wrapper_1.ffs_custom_wrap .ff_list_buttons .ff-el-form-check.ff_item_selected:first-child label > span {
        border-left-color: black;;
        }                    </style>

                    <style id="automaticcss-tokens-css">/* File: automatic-tokens.css - Version: 4.0.0-rc-1 - Generated: 2026-03-07 16:35:42 */
/* Feat: Text, Headings, & Spacing */
:root {
  --root-font-size: 100%;
}
/* Feat: Palette */
:root {
  --primary: oklch(0.304 0.108 29);
  --primary-hover: oklch(0.3303362366 0.1187812845 28.8766099086);
  --primary-ultra-light: oklch(0.9489062463 0.0208069652 21.1753773815);
  --primary-light: oklch(0.8498619296 0.0673523207 21.9803878177);
  --primary-semi-light: oklch(0.6751117055 0.1698159703 25.5950145696);
  --primary-semi-dark: oklch(0.4569429966 0.1711908145 29.0310248494);
  --primary-dark: oklch(0.360697332 0.1315566436 28.7721771823);
  --primary-ultra-dark: oklch(0.2028138114 0.0645752099 28.2058248753);
  --secondary: oklch(0.726 0.157 63);
  --secondary-hover: oklch(0.7686445406 0.1399877857 67.7489447592);
  --secondary-ultra-light: oklch(0.9689749369 0.0181433553 70.2436054197);
  --secondary-light: oklch(0.9088504489 0.0555036023 73.2076062982);
  --secondary-semi-light: oklch(0.7954272651 0.1252939491 69.4690781569);
  --secondary-semi-dark: oklch(0.5548589512 0.1207402886 63.767181926);
  --secondary-dark: oklch(0.4379921385 0.0935201876 63.9610921291);
  --secondary-ultra-dark: oklch(0.2459402076 0.047438588 69.4973565336);
  --tertiary: oklch(0.362 0.067 254);
  --tertiary-hover: oklch(0.4026755977 0.075347502 253.1335442907);
  --tertiary-ultra-light: oklch(0.9583404284 0.0103070852 247.9337437233);
  --tertiary-light: oklch(0.8753275195 0.0320885007 251.1455956506);
  --tertiary-semi-light: oklch(0.7039003957 0.0789769433 252.4690083971);
  --tertiary-semi-dark: oklch(0.4463323157 0.0867168773 253.2655594311);
  --tertiary-dark: oklch(0.3578998577 0.0655434936 252.9294438999);
  --tertiary-ultra-dark: oklch(0.2093344396 0.028807952 251.3852853044);
  --accent: oklch(0.862 0.152 88);
  --accent-hover: oklch(0.8926250572 0.126714171 90.1016378111);
  --accent-ultra-light: oklch(0.9789744514 0.0244743494 91.6095120858);
  --accent-light: oklch(0.9394177213 0.0722250867 90.9641028704);
  --accent-semi-light: oklch(0.8684610447 0.1484742923 88.9562130697);
  --accent-semi-dark: oklch(0.6315951702 0.1289475538 83.1378757459);
  --accent-dark: oklch(0.4958013543 0.1007139471 83.8430822499);
  --accent-ultra-dark: oklch(0.2722915419 0.0544777961 88.1440158352);
  --base: oklch(0.467 0.01 264);
  --base-hover: oklch(0.5126919636 0.0120987064 261.7679994936);
  --base-ultra-light: oklch(0.9614328427 0.0013279273 286.3750483029);
  --base-light: oklch(0.8823279722 0.0042337102 271.3644837229);
  --base-semi-light: oklch(0.7181204447 0.0093130236 264.5069495002);
  --base-semi-dark: oklch(0.4598009349 0.0104352625 264.4657488498);
  --base-dark: oklch(0.3672503106 0.0073544636 264.4777115905);
  --base-ultra-dark: oklch(0.213175117 0.0042126059 264.4788706486);
  --neutral: oklch(0.2519647499 0 0);
  --neutral-hover: oklch(0.2897594623 0 0);
  --neutral-ultra-light: oklch(0.95 0 0);
  --neutral-light: oklch(0.85 0 0);
  --neutral-semi-light: oklch(0.65 0 0);
  --neutral-semi-dark: oklch(0.35 0 0);
  --neutral-dark: oklch(0.25 0 0);
  --neutral-ultra-dark: oklch(0.1 0 0);
  --white: #fff;
  --black: #000;
  --danger: oklch(0.592 0.202 21);
  --danger-hover: oklch(0.647781614 0.1681913092 17.359671636);
  --danger-ultra-light: oklch(0.9489092314 0.0197591183 9.7842301413);
  --danger-light: oklch(0.8511006217 0.0624327778 12.257151855);
  --danger-semi-light: oklch(0.6692040881 0.1556755915 15.912219408);
  --danger-semi-dark: oklch(0.4433083158 0.1591378093 22.3612092813);
  --danger-dark: oklch(0.2513901531 0.0820191555 19.5104182661);
  --danger-ultra-dark: oklch(0.1994752469 0.0579746711 19.0411558209);
  --warning: oklch(0.844 0.172 85);
  --warning-hover: oklch(0.8665246593 0.1650853233 88.747761788);
  --warning-ultra-light: oklch(0.9817094353 0.0257082806 92.3886836719);
  --warning-light: oklch(0.9448382784 0.0756195133 91.8155220731);
  --warning-semi-light: oklch(0.8798949069 0.1535223991 89.7805638217);
  --warning-semi-dark: oklch(0.6461566415 0.1324796186 84.7158813154);
  --warning-dark: oklch(0.357026945 0.0730498898 86.4977961492);
  --warning-ultra-dark: oklch(0.2760808801 0.056416823 89.0688061142);
  --info: oklch(0.655 0.11 212);
  --info-hover: oklch(0.731428182 0.1233398808 211.9900299039);
  --info-ultra-light: oklch(0.9704590954 0.0183340576 209.4320656519);
  --info-light: oklch(0.9164309916 0.0531309919 208.08265359);
  --info-semi-light: oklch(0.8210611422 0.1089667825 208.7277860086);
  --info-semi-dark: oklch(0.5886489374 0.0981800734 211.20977558);
  --info-dark: oklch(0.3284096722 0.0522119677 210.7396664648);
  --info-ultra-dark: oklch(0.2555571611 0.0389079468 209.0767626132);
  --success: oklch(0.64 0.175 147);
  --success-hover: oklch(0.7149373599 0.1978645241 146.4417831373);
  --success-ultra-light: oklch(0.9699748045 0.023093445 153.4670320147);
  --success-light: oklch(0.9126183464 0.0687265205 151.9618649292);
  --success-semi-light: oklch(0.8087514074 0.1564009323 149.0267169171);
  --success-semi-dark: oklch(0.5745253375 0.1568837801 146.4718384735);
  --success-dark: oklch(0.3222487107 0.0807015513 147.2689181061);
  --success-ultra-dark: oklch(0.2505299625 0.0574735122 148.1886874221);
  --heading-color: var(--primary);
  --h1-color: var(--primary);
  --h2-color: var(--primary);
  --h3-color: var(--secondary);
}
/* Feat: Default Section Styles */
:root {
  --content-width: 85.375rem;
  --content-width-safe: min(var(--content-width), calc(100% - var(--gutter) * 2));
}
/* Feat: Focus Styles */
:root {
  --focus-color: var(--primary);
  --focus-width: 2px;
  --focus-offset: 2px;
}
/* Feat: Text Defaults */
:root {
  --text-xxl-max-width: 100%;
  --text-xl-max-width: 100%;
  --text-l-max-width: 100%;
  --text-m-line-height: calc(6px + 2ex);
  --text-m-max-width: 100%;
  --text-s-max-width: 100%;
  --text-xs-max-width: 100%;
  --base-text-lh: calc(6px + 2ex);
  --text-font-family: Montserrat-Regular, sans-serif;
  --text-color: var(--text-dark);
  --text-line-height: calc(6px + 2ex);
  --text-font-weight: 400;
  --text-text-wrap: pretty;
}
/* Feat: Heading Defaults */
:root {
  --heading-font-family: Montserrat-Regular, sans-serif;
  --heading-color: var(--primary);
  --heading-line-height: calc(4px + 2ex);
  --heading-font-weight: 400;
  --heading-letter-spacing: 0.1em;
  --heading-text-transform: none;
  --heading-text-wrap: pretty;
  --base-heading-lh: calc(4px + 2ex);
  --h1-font-family: Montserrat-ExtraLight, sans-serif;
  --h1-font-weight: 200;
  --h1-max-width: 100%;
  --h1-color: var(--primary);
  --h2-font-family: Montserrat-Medium, sans-serif;
  --h2-font-weight: 500;
  --h2-max-width: 100%;
  --h2-color: var(--primary);
  --h3-font-family: Montserrat-Medium, sans-serif;
  --h3-font-weight: 500;
  --h3-max-width: 100%;
  --h3-color: var(--secondary);
  --h4-font-family: Montserrat-Light, sans-serif;
  --h4-font-weight: 300;
  --h4-line-height: calc(4px + 2ex);
  --h4-max-width: 100%;
  --h5-max-width: 100%;
  --h6-max-width: 100%;
}
/* Feat: Text Size Variables */
:root {
  --text-xs: clamp(0.75rem, calc(-0.073993329vw + 0.766648499rem), 0.7034766944rem);
  --text-s: clamp(0.8125rem, calc(0.1991800137vw + 0.7676844969rem), 0.9377344336rem);
  --text-s-to-xs: clamp(0.75rem, calc(0.2985835922vw + 0.6828186918rem), 0.9377344336rem);
  --text-m: clamp(1rem, calc(0.3976143141vw + 0.9105367793rem), 1.25rem);
  --text-m-to-s: clamp(0.8125rem, calc(0.6958250497vw + 0.6559393638rem), 1.25rem);
  --text-m-to-xs: clamp(0.75rem, calc(0.7952286282vw + 0.5710735586rem), 1.25rem);
  --text-l: clamp(1.2rem, calc(0.7415506958vw + 1.0331510934rem), 1.66625rem);
  --text-l-to-m: clamp(1rem, calc(1.0596421471vw + 0.7615805169rem), 1.66625rem);
  --text-l-to-s: clamp(0.8125rem, calc(1.3578528827vw + 0.5069831014rem), 1.66625rem);
  --text-l-to-xs: clamp(0.75rem, calc(1.4572564612vw + 0.4221172962rem), 1.66625rem);
  --text-xl: clamp(1.44rem, calc(1.2423240557vw + 1.1604770875rem), 2.22111125rem);
  --text-xl-to-l: clamp(1.2rem, calc(1.6240337972vw + 0.8345923956rem), 2.22111125rem);
  --text-xl-to-m: clamp(1rem, calc(1.9421252485vw + 0.5630218191rem), 2.22111125rem);
  --text-xl-to-s: clamp(0.8125rem, calc(2.2403359841vw + 0.3084244036rem), 2.22111125rem);
  --text-xl-to-xs: clamp(0.75rem, calc(2.3397395626vw + 0.2235585984rem), 2.22111125rem);
  --text-xxl: clamp(1.728rem, calc(1.96062234vw + 1.2868599735rem), 2.9607412963rem);
  --text-xxl-to-xl: clamp(1.44rem, calc(2.4186740298vw + 0.8957983433rem), 2.9607412963rem);
  --text-xxl-to-l: clamp(1.2rem, calc(2.8003837714vw + 0.5699136514rem), 2.9607412963rem);
  --text-xxl-to-m: clamp(1rem, calc(3.1184752227vw + 0.2983430749rem), 2.9607412963rem);
  --text-xxl-to-s: clamp(0.8125rem, calc(3.4166859583vw + 0.0437456594rem), 2.9607412963rem);
  --text-xxl-to-xs: clamp(0.75rem, calc(3.5160895368vw + -0.0411201458rem), 2.9607412963rem);
}
/* Feat: Heading Size Variables */
:root {
  --h6: clamp(0.75rem, calc(-0.073993329vw + 0.766648499rem), 0.7034766944rem);
  --h5: clamp(0.8125rem, calc(0.1991800137vw + 0.7676844969rem), 0.9377344336rem);
  --h5-to-h6: clamp(0.75rem, calc(0.2985835922vw + 0.6828186918rem), 0.9377344336rem);
  --h4: clamp(1.125rem, calc(0.1988071571vw + 1.0802683897rem), 1.25rem);
  --h4-to-h5: clamp(0.8125rem, calc(0.6958250497vw + 0.6559393638rem), 1.25rem);
  --h4-to-h6: clamp(0.75rem, calc(0.7952286282vw + 0.5710735586rem), 1.25rem);
  --h3: clamp(1.35rem, calc(0.5029821074vw + 1.2368290258rem), 1.66625rem);
  --h3-to-h4: clamp(1.125rem, calc(0.8608349901vw + 0.9313121272rem), 1.66625rem);
  --h3-to-h5: clamp(0.8125rem, calc(1.3578528827vw + 0.5069831014rem), 1.66625rem);
  --h3-to-h6: clamp(0.75rem, calc(1.4572564612vw + 0.4221172962rem), 1.66625rem);
  --h2: clamp(1.62rem, calc(0.9560417495vw + 1.4048906064rem), 2.22111125rem);
  --h2-to-h3: clamp(1.35rem, calc(1.3854652087vw + 1.038270328rem), 2.22111125rem);
  --h2-to-h4: clamp(1.125rem, calc(1.7433180915vw + 0.7327534294rem), 2.22111125rem);
  --h2-to-h5: clamp(0.8125rem, calc(2.2403359841vw + 0.3084244036rem), 2.22111125rem);
  --h2-to-h6: clamp(0.75rem, calc(2.3397395626vw + 0.2235585984rem), 2.22111125rem);
  --h1: clamp(1.944rem, calc(1.6170835726vw + 1.5801561962rem), 2.9607412963rem);
  --h1-to-h2: clamp(1.62rem, calc(2.1323917237vw + 1.1402118622rem), 2.9607412963rem);
  --h1-to-h3: clamp(1.35rem, calc(2.5618151829vw + 0.7735915838rem), 2.9607412963rem);
  --h1-to-h4: clamp(1.125rem, calc(2.9196680656vw + 0.4680746852rem), 2.9607412963rem);
  --h1-to-h5: clamp(0.8125rem, calc(3.4166859583vw + 0.0437456594rem), 2.9607412963rem);
  --h1-to-h6: clamp(0.75rem, calc(3.5160895368vw + -0.0411201458rem), 2.9607412963rem);
}
/* Feat: Default Section Styles */
:root {
  --section-padding-block: var(--section-space-m);
  --gutter: clamp(1rem, calc(6.3618290258vw + -0.4314115308rem), 5rem);
}
/* Feat: Space Variables */
:root {
  --space-xs: clamp(0.8441720333rem, calc(-0.0172384889vw + 0.8480506933rem), 0.8333333333rem);
  --space-s: clamp(1.1252813203rem, calc(0.1983597291vw + 1.0806503813rem), 1.25rem);
  --space-s-to-xs: clamp(0.8441720333rem, calc(0.6454520346vw + 0.6989453255rem), 1.25rem);
  --space-m: clamp(1.5rem, calc(0.5964214712vw + 1.365805169rem), 1.875rem);
  --space-m-to-s: clamp(1.1252813203rem, calc(1.1923955144vw + 0.8569923296rem), 1.875rem);
  --space-m-to-xs: clamp(0.8441720333rem, calc(1.6394878199vw + 0.4752872738rem), 1.875rem);
  --space-l: clamp(1.9995rem, calc(1.2930417495vw + 1.7085656064rem), 2.8125rem);
  --space-l-to-m: clamp(1.5rem, calc(2.0874751491vw + 1.0303180915rem), 2.8125rem);
  --space-l-to-s: clamp(1.1252813203rem, calc(2.6834491923vw + 0.5215052521rem), 2.8125rem);
  --space-l-to-xs: clamp(0.8441720333rem, calc(3.1305414978vw + 0.1398001963rem), 2.8125rem);
  --space-xl: clamp(2.6653335rem, calc(2.4706425447vw + 2.1094389274rem), 4.21875rem);
  --space-xl-to-l: clamp(1.9995rem, calc(3.5296222664vw + 1.2053349901rem), 4.21875rem);
  --space-xl-to-m: clamp(1.5rem, calc(4.324055666vw + 0.5270874751rem), 4.21875rem);
  --space-xl-to-s: clamp(1.1252813203rem, calc(4.9200297092vw + 0.0182746358rem), 4.21875rem);
  --space-xl-to-xs: clamp(0.8441720333rem, calc(5.3671220147vw + -0.3634304201rem), 4.21875rem);
  --space-xxl: clamp(3.5528895555rem, calc(4.4138933511vw + 2.5597635515rem), 6.328125rem);
  --space-xxl-to-xl: clamp(2.6653335rem, calc(5.8255133201vw + 1.354593003rem), 6.328125rem);
  --space-xxl-to-l: clamp(1.9995rem, calc(6.8844930417vw + 0.4504890656rem), 6.328125rem);
  --space-xxl-to-m: clamp(1.5rem, calc(7.6789264414vw + -0.2277584493rem), 6.328125rem);
  --space-xxl-to-s: clamp(1.1252813203rem, calc(8.2749004846vw + -0.7365712887rem), 6.328125rem);
  --space-xxl-to-xs: clamp(0.8441720333rem, calc(8.7219927901vw + -1.1182763445rem), 6.328125rem);
}
/* Feat: Section Space Variables */
:root {
  --section-space-xs: clamp(1.6883440665rem, calc(1.2909040692vw + 1.3978906509rem), 2.5rem);
  --section-space-s: clamp(2.2505626407rem, calc(2.3847910288vw + 1.7139846592rem), 3.75rem);
  --section-space-s-to-xs: clamp(1.6883440665rem, calc(3.2789756397vw + 0.9505745476rem), 3.75rem);
  --section-space-m: clamp(3rem, calc(4.1749502982vw + 2.0606361829rem), 5.625rem);
  --section-space-m-to-s: clamp(2.2505626407rem, calc(5.3668983846vw + 1.0430105041rem), 5.625rem);
  --section-space-m-to-xs: clamp(1.6883440665rem, calc(6.2610829956vw + 0.2796003925rem), 5.625rem);
  --section-space-l: clamp(3.999rem, calc(7.0592445328vw + 2.4106699801rem), 8.4375rem);
  --section-space-l-to-m: clamp(3rem, calc(8.648111332vw + 1.0541749503rem), 8.4375rem);
  --section-space-l-to-s: clamp(2.2505626407rem, calc(9.8400594184vw + 0.0365492715rem), 8.4375rem);
  --section-space-l-to-xs: clamp(1.6883440665rem, calc(10.7342440294vw + -0.7268608401rem), 8.4375rem);
  --section-space-xl: clamp(5.330667rem, calc(11.6510266402vw + 2.709186006rem), 12.65625rem);
  --section-space-xl-to-l: clamp(3.999rem, calc(13.7689860835vw + 0.9009781312rem), 12.65625rem);
  --section-space-xl-to-m: clamp(3rem, calc(15.3578528827vw + -0.4555168986rem), 12.65625rem);
  --section-space-xl-to-s: clamp(2.2505626407rem, calc(16.5498009691vw + -1.4731425774rem), 12.65625rem);
  --section-space-xl-to-xs: clamp(1.6883440665rem, calc(17.4439855801vw + -2.236552689rem), 12.65625rem);
  --section-space-xxl: clamp(7.105779111rem, calc(18.8923990282vw + 2.8549893296rem), 18.984375rem);
  --section-space-xxl-to-xl: clamp(5.330667rem, calc(21.7156389662vw + 0.4446482326rem), 18.984375rem);
  --section-space-xxl-to-l: clamp(3.999rem, calc(23.8335984095vw + -1.3635596421rem), 18.984375rem);
  --section-space-xxl-to-m: clamp(3rem, calc(25.4224652087vw + -2.720054672rem), 18.984375rem);
  --section-space-xxl-to-s: clamp(2.2505626407rem, calc(26.6144132952vw + -3.7376803508rem), 18.984375rem);
  --section-space-xxl-to-xs: clamp(1.6883440665rem, calc(27.5085979061vw + -4.5010904624rem), 18.984375rem);
}
/* Feat: Contextual Space Variables */
:root {
  --content-gap: var(--space-m);
  --container-gap: var(--space-xl);
  --grid-gap: var(--space-m);
}
/* Feat: Width Variables */
:root {
  --width-10: calc(var(--content-width) * 0.1);
  --width-20: calc(var(--content-width) * 0.2);
  --width-30: calc(var(--content-width) * 0.3);
  --width-40: calc(var(--content-width) * 0.4);
  --width-50: calc(var(--content-width) * 0.5);
  --width-60: calc(var(--content-width) * 0.6);
  --width-70: calc(var(--content-width) * 0.7);
  --width-80: calc(var(--content-width) * 0.8);
  --width-90: calc(var(--content-width) * 0.9);
  --width-full: calc(var(--content-width) * 100%);
}
/* Feat: Grid Variables */
:root {
  --grid-1: repeat(1, minmax(0, 1fr));
  --grid-2: repeat(2, minmax(0, 1fr));
  --grid-3: repeat(3, minmax(0, 1fr));
  --grid-4: repeat(4, minmax(0, 1fr));
  --grid-5: repeat(5, minmax(0, 1fr));
  --grid-6: repeat(6, minmax(0, 1fr));
  --grid-7: repeat(7, minmax(0, 1fr));
  --grid-8: repeat(8, minmax(0, 1fr));
  --grid-9: repeat(9, minmax(0, 1fr));
  --grid-10: repeat(10, minmax(0, 1fr));
  --grid-11: repeat(11, minmax(0, 1fr));
  --grid-12: repeat(12, minmax(0, 1fr));
  --grid-1-2: minmax(0, 1fr) minmax(0, 2fr);
  --grid-1-3: minmax(0, 1fr) minmax(0, 3fr);
  --grid-2-1: minmax(0, 2fr) minmax(0, 1fr);
  --grid-2-3: minmax(0, 2fr) minmax(0, 3fr);
  --grid-3-1: minmax(0, 3fr) minmax(0, 1fr);
  --grid-3-2: minmax(0, 3fr) minmax(0, 2fr);
}
/* Feat: Auto Grid Variables */
:root {
  --grid-auto-2: repeat(auto-fit, minmax(min(100%, max(calc((var(--content-width) - ((2 - 1) * var(--grid-gap))) / 2) * 0.7, (100% - (2 - 1) * var(--grid-gap)) / 2)), 1fr));
  --grid-auto-3: repeat(auto-fit, minmax(min(100%, max(calc((var(--content-width) - ((3 - 1) * var(--grid-gap))) / 3) * 0.7, (100% - (3 - 1) * var(--grid-gap)) / 3)), 1fr));
  --grid-auto-4: repeat(auto-fit, minmax(min(100%, max(calc((var(--content-width) - ((4 - 1) * var(--grid-gap))) / 4) * 0.7, (100% - (4 - 1) * var(--grid-gap)) / 4)), 1fr));
  --grid-auto-5: repeat(auto-fit, minmax(min(100%, max(calc((var(--content-width) - ((5 - 1) * var(--grid-gap))) / 5) * 0.7, (100% - (5 - 1) * var(--grid-gap)) / 5)), 1fr));
  --grid-auto-6: repeat(auto-fit, minmax(min(100%, max(calc((var(--content-width) - ((6 - 1) * var(--grid-gap))) / 6) * 0.7, (100% - (6 - 1) * var(--grid-gap)) / 6)), 1fr));
  --grid-auto-7: repeat(auto-fit, minmax(min(100%, max(calc((var(--content-width) - ((7 - 1) * var(--grid-gap))) / 7) * 0.7, (100% - (7 - 1) * var(--grid-gap)) / 7)), 1fr));
  --grid-auto-8: repeat(auto-fit, minmax(min(100%, max(calc((var(--content-width) - ((8 - 1) * var(--grid-gap))) / 8) * 0.7, (100% - (8 - 1) * var(--grid-gap)) / 8)), 1fr));
  --grid-auto-9: repeat(auto-fit, minmax(min(100%, max(calc((var(--content-width) - ((9 - 1) * var(--grid-gap))) / 9) * 0.7, (100% - (9 - 1) * var(--grid-gap)) / 9)), 1fr));
  --grid-auto-10: repeat(auto-fit, minmax(min(100%, max(calc((var(--content-width) - ((10 - 1) * var(--grid-gap))) / 10) * 0.7, (100% - (10 - 1) * var(--grid-gap)) / 10)), 1fr));
  --grid-auto-11: repeat(auto-fit, minmax(min(100%, max(calc((var(--content-width) - ((11 - 1) * var(--grid-gap))) / 11) * 0.7, (100% - (11 - 1) * var(--grid-gap)) / 11)), 1fr));
  --grid-auto-12: repeat(auto-fit, minmax(min(100%, max(calc((var(--content-width) - ((12 - 1) * var(--grid-gap))) / 12) * 0.7, (100% - (12 - 1) * var(--grid-gap)) / 12)), 1fr));
  --auto-grid-aggressiveness: 0.7;
}
/* Feat: Header Height Variables */
:root {
  --header-height: clamp(5.9375rem, calc(0.9940357853vw + 5.7138419483rem), 6.5625rem);
  --admin-bar-height: var(--wp-admin--admin-bar--height, 0px);
}
:root {
  --scroll-margin: clamp(0rem, calc(0vw + 0rem), 0rem);
  --offset: calc(var(--scroll-margin) + var(--header-height));
}
/* Feat: Smart Spacing */
:root {
  --paragraph-spacing: 1em;
  --heading-spacing: 1.2em;
  --list-spacing: var(--paragraph-spacing);
  --list-indent-spacing: 2em;
  --list-item-spacing: 0.5em;
  --nested-list-indent-spacing: 1em;
  --flow-spacing: var(--paragraph-spacing);
  --figure-spacing: var(--paragraph-spacing);
  --figcaption-spacing: 0.5em;
  --blockquote-spacing: var(--paragraph-spacing);
}
/* Feat: Buttons */
:root {
  --option-primary-btn-outline: on;
  --option-secondary-btn-outline: on;
  --option-tertiary-btn-outline: on;
  --btn-padding-block: 0.5em;
  --btn-padding-inline: 1.25em;
  --btn-min-width: 8.75rem;
  --btn-width: max-content;
  --btn-line-height: 1;
  --btn-font-size: var(--text-m);
  --btn-font-weight: 400;
  --btn-font-family: inherit;
  --btn-font-style: normal;
  --btn-text-decoration: none;
  --btn-text-decoration-hover: none;
  --btn-letter-spacing: 0;
  --btn-text-transform: none;
  --btn-border-width: 2px;
  --btn-border-style: solid;
  --btn-border-radius: var(--radius);
  --btn-radius: var(--radius);
  --btn-justify-content: center;
  --btn-align-items: center;
  --btn-text-align: center;
}
/* Feat: Link Variables */
:root {
  --link-color: var(--primary);
  --link-color-hover: var(--secondary);
  --link-transition: var(--transition);
  --link-decoration: none;
  --link-decoration-hover: inherit;
  --link-underline-offset: auto;
  --link-weight: inherit;
}
/* Feat: Card Variables */
:root {
  --card-padding: var(--space-m);
  --card-gap: calc(var(--content-gap) / 2);
  --card-border-width: var(--border-width);
  --card-border-style: solid;
  --card-display: flex;
  --card-radius: var(--radius);
  --card-min-radius: 4px;
  --card-heading-size: var(--h3);
  --card-text-size: var(--text-s);
  --card-button-font-size: var(--text-s);
  --card-icon-size: 68px;
  --card-icon-padding: var(--icon-padding);
  --card-icon-border-width: var(--icon-border-width);
  --card-icon-border-style: var(--icon-border-style);
  --card-icon-radius: var(--icon-radius);
  --card-icon-background: var(--icon-background);
  --card-icon-color: var(--icon-color);
  --card-icon-border-color: var(--icon-border-color);
  --card-line-height: 1.4;
  --card-avatar-radius: var(--radius);
  --card-avatar-border-width: var(--border-width);
  --card-avatar-border-style: var(--border-style);
  --card-avatar-size: 140px;
  --card-avatar-aspect-ratio: 1;
  --card-media-radius: var(--radius);
  --card-media-aspect-ratio: 1.3333333333;
  --card-media-object-fit: cover;
  --card-background: var(--neutral-ultra-light);
  --card-heading-color: var(--text-dark);
  --card-text-color: var(--text-dark-muted);
  --card-link-color: var(--primary);
  --card-link-color-hover: var(--primary-hover);
  --card-button-style: primary;
  --card-border-color: var(--border-color-dark);
}
/* Feat: Column Variables */
:root {
  --col-width-s: 13rem;
  --col-width-m: 25rem;
  --col-width-l: 38rem;
  --col-rule-width-s: 0.5px;
  --col-rule-width-m: 1px;
  --col-rule-width-l: 3px;
}
/* Feat: Sticky Variables */
:root {
  --sticky-offset-custom: 60px;
  --sticky-offset: var(--header-height, var(--sticky-offset-custom, 0));
}
/* Contextual Color Variables */
:root {
  --body-bg-color: var(--white);
  --bg-ultra-light: var(--neutral-ultra-light);
  --bg-light: var(--neutral-light);
  --bg-dark: var(--neutral-dark);
  --bg-ultra-dark: var(--neutral-ultra-dark);
  --text-light: var(--white);
  --text-light-muted: color-mix(in srgb, var(--text-light) 80%, transparent);
  --text-dark: var(--black);
  --text-dark-muted: color-mix(in srgb, var(--text-dark) 80%, transparent);
}
/* Feat: Contextual Relationship Variables */
:root {
  --bg-ultra-light-text: var(--text-dark);
  --bg-light-text: var(--text-dark);
  --bg-dark-text: var(--text-light);
  --bg-ultra-dark-text: var(--text-light);
  --bg-ultra-light-heading: var(--text-dark);
  --bg-light-heading: var(--text-dark);
  --bg-dark-heading: var(--text-light);
  --bg-ultra-dark-heading: var(--text-light);
  --bg-ultra-light-button: primary;
  --bg-light-button: primary;
  --bg-dark-button: primary;
  --bg-ultra-dark-button: primary;
  --bg-ultra-light-icon: light;
  --bg-light-icon: light;
  --bg-dark-icon: dark;
  --bg-ultra-dark-icon: dark;
}
/* Feat: Radius Variables */
:root {
  --radius: 10px;
  --radius-50: 50%;
  --radius-circle: 50vw;
  --radius-none: 0;
  --radius-xs: 4.4444444444px;
  --radius-s: 6.6666666667px;
  --radius-m: 10px;
  --radius-l: 15px;
  --radius-xl: 22.5px;
  --radius-xxl: 33.75px;
}
/* Feat: Border Variables */
:root {
  --border-size: 1px;
  --border-width: 1px;
  --border-style: solid;
  --border-color-dark: color-mix(in oklch, var(--black) 20%, transparent);
  --border-color-light: color-mix(in oklch, var(--white) 20%, transparent);
  --border: var(--border-size) var(--border-style) var(--border-color-dark);
  --border-light: var(--border-size) var(--border-style) var(--border-color-light);
  --border-dark: var(--border-size) var(--border-style) var(--border-color-dark);
}
/* Feat: Divider Variables */
:root {
  --divider-size: 1px;
  --divider-style: solid;
  --divider-inline-size: 100%;
  --divider-gap: var(--content-gap);
  --divider-color-dark: color-mix(in srgb, var(--black) 20%, transparent);
  --divider-color-light: color-mix(in srgb, var(--white) 20%, transparent);
  --divider: var(--divider-size) var(--divider-style) var(--divider-color-dark);
  --divider-light: var(--divider-size) var(--divider-style) var(--divider-color-light);
  --divider-dark: var(--divider-size) var(--divider-style) var(--divider-color-dark);
}
/* Feat: Transition Variables */
:root {
  --transition-duration: 0.3s;
  --transition-timing: ease-in-out;
  --transition-delay: 0s;
  --transition: 0.3s ease-in-out 0s;
}
/* Feat: Icon Variables */
:root {
  --icon-scheme: inherit;
  --icon-size: 32px;
  --icon-padding: 0.35em;
  --icon-radius: var(--radius);
  --icon-background: var(--neutral-ultra-light);
  --icon-background-hover: var(--neutral-light);
  --icon-border-color: var(--border-color-dark);
  --icon-border-color-hover: inherit;
  --icon-border-width: var(--border-width);
  --icon-border-style: var(--border-style);
  --icon-color: var(--text-dark-muted);
  --icon-color-hover: var(--primary);
  --icon-list-icon-size: 1em;
  --icon-list-gap: 1em;
  --icon-size-xs: 12px;
  --icon-size-s: 24px;
  --icon-size-m: 32px;
  --icon-size-l: 64px;
  --icon-size-xl: 128px;
  --icon-padding-xs: var(--icon-padding);
  --icon-padding-s: var(--icon-padding);
  --icon-padding-m: var(--icon-padding);
  --icon-padding-l: var(--icon-padding);
  --icon-padding-xl: var(--icon-padding);
}
/* Feat: Box Shadow Variables */
:root {
  --box-shadow-1: 0 0 40px var(--black-trans-10);
  --box-shadow-2: 0 0 60px var(--black-trans-20);
  --box-shadow-3: 0 0 80px var(--black-trans-30);
}
/* Feat: Text Shadow Variables */
:root {
  --text-shadow-1: 0 1px 2px color-mix(in srgb, black 20%, transparent);
  --text-shadow-2: 0 2px 4px color-mix(in srgb, black 30%, transparent);
  --text-shadow-3: 0 4px 8px color-mix(in srgb, black 40%, transparent);
}
/* Feat: Drop Shadow Variables */
:root {
  --drop-shadow-1: drop-shadow(0 1px 2px color-mix(in srgb, black 15%, transparent));
  --drop-shadow-2: drop-shadow(0 4px 6px color-mix(in srgb, black 20%, transparent));
  --drop-shadow-3: drop-shadow(0 10px 15px color-mix(in srgb, black 25%, transparent));
}
/* Feat: Blockquote Variables */
:root {
  --blockquote-padding: var(--space-m);
  --blockquote-gap: 1em;
  --blockquote-border-width: 0 0 0 3px;
  --blockquote-border-style: solid;
  --blockquote-border-color: var(--primary);
  --blockquote-border-radius: var(--radius);
  --blockquote-background: var(--neutral-ultra-light);
  --blockquote-box-shadow: none;
  --blockquote-text-color: inherit;
  --blockquote-text-font-family: inherit;
  --blockquote-text-font-style: normal;
  --blockquote-text-font-size: var(--text-l);
  --blockquote-text-font-weight: normal;
  --blockquote-text-line-height: inherit;
  --blockquote-text-text-align: left;
  --blockquote-text-text-transform: none;
  --blockquote-footer-padding: 0;
  --blockquote-footer-margin-block: 1em 0;
  --blockquote-footer-font-family: inherit;
  --blockquote-footer-font-size: var(--text-s);
  --blockquote-footer-font-weight: normal;
  --blockquote-footer-font-style: normal;
  --blockquote-footer-line-height: 1.5;
  --blockquote-footer-text-transform: none;
  --blockquote-footer-color: currentColor;
  --blockquote-cite-font-family: inherit;
  --blockquote-cite-font-size: inherit;
  --blockquote-cite-font-weight: inherit;
  --blockquote-cite-font-style: inherit;
  --blockquote-cite-line-height: inherit;
  --blockquote-cite-text-transform: inherit;
  --blockquote-cite-color: currentColor;
}</style>
<link rel="stylesheet" id="automaticcss-core-css" type="text/css" media="all" data-pmdelayedstyle="https://pixelyzed.com/wp-content/cache/perfmatters/pixelyzed.com/minify/ea7589aefaf9.automatic.min.css?ver=1772919342">
<style id="automaticcss-custom-css">/* File: automatic-custom-css.css - Version: 4.0.0-rc-1 - Generated: 2026-03-07 16:35:42 */
body .cmplz-close [data-icon]:is(svg, i, a) {
  padding: inherit;
  color: inherit;
  background: inherit;
  border: inherit;
  font-size: inherit;
}</style>
<link rel="stylesheet" id="automaticcss-gutenberg-color-palette-css" type="text/css" media="all" data-pmdelayedstyle="https://pixelyzed.com/wp-content/cache/perfmatters/pixelyzed.com/minify/b1c92ebf441b.automatic-gutenberg-color-palette.min.css?ver=1772919344">
<style>.perfmatters-lazy-youtube{position:relative;width:100%;max-width:100%;height:0;padding-bottom:56.23%;overflow:hidden}.perfmatters-lazy-youtube img{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;max-width:100%;height:auto;margin:auto;border:none;cursor:pointer;transition:.5s all;-webkit-transition:.5s all;-moz-transition:.5s all}.perfmatters-lazy-youtube img:hover{-webkit-filter:brightness(75%)}.perfmatters-lazy-youtube .play{position:absolute;top:50%;left:50%;right:auto;width:68px;height:48px;margin-left:-34px;margin-top:-24px;background:url(https://pixelyzed.com/wp-content/plugins/perfmatters/img/youtube.svg) no-repeat;background-position:center;background-size:cover;pointer-events:none;filter:grayscale(1)}.perfmatters-lazy-youtube:hover .play{filter:grayscale(0)}.perfmatters-lazy-youtube iframe{position:absolute;top:0;left:0;width:100%;height:100%;z-index:99}.wp-has-aspect-ratio .wp-block-embed__wrapper{position:relative;}.wp-has-aspect-ratio .perfmatters-lazy-youtube{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;padding-bottom:0}.perfmatters-lazy.pmloaded,.perfmatters-lazy.pmloaded>img,.perfmatters-lazy>img.pmloaded,.perfmatters-lazy[data-ll-status=entered]{animation:500ms pmFadeIn}@keyframes pmFadeIn{0%{opacity:0}100%{opacity:1}}body .perfmatters-lazy-css-bg:not([data-ll-status=entered]),body .perfmatters-lazy-css-bg:not([data-ll-status=entered]) *,body .perfmatters-lazy-css-bg:not([data-ll-status=entered])::before,body .perfmatters-lazy-css-bg:not([data-ll-status=entered])::after,body .perfmatters-lazy-css-bg:not([data-ll-status=entered]) *::before,body .perfmatters-lazy-css-bg:not([data-ll-status=entered]) *::after{background-image:none!important;will-change:transform;transition:opacity 0.025s ease-in,transform 0.025s ease-in!important;}</style></head>

<body class="home wp-singular page-template-default page page-id-2279 wp-custom-logo wp-embed-responsive wp-theme-etch-theme wp-child-theme-etch-pix-child surerank-pro-1.5.0 surerank-1.6.6 unknown">
	
<header data-etch-element="section" class="pix-header header"><div data-etch-element="container" class="pix-header__inner"><a href="https://pixelyzed.com" class="pix-header__logo-link" aria-label="Link to homepage"> <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:serif="http://www.serif.com/" width="100%" height="100%" viewbox="0 0 400 78" version="1.1" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><g transform="matrix(1,0,0,1,-100,-346)"><g transform="matrix(1,0,0,1,24.9997,0)"><g transform="matrix(1,0,0,1,102.114,403.534)"><path d="M0,-20.962C0,-29.461 -2.509,-34.964 -10.522,-34.964C-13.922,-34.964 -17.725,-34.56 -19.991,-34.155L-19.991,-2.104C-17.321,-1.618 -13.112,-1.294 -10.522,-1.294C-2.59,-1.294 0,-6.474 0,-15.135L0,-20.962ZM-10.522,4.695C-13.031,4.695 -16.835,4.371 -19.991,3.805L-19.991,18.455C-19.991,19.264 -20.639,19.992 -21.529,19.992L-25.658,19.992C-26.467,19.992 -27.114,19.345 -27.114,18.455L-27.114,-37.231C-27.114,-38.283 -26.872,-38.769 -25.414,-39.092C-21.125,-40.144 -15.459,-40.954 -10.522,-40.954C1.538,-40.954 7.123,-33.103 7.123,-20.962L7.123,-15.135C7.123,-2.427 1.295,4.695 -10.522,4.695" style="fill:rgb(244,245,245);fill-rule:nonzero;"></path></g><g transform="matrix(1,0,0,1,173.586,363.147)"><path d="M0,44.516L-5.585,44.516C-6.151,44.516 -6.394,44.354 -6.718,43.869L-18.292,26.952L-29.866,43.706C-30.352,44.435 -30.513,44.516 -31.242,44.516L-36.099,44.516C-36.746,44.516 -37.07,44.192 -37.07,43.706C-37.07,43.464 -36.988,43.059 -36.665,42.655L-22.096,21.853L-35.856,2.023C-36.099,1.619 -36.26,1.295 -36.26,0.971C-36.26,0.405 -35.774,0 -35.046,0L-29.785,0C-29.137,0 -28.733,0.243 -28.167,1.133L-17.887,16.349L-7.527,1.133C-6.799,0.081 -6.556,0 -5.827,0L-1.133,0C-0.485,0 -0.081,0.405 -0.081,0.971C-0.081,1.295 -0.243,1.619 -0.485,2.023L-14.083,21.368L0.729,42.655C0.971,42.978 1.052,43.302 1.052,43.625C1.052,44.111 0.81,44.516 0,44.516" style="fill:rgb(244,245,245);fill-rule:nonzero;"></path></g><g transform="matrix(1,0,0,1,210.173,389.289)"><path d="M0,-7.769C0,-16.915 -3.481,-20.476 -10.603,-20.476C-17.563,-20.476 -21.448,-16.511 -21.448,-7.769L-21.448,-7.041L0,-7.041L0,-7.769ZM5.666,-1.618L-21.448,-1.618L-21.448,-0.485C-21.448,9.147 -17.644,12.708 -10.198,12.708C-5.504,12.708 0.486,12.384 4.209,11.818L4.614,11.818C5.261,11.818 5.909,12.142 5.909,12.951L5.909,15.703C5.909,16.755 5.585,17.322 4.29,17.564C-0.324,18.455 -4.775,18.94 -10.198,18.94C-19.506,18.94 -28.571,14.57 -28.571,-0.485L-28.571,-7.769C-28.571,-19.343 -22.177,-26.709 -10.603,-26.709C1.214,-26.709 7.204,-19.262 7.204,-7.769L7.204,-3.399C7.204,-2.346 6.637,-1.618 5.666,-1.618" style="fill:rgb(244,245,245);fill-rule:nonzero;"></path></g><g transform="matrix(1,0,0,1,233.566,346.797)"><path d="M0,60.866L-4.209,60.866C-5.018,60.866 -5.665,60.137 -5.665,59.247L-5.665,1.538C-5.665,0.729 -5.099,0 -4.209,0L0,0C0.81,0 1.457,0.648 1.457,1.538L1.457,59.247C1.457,60.056 0.891,60.866 0,60.866" style="fill:rgb(244,245,245);fill-rule:nonzero;"></path></g><g transform="matrix(1,0,0,1,281.321,421.746)"><path d="M0,-56.657L-13.355,-10.037C-15.864,-1.295 -18.859,1.942 -28.167,1.942C-30.433,1.942 -33.266,1.619 -34.965,1.214C-35.937,0.971 -36.665,0.728 -36.665,-0.081L-36.665,-3.076C-36.665,-3.966 -36.018,-4.371 -35.127,-4.371L-34.884,-4.371C-33.104,-4.209 -29.462,-3.885 -27.681,-3.885C-23.068,-3.885 -21.044,-5.099 -19.668,-10.765L-18.859,-14.083L-19.992,-14.083C-22.42,-14.083 -24.524,-14.65 -25.981,-19.668L-36.746,-56.657C-36.827,-56.819 -36.827,-57.061 -36.827,-57.223C-36.827,-58.033 -36.341,-58.599 -35.37,-58.599L-30.918,-58.599C-30.271,-58.599 -29.704,-57.952 -29.543,-57.304L-19.992,-22.177C-19.587,-20.558 -19.021,-20.397 -18.454,-20.397L-17.159,-20.397L-7.285,-57.385C-7.123,-58.033 -6.475,-58.599 -5.747,-58.599L-1.214,-58.599C-0.405,-58.599 0.081,-58.033 0.081,-57.223C0.081,-57.061 0.081,-56.819 0,-56.657" style="fill:rgb(244,245,245);fill-rule:nonzero;"></path></g><g transform="matrix(1,0,0,1,317.908,363.147)"><path d="M0,44.516L-24.443,44.516C-27.924,44.516 -29.381,42.33 -29.381,40.065L-29.381,38.526C-29.381,36.261 -28.895,35.046 -27.519,33.265L-6.637,7.284C-6.475,7.042 -6.313,6.799 -6.313,6.556C-6.313,6.232 -6.475,5.989 -7.123,5.989L-26.791,5.989C-27.681,5.989 -28.409,5.261 -28.409,4.371L-28.409,1.619C-28.409,0.728 -27.681,0 -26.791,0L-2.995,0C0.324,0 1.538,1.538 1.538,3.966L1.538,5.908C1.538,7.608 0.971,8.822 -0.324,10.36L-21.611,36.989C-21.934,37.312 -22.015,37.636 -22.015,37.879C-22.015,38.284 -21.934,38.526 -21.368,38.526L0,38.526C0.89,38.526 1.619,39.255 1.619,40.146L1.619,42.897C1.619,43.787 0.89,44.516 0,44.516" style="fill:rgb(244,245,245);fill-rule:nonzero;"></path></g><g transform="matrix(1,0,0,1,356.194,389.289)"><path d="M0,-7.769C0,-16.915 -3.481,-20.476 -10.603,-20.476C-17.563,-20.476 -21.448,-16.511 -21.448,-7.769L-21.448,-7.041L0,-7.041L0,-7.769ZM5.666,-1.618L-21.448,-1.618L-21.448,-0.485C-21.448,9.147 -17.644,12.708 -10.198,12.708C-5.504,12.708 0.486,12.384 4.209,11.818L4.614,11.818C5.261,11.818 5.909,12.142 5.909,12.951L5.909,15.703C5.909,16.755 5.585,17.322 4.29,17.564C-0.324,18.455 -4.775,18.94 -10.198,18.94C-19.506,18.94 -28.571,14.57 -28.571,-0.485L-28.571,-7.769C-28.571,-19.343 -22.177,-26.709 -10.603,-26.709C1.214,-26.709 7.204,-19.262 7.204,-7.769L7.204,-3.399C7.204,-2.346 6.637,-1.618 5.666,-1.618" style="fill:rgb(244,245,245);fill-rule:nonzero;"></path></g><g transform="matrix(1,0,0,1,398.77,385.648)"><path d="M0,-16.269C-2.671,-16.754 -6.88,-16.835 -9.47,-16.835C-17.401,-16.835 -19.991,-11.898 -19.991,-3.238L-19.991,2.59C-19.991,11.412 -17.482,16.35 -9.47,16.35C-6.718,16.35 -2.752,16.106 0,15.864L0,-16.269ZM5.423,21.205C0.405,22.177 -4.532,22.581 -9.47,22.581C-21.53,22.581 -27.114,14.73 -27.114,2.59L-27.114,-3.238C-27.114,-15.945 -21.286,-23.068 -9.47,-23.068C-6.96,-23.068 -3.156,-22.825 0,-22.258L0,-37.313C0,-38.122 0.648,-38.85 1.538,-38.85L5.665,-38.85C6.475,-38.85 7.123,-38.203 7.123,-37.313L7.123,19.344C7.123,20.396 6.88,20.963 5.423,21.205" style="fill:rgb(244,245,245);fill-rule:nonzero;"></path></g><g transform="matrix(-1,0,0,1,866.184,-436.302)"><rect x="440.554" y="782.613" width="10.076" height="10.076" style="fill:rgb(251,203,72);"></rect></g><g transform="matrix(-1,0,0,1,904.47,-428.24)"><rect x="459.697" y="778.582" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,934.698,-428.24)"><rect x="474.811" y="778.582" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,964.924,-428.24)"><rect x="489.924" y="778.582" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,874.244,-398.014)"><rect x="444.584" y="763.469" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,904.47,-398.014)"><rect x="459.697" y="763.469" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,934.698,-398.014)"><rect x="474.811" y="763.469" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,964.924,-398.014)"><rect x="489.924" y="763.469" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,874.244,-367.788)"><rect x="444.584" y="748.356" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,904.47,-367.788)"><rect x="459.697" y="748.356" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,934.698,-367.788)"><rect x="474.811" y="748.356" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,964.924,-367.788)"><rect x="489.924" y="748.356" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,874.244,-337.56)"><rect x="444.584" y="733.242" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,904.47,-337.56)"><rect x="459.697" y="733.242" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,934.698,-337.56)"><rect x="474.811" y="733.242" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,964.924,-337.56)"><rect x="489.924" y="733.242" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(1,0,0,1,125.184,363.147)"><path d="M0,44.516L-3.885,44.516C-4.775,44.516 -5.504,43.787 -5.504,42.897L-5.504,1.619C-5.504,0.728 -4.775,0 -3.885,0L0,0C0.891,0 1.619,0.728 1.619,1.619L1.619,42.897C1.619,43.787 0.891,44.516 0,44.516" style="fill:rgb(244,245,245);fill-rule:nonzero;"></path></g><g transform="matrix(1,0,0,1,125.346,346.312)"><path d="M0,9.712L-4.128,9.712C-5.018,9.712 -5.746,8.984 -5.746,8.093L-5.746,1.618C-5.746,0.728 -5.018,0 -4.128,0L0,0C0.891,0 1.619,0.728 1.619,1.618L1.619,8.093C1.619,8.984 0.891,9.712 0,9.712" style="fill:rgb(251,203,72);fill-rule:nonzero;"></path></g></g></g></svg></a><div data-etch-element="flex-div" class="header__nav-wrapper"><nav aria-label="Primary" data-etch-nav="main" aria-expanded="false" data-nav-interaction="hover" class="etch-nav"><ul class="etch-nav__list"><li class="etch-nav__item"><a href="/" class="etch-nav__link">Home</a></li><li class="etch-nav__item etch-nav__item--has-dropdown"><button aria-label="open About navigation" aria-haspopup="true" aria-expanded="false" class="etch-nav__button etch-nav__button--dropdown-toggle"><span>About</span><svg width="24" height="24" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71L8.46 9.17a1 1 0 0 0-1.41 0a1 1 0 0 0 0 1.42l4.24 4.24a1 1 0 0 0 1.42 0L17 10.59a1 1 0 0 0 0-1.42"></path></svg></button><ul aria-label="About navigation" class="etch-nav__dropdown"><li class="etch-nav__item"><a href="/about" class="etch-nav__link">About This Site</a></li><li class="etch-nav__item"><a href="/about/about-me" class="etch-nav__link">About Me</a></li><li class="etch-nav__item"><a href="/about/behind-curtain" class="etch-nav__link">Behind the Curtain</a></li><li class="etch-nav__item"><a href="/abount/commenting-policy" class="etch-nav__link">Commenting Policy</a></li><li class="etch-nav__item"><a href="/about/disclosure" class="etch-nav__link">Disclosure</a></li></ul></li><li class="etch-nav__item"><a href="/articles" class="etch-nav__link">Blog</a></li><li class="etch-nav__item"><a href="/contact" class="etch-nav__link">Contact</a></li><li class="etch-nav__item lang-switcher"><a href="https://pixelyzed.com/fr/" title="FR">FR</a></li></ul></nav><button aria-expanded="false" aria-label="Open Navigation" class="etch-burger"><span class="etch-burger__lines"></span></button><div class="search-container"><button id="searchToggleBtn" aria-label="Open search" aria-expanded="false" type="button" class="search-toggle-btn"><svg width="20" height="20" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="search-icon"><circle cx="11" cy="11" r="8" stroke="currentColor" stroke-width="2"></circle><path d="M21 21l-4.35-4.35" stroke="currentColor" stroke-width="2"></path></svg><svg width="20" height="20" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="close-icon"><line x1="18" y1="6" x2="6" y2="18" stroke="currentColor" stroke-width="2"></line><line x1="6" y1="6" x2="18" y2="18" stroke="currentColor" stroke-width="2"></line></svg></button><div id="searchFormWrapper" class="search-form-wrapper"><form role="search" method="get" action="https://pixelyzed.com" class="search-form"><input type="search" id="searchField" placeholder="Search..." value="" name="s" autocomplete="off" aria-label="Search content" class="search-field"><button type="submit" aria-label="Submit search" class="search-submit"><svg width="16" height="16" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><circle cx="11" cy="11" r="8" stroke="currentColor" stroke-width="2"></circle><path d="M21 21l-4.35-4.35" stroke="currentColor" stroke-width="2"></path></svg></button></form></div></div></div></div></header><main><section data-etch-element="section" class="home-hero"><div data-etch-element="container" class="home-hero__inner"><h1 class="home-hero__heading">WordPress &amp; Web Development  </h1><p class="home-hero__text">Pixelyzed.com is my web development playground where I test new tools and techniques. It's also a place where I share tips, techniques, product reviews, news and opinions based on my experience building web sites with WordPress from the trenches of <a href="https://zonew3.com" target="_blank" rel="noopener" aria-label="Opens the web site of my boutique web design and development angency: Zone W3.">my agency</a>‘s work for our clients. It’s about lessons learned and my evolving toolset and why I use what I use. We specialize in multisite and how to use it for different use cases including multilingual sites.</p><p class="home-hero__text">This site is also about personal topics: music, photos and opinions on subjects outside the web industry. I can be opinionated about that stuff but I change my mind often in front of new information or new and better tools. But also because, like most people in the web building industry, I'm constantly learning new things and I invite you to accompany me in this process.</p></div><figure style="--overlay-color: var(--neutral); --overlay-opacity: 70%;" data-has-overlay="true" class="background-image"><img data-perfmatters-preload decoding="async" sizes="(max-width: 2048px) 100vw, 2048px" srcset="https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045.jpg 2048w, https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045-300x225.jpg 300w, https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045-1024x768.jpg 1024w, https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045-150x150.jpg 150w, https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045-768x576.jpg 768w, https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045-1536x1152.jpg 1536w, https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045-1200x675.jpg 1200w, https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045-1200x900.jpg 1200w, https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045-1200x1200.jpg 1200w, https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045-600x450.jpg 600w, https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045-600x600.jpg 600w, https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045-1320x990.jpg 1320w" src="https://pixelyzed.com/wp-content/uploads/2025/06/coucher_soleil_Beloeil0045.jpg" alt="Sunset over the Richelieu River and Beloeil from Otterburn Park" width="2048" height="1536" class="background-image__img" style="object-position: 25% 50%;" title="Home" fetchpriority="high"></figure><figure data-etch-element="flex-div" style="--pix-opacity:0.15;" class="pix-pixels-bgnd right"><svg id="Layer_2" viewbox="0 0 100 100" class="pix-pixels-bgnd__svg" aria-hidden="true" focusable="false"><g id="Layer_1-2"><g><rect width="16.99" height="16.99" fill="#fff"></rect><rect x="32.23" y="6.64" width="16.99" height="16.99" fill="#fff"></rect><rect x="57.62" y="6.64" width="16.99" height="16.99" fill="#fff"></rect><rect x="83.01" y="6.64" width="16.99" height="16.99" fill="#fff"></rect><rect x="6.84" y="32.03" width="16.99" height="16.99" fill="#fff"></rect><rect x="32.23" y="32.03" width="16.99" height="16.99" fill="#fff"></rect><rect x="57.62" y="32.03" width="16.99" height="16.99" fill="#fff"></rect><rect x="83.01" y="32.03" width="16.99" height="16.99" fill="#fff"></rect><rect x="6.84" y="57.42" width="16.99" height="16.99" fill="#fff"></rect><rect x="32.23" y="57.42" width="16.99" height="16.99" fill="#fff"></rect><rect x="57.62" y="57.42" width="16.99" height="16.99" fill="#fff"></rect><rect x="83.01" y="57.42" width="16.99" height="16.99" fill="#fff"></rect><rect x="6.84" y="83.01" width="16.99" height="16.99" fill="#fff"></rect><rect x="32.23" y="83.01" width="16.99" height="16.99" fill="#fff"></rect><rect x="57.62" y="83.01" width="16.99" height="16.99" fill="#fff"></rect><rect x="83.01" y="83.01" width="16.99" height="16.99" fill="#fff"></rect></g></g></svg></figure></section><section data-etch-element="section" class="pix-intro"><div data-etch-element="container" class="pix-intro__inner"><div data-etch-element="flex-div" class="pix-intro__content-wrapper"><h2>Welcome</h2><p>I’m the co-founder of a branding, <a href="https://zonew3.com/en/" rel="noopener noreferer" target="_blank" aria-label="Opens the web site of Zone W3, my boutique web design and development angency located on the South Shore of Montreal.">web design and development agency</a> helping organizations of all sizes create or improve their online presence and brand. I’m very passionate about my work as it has a direct impact on the business of our clients and that is what ultimately fuels me to move forward, learn and improve my skills then share that knowledge with my clients as well as here on this site.</p><p>But I’ve also been a musician for most of my life and I dedicate most of my free time to playing with my band, Something Else, practicing and geeking out on guitar and other music gear 😉</p><p>Find out more about my other endeavors and interests here:</p><div data-etch-element="flex-div" class="pix-ctas-wrapper"><a href="https://zonew3.com/en/" rel="noopener noreferer" target="_blank" aria-label="Opens the web site of Zone W3, my boutique web design and development angency located on the South Shore of Montreal." class="btn--primary">Zone W3 Media Design</a><a href="https://somethingelsemusic.net/" rel="noopener noreferer" target="_blank" class="btn--primary">bySomethingELSE</a></div></div><figure data-etch-element="flex-div" class="pix-intro__media-wrapper"><img data-perfmatters-preload width="600" height="650" decoding="async" src="https://pixelyzed.com/wp-content/uploads/2020/05/stephane_twitter.jpg" alt="Stéphane Bergeron" title="Home" fetchpriority="high"></figure></div><figure data-etch-element="flex-div" style="--pix-opacity:0.85;" class="pix-pixels-bgnd left"><svg id="Layer_2" viewbox="0 0 100 100" class="pix-pixels-bgnd__svg" aria-hidden="true" focusable="false"><g id="Layer_1-2"><g><rect width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="32.23" y="6.64" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="57.62" y="6.64" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="83.01" y="6.64" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="6.84" y="32.03" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="32.23" y="32.03" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="57.62" y="32.03" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="83.01" y="32.03" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="6.84" y="57.42" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="32.23" y="57.42" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="57.62" y="57.42" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="83.01" y="57.42" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="6.84" y="83.01" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="32.23" y="83.01" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="57.62" y="83.01" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="83.01" y="83.01" width="16.99" height="16.99" fill="#dfe0e2"></rect></g></g></svg></figure></section><section data-etch-element="section" class="pix-latest-posts"><div data-etch-element="container"><h2>Latest Posts</h2><ul data-etch-element="flex-div" class="pix-posts-grid"><li data-etch-element="flex-div" class="pix-post-card"><div data-etch-element="flex-div" class="pix-post-card__heading-wrapper"><figure class="pix-post-card__featured-image-wrapper"><img data-perfmatters-preload decoding="async" sizes="(max-width: 768px) 100vw, 768px" srcset="https://pixelyzed.com/wp-content/uploads/2026/01/y2pqb9bnspw-300x300.jpg 300w, https://pixelyzed.com/wp-content/uploads/2026/01/y2pqb9bnspw-150x150.jpg 150w, https://pixelyzed.com/wp-content/uploads/2026/01/y2pqb9bnspw-768x768.jpg 768w" src="https://pixelyzed.com/wp-content/uploads/2026/01/y2pqb9bnspw-768x768.jpg" alt="A computer keyboard with the number 2055 on it" width="768" height="768" class="pix-post-card__featured-image" title="Home" fetchpriority="high"></figure><h3 class="pix-post-card__post-heading"><a href="https://pixelyzed.com/articles/my-2025-year-end-review/">My 2025 Year-End Review</a></h3><div data-etch-element="flex-div" class="pix-post-card__meta-wrapper"><span>January 4, 2026</span></div></div><div data-etch-element="flex-div" class="pix-post-card__content-wrapper"><p>Here's my 2025 year-end review. This is about my 2025 in WordPress and the things that changed for me, tools I discovered, workflows that changed and all that. If you are looking…</p><a href="https://pixelyzed.com/articles/my-2025-year-end-review/" aria-hidden="true" class="btn--primary">Read More…</a></div></li><li data-etch-element="flex-div" class="pix-post-card"><div data-etch-element="flex-div" class="pix-post-card__heading-wrapper"><figure class="pix-post-card__featured-image-wrapper"><img data-perfmatters-preload decoding="async" sizes="(max-width: 768px) 100vw, 768px" srcset="https://pixelyzed.com/wp-content/uploads/2025/12/bvoumgh5gby-300x200.jpg 300w, https://pixelyzed.com/wp-content/uploads/2025/12/bvoumgh5gby-150x150.jpg 150w, https://pixelyzed.com/wp-content/uploads/2025/12/bvoumgh5gby-768x512.jpg 768w" src="https://pixelyzed.com/wp-content/uploads/2025/12/bvoumgh5gby-768x512.jpg" alt="Laptop with WordPress edit screen" width="768" height="512" class="pix-post-card__featured-image" title="Home" fetchpriority="high"></figure><h3 class="pix-post-card__post-heading"><a href="https://pixelyzed.com/articles/changes-on-pixelyzed-com-for-2026-and-beyond/">Changes on Pixelyzed.com for 2026 and Beyond</a></h3><div data-etch-element="flex-div" class="pix-post-card__meta-wrapper"><span>December 28, 2025</span></div></div><div data-etch-element="flex-div" class="pix-post-card__content-wrapper"><p>This post was a long time coming but I started writing again recently. I have quite a few articles in draft here or on my computer. But there are two big changes…</p><a href="https://pixelyzed.com/articles/changes-on-pixelyzed-com-for-2026-and-beyond/" aria-hidden="true" class="btn--primary">Read More…</a></div></li><li data-etch-element="flex-div" class="pix-post-card"><div data-etch-element="flex-div" class="pix-post-card__heading-wrapper"><figure class="pix-post-card__featured-image-wrapper"><img data-perfmatters-preload decoding="async" sizes="auto, (max-width: 768px) 100vw, 768px" srcset="https://pixelyzed.com/wp-content/uploads/2023/05/b0tawaqubza-300x200.jpg 300w, https://pixelyzed.com/wp-content/uploads/2023/05/b0tawaqubza-150x150.jpg 150w, https://pixelyzed.com/wp-content/uploads/2023/05/b0tawaqubza-768x512.jpg 768w" src="https://pixelyzed.com/wp-content/uploads/2023/05/b0tawaqubza-768x512.jpg" alt="black laptop computer on brown wooden table" width="768" height="512" class="pix-post-card__featured-image" title="Home" fetchpriority="high" /></figure><h3 class="pix-post-card__post-heading"><a href="https://pixelyzed.com/articles/the-state-of-my-2023-toolset-themes-generatepress/">The State of my 2023 Toolset – Themes – GeneratePress</a></h3><div data-etch-element="flex-div" class="pix-post-card__meta-wrapper"><span>May 10, 2023</span></div></div><div data-etch-element="flex-div" class="pix-post-card__content-wrapper"><p>The last time I wrote an article about my themes toolset was over 5 years ago. A lot has happened for me personally since then as well as in the WordPress ecosystem….</p><a href="https://pixelyzed.com/articles/the-state-of-my-2023-toolset-themes-generatepress/" aria-hidden="true" class="btn--primary">Read More…</a></div></li></ul></div><figure data-etch-element="flex-div" style="--pix-opacity:1;" class="pix-pixels-bgnd right"><svg id="Layer_2" viewbox="0 0 100 100" class="pix-pixels-bgnd__svg" aria-hidden="true" focusable="false"><g id="Layer_1-2"><g><rect width="16.99" height="16.99" fill="#fff"></rect><rect x="32.23" y="6.64" width="16.99" height="16.99" fill="#fff"></rect><rect x="57.62" y="6.64" width="16.99" height="16.99" fill="#fff"></rect><rect x="83.01" y="6.64" width="16.99" height="16.99" fill="#fff"></rect><rect x="6.84" y="32.03" width="16.99" height="16.99" fill="#fff"></rect><rect x="32.23" y="32.03" width="16.99" height="16.99" fill="#fff"></rect><rect x="57.62" y="32.03" width="16.99" height="16.99" fill="#fff"></rect><rect x="83.01" y="32.03" width="16.99" height="16.99" fill="#fff"></rect><rect x="6.84" y="57.42" width="16.99" height="16.99" fill="#fff"></rect><rect x="32.23" y="57.42" width="16.99" height="16.99" fill="#fff"></rect><rect x="57.62" y="57.42" width="16.99" height="16.99" fill="#fff"></rect><rect x="83.01" y="57.42" width="16.99" height="16.99" fill="#fff"></rect><rect x="6.84" y="83.01" width="16.99" height="16.99" fill="#fff"></rect><rect x="32.23" y="83.01" width="16.99" height="16.99" fill="#fff"></rect><rect x="57.62" y="83.01" width="16.99" height="16.99" fill="#fff"></rect><rect x="83.01" y="83.01" width="16.99" height="16.99" fill="#fff"></rect></g></g></svg></figure></section><section data-etch-element="section" class="pix-resources"><div data-etch-element="container" class="pix-resources__inner"><h2>Recommended Resources</h2><p>Here are the main tools I’ve been using in both my agency’s client work as well as personal sites. They are the result of years of trial and error and are the tools and services I now trust the most. Some of the links are affiliates. This simply means if you buy the product after clicking my link, I make a small commission but there is no extra cost to you.</p><p>Notice I’m recommending 2 themes/builder solutions: Etch and Bricks Builder. In 2025, Bricks had become my main site building tool as its advantages over everything else out there at the time were very compelling to me. Etch is the new player here but will certainly become my builder of choice in 2026. More in future articles. The reason that GeneratePress/Blocks is still here is because I've been using it for a long time and it's been very reliable for me. For many, it will be an ideal solution.  Enjoy!</p><ul data-etch-element="flex-div" class="pix-resources-grid"><li data-etch-element="flex-div" class="pix-resources-grid__resource"><figure class="pix-resources-grid__resource-media-wrapper"><a href="https://etchwp.com/" rel="noopener noreferrer" target="_blank"><svg viewbox="0 0 1000 167" class="pix-resources-grid__resource-svg"><g fill="currentColor" class="etch-symbol"><path d="M106.383 0h91.782c5.841 0 10.43 4.801 10.43 10.438v20.874c0 5.845-4.589 10.438-10.43 10.438h-91.782c-26.074 0-40.675 18.788-43.596 38.619-2.086 14.612-8.552 24.006-21.068 24.006H10.43C4.59 104.375 0 99.782 0 93.937V73.064c0-5.637 4.59-10.438 10.43-10.438h29.203c16.688 0 21.068-9.394 23.363-23.797C66.125 18.578 78.223 0 106.383 0Z" class="etch-symbol__top"></path><path d="M198.165 62.625h-81.352c-20.442 0-30.872 13.986-33.375 31.313-2.503 17.326-12.933 31.312-35.461 31.312H10.43C4.59 125.25 0 130.051 0 135.687v20.875C0 162.407 4.59 167 10.43 167h39.633c20.442 0 30.663-13.986 33.375-31.313 2.712-17.952 12.933-31.312 33.375-31.312h81.352c5.841 0 10.43-4.593 10.43-10.438V73.064c0-5.637-4.589-10.438-10.43-10.438Z" class="etch-symbol__middle"></path><path d="M114.727 125.25h83.438c5.841 0 10.43 4.801 10.43 10.437v20.875c0 5.845-4.589 10.438-10.43 10.438h-83.438c-5.84 0-10.43-4.593-10.43-10.438v-20.875c0-5.636 4.59-10.437 10.43-10.437Z" class="etch-symbol__bottom"></path></g><g fill="currentColor" class="etch-wordmark"><path d="M271.173 12.879v141.509a5.809 5.809 0 0 0 5.809 5.813h158.525a3.787 3.787 0 0 0 3.822-3.825v-22.947a3.787 3.787 0 0 0-3.822-3.825H305.569V97.937h110.829a3.787 3.787 0 0 0 3.822-3.824V71.472a3.786 3.786 0 0 0-3.822-3.825H305.569V37.815h129.938a3.787 3.787 0 0 0 3.822-3.824V11.043a3.786 3.786 0 0 0-3.822-3.824H276.982c-3.21 0-5.809 2.447-5.809 5.66Z" class="etch-wordmark__e"></path><path d="M528.604 160.201h26.752a3.787 3.787 0 0 0 3.822-3.825c0-75.573-.459-102.498-.612-119.02 25.07 0 40.663.306 60.689.46a3.786 3.786 0 0 0 3.821-3.825V11.043a3.785 3.785 0 0 0-3.821-3.824c-31.797.153-51.975.459-77.352.459-25.681 0-45.707-.46-77.351-.46a3.786 3.786 0 0 0-3.822 3.825v22.948a3.787 3.787 0 0 0 3.822 3.824c20.026-.153 35.924-.459 60.842-.459-.153 16.522-.612 43.447-.612 119.02a3.787 3.787 0 0 0 3.822 3.825Z" class="etch-wordmark__t"></path><path d="M631.332 83.71c0 46.048 36.688 78.634 91.109 78.634 34.243 0 61.451-11.627 77.505-31.209 1.224-1.683.915-3.977-.919-5.048l-21.096-13.615c-1.678-1.072-4.127-.613-5.656 1.071-12.993 12.697-29.502 19.122-49.834 19.122-34.089 0-57.937-20.04-57.937-48.954s22.625-48.954 54.88-48.954c22.319 0 39.898 6.425 53.351 19.581 1.224 1.377 3.822 1.53 5.656.306l20.636-13.156c1.684-1.224 2.143-3.366.764-5.202-16.203-19.428-44.789-31.208-80.407-31.208-49.682 0-88.052 34.574-88.052 78.633Z" class="etch-wordmark__c"></path><path d="M829.91 160.201h26.752c2.138 0 3.817-1.683 3.817-3.825V98.549h105.022v57.827a3.788 3.788 0 0 0 3.822 3.825h26.752c2.143 0 3.822-1.683 3.822-3.825V11.043c0-2.142-1.679-3.824-3.822-3.824h-26.752a3.787 3.787 0 0 0-3.822 3.824v56.91H860.479v-56.91c0-2.142-1.679-3.824-3.817-3.824H829.91c-2.143 0-3.822 1.682-3.822 3.824v145.333c0 2.142 1.679 3.825 3.822 3.825Z" class="etch-wordmark__h"></path></g></svg></a></figure></li><li data-etch-element="flex-div" class="pix-resources-grid__resource"><a href="https://automaticcss.com/" rel="noopener noreferrer" target="_blank"><img width="440" height="117" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;440&#039;%20height=&#039;117&#039;%20viewBox=&#039;0%200%20440%20117&#039;%3E%3C/svg%3E" alt="Automatic.css logo" class="pix-resources-grid__resource-img perfmatters-lazy" title="Home" data-src="https://pixelyzed.com/wp-content/uploads/2025/06/Automatic.css-logo.png" /></a></li><li data-etch-element="flex-div" class="pix-resources-grid__resource"><a href="https://bricksbuilder.io/" rel="noopener noreferrer" target="_blank"> <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:serif="http://www.serif.com/" width="100%" height="100%" viewbox="0 0 760 156" version="1.1" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><g transform="matrix(1.65748,0,0,1.65748,1.13687e-13,-0.879224)"><path d="M155.598,31.535C164.27,31.535 171.457,34.562 177.16,40.617C182.785,46.672 185.598,54.133 185.598,63C185.598,71.906 182.766,79.367 177.102,85.383C171.398,91.438 164.231,94.465 155.598,94.465C148.059,94.465 141.613,91.77 136.262,86.379L136.262,93L120.559,93L120.559,13.078L137.727,11.145L139.133,12.023L139.133,36.457C144.094,33.176 149.582,31.535 155.598,31.535ZM152.609,78.586C157.023,78.586 160.598,77.102 163.332,74.133C166.027,71.203 167.375,67.492 167.375,63C167.375,58.508 166.008,54.777 163.273,51.809C160.539,48.879 156.984,47.414 152.609,47.414C148.469,47.414 145.012,48.82 142.238,51.633C139.465,54.523 138.078,58.312 138.078,63C138.078,67.688 139.465,71.457 142.238,74.309C144.973,77.16 148.43,78.586 152.609,78.586ZM239.094,33.586L239.914,35.051L236.105,48L234.758,48.82C233.056,47.858 230.81,47.387 228.021,47.406L227.551,47.414C223.957,47.414 221.047,48.645 218.82,51.105C216.555,53.605 215.422,56.848 215.422,60.832L215.422,93L196.848,93L196.848,33L212.434,33L212.434,40.793C216.73,34.621 222.258,31.535 229.016,31.535C232.453,31.535 235.812,32.219 239.094,33.586ZM267.98,12.141C267.98,15.266 266.867,17.941 264.641,20.168C262.414,22.395 259.699,23.508 256.496,23.508C253.254,23.508 250.559,22.395 248.41,20.168C246.184,17.941 245.07,15.266 245.07,12.141C245.07,8.937 246.184,6.203 248.41,3.938C250.559,1.711 253.254,0.598 256.496,0.598C259.699,0.598 262.414,1.711 264.641,3.938C266.867,6.203 267.98,8.937 267.98,12.141ZM265.695,93L247.238,93L247.238,33L265.695,33L265.695,93ZM309.758,94.465C300.383,94.465 292.59,91.477 286.379,85.5C280.168,79.523 277.063,72.023 277.063,63C277.063,53.977 280.168,46.477 286.379,40.5C292.59,34.523 300.383,31.535 309.758,31.535C320.031,31.535 328.293,35.07 334.543,42.141L334.543,43.43L324.23,52.922L322.824,52.922C319.621,49.25 315.5,47.414 310.461,47.414C306.047,47.414 302.453,48.859 299.68,51.75C296.867,54.68 295.461,58.43 295.461,63C295.461,67.456 296.775,71.09 299.403,73.903L299.68,74.191C302.453,77.121 306.086,78.586 310.578,78.586C315.773,78.586 319.855,76.75 322.824,73.078L324.23,73.078L334.543,82.57L334.543,83.859C328.293,90.93 320.031,94.465 309.758,94.465ZM404.387,34.348L381.594,60.246L405.207,91.652L404.387,93L384.23,93L367.648,69.504L362.961,74.777L362.961,93L344.387,93L344.387,13.078L361.555,11.145L362.961,12.023L362.961,58.313L384.23,33L403.566,33L404.387,34.348ZM433.684,94.582C428.137,94.582 422.961,93.566 418.156,91.535C413.391,89.582 409.602,86.906 406.789,83.508L406.789,82.219L415.051,72.961L416.398,72.961C418.195,75.109 420.754,76.926 424.074,78.41C427.395,79.895 430.637,80.637 433.801,80.637C435.949,80.637 437.687,80.197 439.016,79.318C440.344,78.439 441.008,77.316 441.008,75.949C441.008,74.855 440.568,73.859 439.689,72.961C438.811,72.062 437.785,71.359 436.613,70.852L436.181,70.671C435.397,70.355 433.998,69.829 431.984,69.094C429.641,68.391 427.59,67.707 425.832,67.043C424.387,66.574 422.492,65.715 420.148,64.465C418,63.41 416.262,62.219 414.934,60.891C411.809,57.687 410.246,53.957 410.246,49.699C410.246,44.113 412.434,39.66 416.809,36.34C421.184,33.059 427.043,31.418 434.387,31.418C439.504,31.418 444.23,32.316 448.566,34.113C452.863,35.91 456.184,38.293 458.527,41.262L458.527,42.609L450.324,51.223L449.035,51.223C444.621,46.926 439.738,44.816 434.387,44.895C432.473,44.895 430.92,45.275 429.729,46.037C428.537,46.799 427.941,47.766 427.941,48.938C427.941,49.881 428.312,50.655 429.053,51.262L429.23,51.398C430.168,52.141 431.301,52.785 432.629,53.332C434.387,54.035 436.086,54.68 437.727,55.266L437.867,55.306C438.232,55.423 439.162,55.781 440.656,56.379C446.633,58.684 451.105,61.262 454.074,64.113C457.043,66.965 458.527,71.027 458.527,76.301C458.527,81.809 456.242,86.223 451.672,89.543C447.062,92.902 441.066,94.582 433.684,94.582Z" style="fill:rgb(33,33,33);fill-rule:nonzero;"></path><g transform="matrix(1,0,0,1,0,13)"><g><rect x="40" y="40" width="40" height="40" style="fill:rgb(255,238,153);"></rect><rect x="0" y="40" width="40" height="40" style="fill:rgb(255,213,62);"></rect><rect x="0" y="0" width="40" height="40" style="fill:rgb(255,230,109);"></rect></g></g></g></svg></a></li><li data-etch-element="flex-div" class="pix-resources-grid__resource"><a href="https://fluentforms.com/" rel="noopener noreferrer" target="_blank"><img width="417" height="87" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;417&#039;%20height=&#039;87&#039;%20viewBox=&#039;0%200%20417%2087&#039;%3E%3C/svg%3E" alt="FluentForms Logo" class="pix-resources-grid__resource-img perfmatters-lazy" title="Home" data-src="https://pixelyzed.com/wp-content/uploads/2025/06/fluent-forms-logo.webp" /></a></li><li data-etch-element="flex-div" class="pix-resources-grid__resource"><a href="https://pixelyzed.com/go/gravity-forms/" rel="noopener noreferrer" target="_blank"><img width="774" height="400" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;774&#039;%20height=&#039;400&#039;%20viewBox=&#039;0%200%20774%20400&#039;%3E%3C/svg%3E" alt="Gravity Forms Logo" class="pix-resources-grid__resource-img perfmatters-lazy" title="Home" data-src="https://pixelyzed.com/wp-content/uploads/2025/06/gravity-forms-logo-horizontal-744.png" /></a></li><li data-etch-element="flex-div" class="pix-resources-grid__resource"><a href="https://pixelyzed.com/go/gp/" rel="noopener noreferrer" target="_blank"><img width="800" height="168" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;800&#039;%20height=&#039;168&#039;%20viewBox=&#039;0%200%20800%20168&#039;%3E%3C/svg%3E" alt="GeneratePress Logo" class="pix-resources-grid__resource-img perfmatters-lazy" title="Home" data-src="https://pixelyzed.com/wp-content/uploads/2025/06/generatepress.png" /></a></li><li data-etch-element="flex-div" class="pix-resources-grid__resource"><a href="https://pixelyzed.com/go/generateblocks/" rel="noopener noreferrer" target="_blank"><img width="425" height="118" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;425&#039;%20height=&#039;118&#039;%20viewBox=&#039;0%200%20425%20118&#039;%3E%3C/svg%3E" alt="GenerateBlocks Logo" class="pix-resources-grid__resource-img perfmatters-lazy" title="Home" data-src="https://pixelyzed.com/wp-content/uploads/2025/06/generateblocks.png" /></a></li><li data-etch-element="flex-div" class="pix-resources-grid__resource"><a href="https://pixelyzed.com/go/wp-vivid/" rel="noopener noreferrer" target="_blank"><img width="190" height="45" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;190&#039;%20height=&#039;45&#039;%20viewBox=&#039;0%200%20190%2045&#039;%3E%3C/svg%3E" alt="WP Vivid Backup &amp; Migration" class="pix-resources-grid__resource-img perfmatters-lazy" title="Home" data-src="https://pixelyzed.com/wp-content/uploads/2025/11/wpvivid-logo-trans-back.png" /></a></li><li data-etch-element="flex-div" class="pix-resources-grid__resource"><a href="https://pixelyzed.com/go/cloudways/" rel="noopener noreferrer" target="_blank"><img width="1088" height="205" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns=&#039;http://www.w3.org/2000/svg&#039;%20width=&#039;1088&#039;%20height=&#039;205&#039;%20viewBox=&#039;0%200%201088%20205&#039;%3E%3C/svg%3E" alt="Cloudways Logo" class="pix-resources-grid__resource-img perfmatters-lazy" title="Home" data-src="https://pixelyzed.com/wp-content/uploads/2025/06/Cloudways-by-DO-Horizontal-Blue@2x.png" data-srcset="https://pixelyzed.com/wp-content/uploads/2025/06/Cloudways-by-DO-Horizontal-Blue@2x.png 1088w, https://pixelyzed.com/wp-content/uploads/2025/06/Cloudways-by-DO-Horizontal-Blue@2x-300x57.png 300w, https://pixelyzed.com/wp-content/uploads/2025/06/Cloudways-by-DO-Horizontal-Blue@2x-1024x193.png 1024w, https://pixelyzed.com/wp-content/uploads/2025/06/Cloudways-by-DO-Horizontal-Blue@2x-768x145.png 768w, https://pixelyzed.com/wp-content/uploads/2025/06/Cloudways-by-DO-Horizontal-Blue@2x-600x113.png 600w" data-sizes="(max-width: 1088px) 100vw, 1088px" /></a></li></ul></div><figure data-etch-element="flex-div" style="--pix-opacity:0.85;" class="pix-pixels-bgnd left"><svg id="Layer_2" viewbox="0 0 100 100" class="pix-pixels-bgnd__svg" aria-hidden="true" focusable="false"><g id="Layer_1-2"><g><rect width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="32.23" y="6.64" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="57.62" y="6.64" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="83.01" y="6.64" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="6.84" y="32.03" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="32.23" y="32.03" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="57.62" y="32.03" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="83.01" y="32.03" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="6.84" y="57.42" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="32.23" y="57.42" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="57.62" y="57.42" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="83.01" y="57.42" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="6.84" y="83.01" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="32.23" y="83.01" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="57.62" y="83.01" width="16.99" height="16.99" fill="#dfe0e2"></rect><rect x="83.01" y="83.01" width="16.99" height="16.99" fill="#dfe0e2"></rect></g></g></svg></figure></section></main><footer data-etch-element="section" class="fat-footer" aria-label="footer"><div data-etch-element="container" class="fat-footer__inner"><div data-etch-element="flex-div" class="fat-footer__column"> <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:serif="http://www.serif.com/" width="100%" height="100%" viewbox="0 0 400 78" version="1.1" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;" class="fat-footer__pixels-logo"><g transform="matrix(1,0,0,1,-100,-346)"><g transform="matrix(1,0,0,1,24.9997,0)"><g transform="matrix(1,0,0,1,102.114,403.534)"><path d="M0,-20.962C0,-29.461 -2.509,-34.964 -10.522,-34.964C-13.922,-34.964 -17.725,-34.56 -19.991,-34.155L-19.991,-2.104C-17.321,-1.618 -13.112,-1.294 -10.522,-1.294C-2.59,-1.294 0,-6.474 0,-15.135L0,-20.962ZM-10.522,4.695C-13.031,4.695 -16.835,4.371 -19.991,3.805L-19.991,18.455C-19.991,19.264 -20.639,19.992 -21.529,19.992L-25.658,19.992C-26.467,19.992 -27.114,19.345 -27.114,18.455L-27.114,-37.231C-27.114,-38.283 -26.872,-38.769 -25.414,-39.092C-21.125,-40.144 -15.459,-40.954 -10.522,-40.954C1.538,-40.954 7.123,-33.103 7.123,-20.962L7.123,-15.135C7.123,-2.427 1.295,4.695 -10.522,4.695" style="fill:rgb(244,245,245);fill-rule:nonzero;"></path></g><g transform="matrix(1,0,0,1,173.586,363.147)"><path d="M0,44.516L-5.585,44.516C-6.151,44.516 -6.394,44.354 -6.718,43.869L-18.292,26.952L-29.866,43.706C-30.352,44.435 -30.513,44.516 -31.242,44.516L-36.099,44.516C-36.746,44.516 -37.07,44.192 -37.07,43.706C-37.07,43.464 -36.988,43.059 -36.665,42.655L-22.096,21.853L-35.856,2.023C-36.099,1.619 -36.26,1.295 -36.26,0.971C-36.26,0.405 -35.774,0 -35.046,0L-29.785,0C-29.137,0 -28.733,0.243 -28.167,1.133L-17.887,16.349L-7.527,1.133C-6.799,0.081 -6.556,0 -5.827,0L-1.133,0C-0.485,0 -0.081,0.405 -0.081,0.971C-0.081,1.295 -0.243,1.619 -0.485,2.023L-14.083,21.368L0.729,42.655C0.971,42.978 1.052,43.302 1.052,43.625C1.052,44.111 0.81,44.516 0,44.516" style="fill:rgb(244,245,245);fill-rule:nonzero;"></path></g><g transform="matrix(1,0,0,1,210.173,389.289)"><path d="M0,-7.769C0,-16.915 -3.481,-20.476 -10.603,-20.476C-17.563,-20.476 -21.448,-16.511 -21.448,-7.769L-21.448,-7.041L0,-7.041L0,-7.769ZM5.666,-1.618L-21.448,-1.618L-21.448,-0.485C-21.448,9.147 -17.644,12.708 -10.198,12.708C-5.504,12.708 0.486,12.384 4.209,11.818L4.614,11.818C5.261,11.818 5.909,12.142 5.909,12.951L5.909,15.703C5.909,16.755 5.585,17.322 4.29,17.564C-0.324,18.455 -4.775,18.94 -10.198,18.94C-19.506,18.94 -28.571,14.57 -28.571,-0.485L-28.571,-7.769C-28.571,-19.343 -22.177,-26.709 -10.603,-26.709C1.214,-26.709 7.204,-19.262 7.204,-7.769L7.204,-3.399C7.204,-2.346 6.637,-1.618 5.666,-1.618" style="fill:rgb(244,245,245);fill-rule:nonzero;"></path></g><g transform="matrix(1,0,0,1,233.566,346.797)"><path d="M0,60.866L-4.209,60.866C-5.018,60.866 -5.665,60.137 -5.665,59.247L-5.665,1.538C-5.665,0.729 -5.099,0 -4.209,0L0,0C0.81,0 1.457,0.648 1.457,1.538L1.457,59.247C1.457,60.056 0.891,60.866 0,60.866" style="fill:rgb(244,245,245);fill-rule:nonzero;"></path></g><g transform="matrix(1,0,0,1,281.321,421.746)"><path d="M0,-56.657L-13.355,-10.037C-15.864,-1.295 -18.859,1.942 -28.167,1.942C-30.433,1.942 -33.266,1.619 -34.965,1.214C-35.937,0.971 -36.665,0.728 -36.665,-0.081L-36.665,-3.076C-36.665,-3.966 -36.018,-4.371 -35.127,-4.371L-34.884,-4.371C-33.104,-4.209 -29.462,-3.885 -27.681,-3.885C-23.068,-3.885 -21.044,-5.099 -19.668,-10.765L-18.859,-14.083L-19.992,-14.083C-22.42,-14.083 -24.524,-14.65 -25.981,-19.668L-36.746,-56.657C-36.827,-56.819 -36.827,-57.061 -36.827,-57.223C-36.827,-58.033 -36.341,-58.599 -35.37,-58.599L-30.918,-58.599C-30.271,-58.599 -29.704,-57.952 -29.543,-57.304L-19.992,-22.177C-19.587,-20.558 -19.021,-20.397 -18.454,-20.397L-17.159,-20.397L-7.285,-57.385C-7.123,-58.033 -6.475,-58.599 -5.747,-58.599L-1.214,-58.599C-0.405,-58.599 0.081,-58.033 0.081,-57.223C0.081,-57.061 0.081,-56.819 0,-56.657" style="fill:rgb(244,245,245);fill-rule:nonzero;"></path></g><g transform="matrix(1,0,0,1,317.908,363.147)"><path d="M0,44.516L-24.443,44.516C-27.924,44.516 -29.381,42.33 -29.381,40.065L-29.381,38.526C-29.381,36.261 -28.895,35.046 -27.519,33.265L-6.637,7.284C-6.475,7.042 -6.313,6.799 -6.313,6.556C-6.313,6.232 -6.475,5.989 -7.123,5.989L-26.791,5.989C-27.681,5.989 -28.409,5.261 -28.409,4.371L-28.409,1.619C-28.409,0.728 -27.681,0 -26.791,0L-2.995,0C0.324,0 1.538,1.538 1.538,3.966L1.538,5.908C1.538,7.608 0.971,8.822 -0.324,10.36L-21.611,36.989C-21.934,37.312 -22.015,37.636 -22.015,37.879C-22.015,38.284 -21.934,38.526 -21.368,38.526L0,38.526C0.89,38.526 1.619,39.255 1.619,40.146L1.619,42.897C1.619,43.787 0.89,44.516 0,44.516" style="fill:rgb(244,245,245);fill-rule:nonzero;"></path></g><g transform="matrix(1,0,0,1,356.194,389.289)"><path d="M0,-7.769C0,-16.915 -3.481,-20.476 -10.603,-20.476C-17.563,-20.476 -21.448,-16.511 -21.448,-7.769L-21.448,-7.041L0,-7.041L0,-7.769ZM5.666,-1.618L-21.448,-1.618L-21.448,-0.485C-21.448,9.147 -17.644,12.708 -10.198,12.708C-5.504,12.708 0.486,12.384 4.209,11.818L4.614,11.818C5.261,11.818 5.909,12.142 5.909,12.951L5.909,15.703C5.909,16.755 5.585,17.322 4.29,17.564C-0.324,18.455 -4.775,18.94 -10.198,18.94C-19.506,18.94 -28.571,14.57 -28.571,-0.485L-28.571,-7.769C-28.571,-19.343 -22.177,-26.709 -10.603,-26.709C1.214,-26.709 7.204,-19.262 7.204,-7.769L7.204,-3.399C7.204,-2.346 6.637,-1.618 5.666,-1.618" style="fill:rgb(244,245,245);fill-rule:nonzero;"></path></g><g transform="matrix(1,0,0,1,398.77,385.648)"><path d="M0,-16.269C-2.671,-16.754 -6.88,-16.835 -9.47,-16.835C-17.401,-16.835 -19.991,-11.898 -19.991,-3.238L-19.991,2.59C-19.991,11.412 -17.482,16.35 -9.47,16.35C-6.718,16.35 -2.752,16.106 0,15.864L0,-16.269ZM5.423,21.205C0.405,22.177 -4.532,22.581 -9.47,22.581C-21.53,22.581 -27.114,14.73 -27.114,2.59L-27.114,-3.238C-27.114,-15.945 -21.286,-23.068 -9.47,-23.068C-6.96,-23.068 -3.156,-22.825 0,-22.258L0,-37.313C0,-38.122 0.648,-38.85 1.538,-38.85L5.665,-38.85C6.475,-38.85 7.123,-38.203 7.123,-37.313L7.123,19.344C7.123,20.396 6.88,20.963 5.423,21.205" style="fill:rgb(244,245,245);fill-rule:nonzero;"></path></g><g transform="matrix(-1,0,0,1,866.184,-436.302)"><rect x="440.554" y="782.613" width="10.076" height="10.076" style="fill:rgb(251,203,72);"></rect></g><g transform="matrix(-1,0,0,1,904.47,-428.24)"><rect x="459.697" y="778.582" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,934.698,-428.24)"><rect x="474.811" y="778.582" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,964.924,-428.24)"><rect x="489.924" y="778.582" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,874.244,-398.014)"><rect x="444.584" y="763.469" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,904.47,-398.014)"><rect x="459.697" y="763.469" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,934.698,-398.014)"><rect x="474.811" y="763.469" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,964.924,-398.014)"><rect x="489.924" y="763.469" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,874.244,-367.788)"><rect x="444.584" y="748.356" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,904.47,-367.788)"><rect x="459.697" y="748.356" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,934.698,-367.788)"><rect x="474.811" y="748.356" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,964.924,-367.788)"><rect x="489.924" y="748.356" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,874.244,-337.56)"><rect x="444.584" y="733.242" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,904.47,-337.56)"><rect x="459.697" y="733.242" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,934.698,-337.56)"><rect x="474.811" y="733.242" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(-1,0,0,1,964.924,-337.56)"><rect x="489.924" y="733.242" width="10.076" height="10.076" style="fill:rgb(234,141,30);"></rect></g><g transform="matrix(1,0,0,1,125.184,363.147)"><path d="M0,44.516L-3.885,44.516C-4.775,44.516 -5.504,43.787 -5.504,42.897L-5.504,1.619C-5.504,0.728 -4.775,0 -3.885,0L0,0C0.891,0 1.619,0.728 1.619,1.619L1.619,42.897C1.619,43.787 0.891,44.516 0,44.516" style="fill:rgb(244,245,245);fill-rule:nonzero;"></path></g><g transform="matrix(1,0,0,1,125.346,346.312)"><path d="M0,9.712L-4.128,9.712C-5.018,9.712 -5.746,8.984 -5.746,8.093L-5.746,1.618C-5.746,0.728 -5.018,0 -4.128,0L0,0C0.891,0 1.619,0.728 1.619,1.618L1.619,8.093C1.619,8.984 0.891,9.712 0,9.712" style="fill:rgb(251,203,72);fill-rule:nonzero;"></path></g></g></g></svg><p class="fat-footer__short-bio">I've been working with WordPress since 2010. This site is here to help you work efficiently with WordPress by helping you choose and use the best tools and modern building techniques.</p><ul data-show-labels="false" style="--background: #fff; --icon-color: currentColor; --label-color: currentColor; --icon-size: 1em;" class="social-share-alpha" data-bar-style="false"><li class="social-share-alpha__item"><a href="https://bsky.app/profile/pixelyzed.bsky.social" class="social-share-alpha__item-link" aria-label="Follow on BlueSky"> <svg viewbox="0 0 640 640" class="social-share-alpha__item-icon"><path d="M439.8 358.7C436.5 358.3 433.1 357.9 429.8 357.4C433.2 357.8 436.5 358.3 439.8 358.7zM320 291.1C293.9 240.4 222.9 145.9 156.9 99.3C93.6 54.6 69.5 62.3 53.6 69.5C35.3 77.8 32 105.9 32 122.4C32 138.9 41.1 258 47 277.9C66.5 343.6 136.1 365.8 200.2 358.6C203.5 358.1 206.8 357.7 210.2 357.2C206.9 357.7 203.6 358.2 200.2 358.6C106.3 372.6 22.9 406.8 132.3 528.5C252.6 653.1 297.1 501.8 320 425.1C342.9 501.8 369.2 647.6 505.6 528.5C608 425.1 533.7 372.5 439.8 358.6C436.5 358.2 433.1 357.8 429.8 357.3C433.2 357.7 436.5 358.2 439.8 358.6C503.9 365.7 573.4 343.5 593 277.9C598.9 258 608 139 608 122.4C608 105.8 604.7 77.7 586.4 69.5C570.6 62.4 546.4 54.6 483.2 99.3C417.1 145.9 346.1 240.4 320 291.1z"></path></svg><span class="social-share-alpha__item-label">BlueSky</span></a></li><li class="social-share-alpha__item"><a href="https://www.facebook.com/pixelyzed" class="social-share-alpha__item-link" aria-label="Follow on Facebook"> <svg viewbox="0 0 640 640" class="social-share-alpha__item-icon"><path d="M160 96C124.7 96 96 124.7 96 160L96 480C96 515.3 124.7 544 160 544L258.2 544L258.2 398.2L205.4 398.2L205.4 320L258.2 320L258.2 286.3C258.2 199.2 297.6 158.8 383.2 158.8C399.4 158.8 427.4 162 438.9 165.2L438.9 236C432.9 235.4 422.4 235 409.3 235C367.3 235 351.1 250.9 351.1 292.2L351.1 320L434.7 320L420.3 398.2L351 398.2L351 544L480 544C515.3 544 544 515.3 544 480L544 160C544 124.7 515.3 96 480 96L160 96z"></path></svg><span class="social-share-alpha__item-label">Facebook</span></a></li><li class="social-share-alpha__item"><a href="https://www.instagram.com/pixelyzed/" class="social-share-alpha__item-link" aria-label="Follow on Instagram"> <svg viewbox="0 0 640 640" class="social-share-alpha__item-icon"><path d="M320.3 205C256.8 204.8 205.2 256.2 205 319.7C204.8 383.2 256.2 434.8 319.7 435C383.2 435.2 434.8 383.8 435 320.3C435.2 256.8 383.8 205.2 320.3 205zM319.7 245.4C360.9 245.2 394.4 278.5 394.6 319.7C394.8 360.9 361.5 394.4 320.3 394.6C279.1 394.8 245.6 361.5 245.4 320.3C245.2 279.1 278.5 245.6 319.7 245.4zM413.1 200.3C413.1 185.5 425.1 173.5 439.9 173.5C454.7 173.5 466.7 185.5 466.7 200.3C466.7 215.1 454.7 227.1 439.9 227.1C425.1 227.1 413.1 215.1 413.1 200.3zM542.8 227.5C541.1 191.6 532.9 159.8 506.6 133.6C480.4 107.4 448.6 99.2 412.7 97.4C375.7 95.3 264.8 95.3 227.8 97.4C192 99.1 160.2 107.3 133.9 133.5C107.6 159.7 99.5 191.5 97.7 227.4C95.6 264.4 95.6 375.3 97.7 412.3C99.4 448.2 107.6 480 133.9 506.2C160.2 532.4 191.9 540.6 227.8 542.4C264.8 544.5 375.7 544.5 412.7 542.4C448.6 540.7 480.4 532.5 506.6 506.2C532.8 480 541 448.2 542.8 412.3C544.9 375.3 544.9 264.5 542.8 227.5zM495 452C487.2 471.6 472.1 486.7 452.4 494.6C422.9 506.3 352.9 503.6 320.3 503.6C287.7 503.6 217.6 506.2 188.2 494.6C168.6 486.8 153.5 471.7 145.6 452C133.9 422.5 136.6 352.5 136.6 319.9C136.6 287.3 134 217.2 145.6 187.8C153.4 168.2 168.5 153.1 188.2 145.2C217.7 133.5 287.7 136.2 320.3 136.2C352.9 136.2 423 133.6 452.4 145.2C472 153 487.1 168.1 495 187.8C506.7 217.3 504 287.3 504 319.9C504 352.5 506.7 422.6 495 452z"></path></svg><span class="social-share-alpha__item-label">Instagram</span></a></li></ul></div><div data-etch-element="flex-div" class="fat-footer__column"><h3 class="fat-footer__column-title">Navigation</h3><nav aria-label="Footer Nav"><ul data-etch-element="flex-nav" class="footer-nav"><li class="footer-nav__item"><a href="https://pixelyzed.com" class="footer-nav__link">Home</a></li><li class="footer-nav__item"><a href="/about" class="footer-nav__link">About</a></li><li class="footer-nav__item"><a href="/articles" class="footer-nav__link">Blog</a></li><li class="footer-nav__item"><a href="/contact" class="footer-nav__link">Contact</a></li><li class="footer-nav__item"><a href="https://pixelyzed.com/fr/" title="FR">FR</a></li></ul></nav></div><div data-etch-element="flex-div" class="fat-footer__column"><h3 class="fat-footer__column-title">Newsletter Signup</h3><div class="footer-form"><div class="fluentform ff-default fluentform_wrapper_1 ffs_custom_wrap"><form data-form_id="1" id="fluentform_1" class="frm-fluent-form fluent_form_1 ff-el-form-top ff_form_instance_1_1 ff-form-loading ffs_custom" data-form_instance="ff_form_instance_1_1" method="POST"><fieldset style="border: none!important;margin: 0!important;padding: 0!important;background-color: transparent!important;box-shadow: none!important;outline: none!important; min-inline-size: 100%;"><legend class="ff_screen_reader_title" style="display: block; margin: 0!important;padding: 0!important;height: 0!important;text-indent: -999999px;width: 0!important;overflow:hidden;">Subscription</legend>        <div style="display: none!important; position: absolute!important; transform: translateX(1000%)!important;" class="ff-el-group ff-hpsf-container">
            <div class="ff-el-input--label asterisk-right">
                <label for="ff_1_item_sf" aria-label="Newsletter">
                    Newsletter                </label>
            </div>
            <div class="ff-el-input--content">
                <input type="text" name="item_1__fluent_sf" class="ff-el-form-control" id="ff_1_item_sf"></div>
        </div>
                <input type="hidden" id="__fluent_protection_token_1" class="fluent-form-token-field" name="__fluent_protection_token_1"><input type="hidden" name="__fluent_form_embded_post_id" value="2279"><input type="hidden" id="_fluentform_1_fluentformnonce" name="_fluentform_1_fluentformnonce" value="c613fa1a6d"><input type="hidden" name="_wp_http_referer" value="/"><div class="ff-el-group ff-el-form-hide_label"><div class="ff-el-input--label ff-el-is-required asterisk-right"><label for="ff_1_subscriber_name" id="label_ff_1_subscriber_name">Name</label></div><div class="ff-el-input--content"><input type="text" name="subscriber_name" value="" class="ff-el-form-control" placeholder="Name" data-name="subscriber_name" id="ff_1_subscriber_name" aria-invalid="false" aria-required="true"></div></div><div class="ff-el-group ff-el-form-hide_label"><div class="ff-el-input--label ff-el-is-required asterisk-right"><label for="ff_1_your_email_2" id="label_ff_1_your_email_2" aria-label="Email">Email</label></div><div class="ff-el-input--content"><input type="email" name="your_email_2" value="" class="ff-el-form-control" id="ff_1_your_email_2" placeholder="Email" data-name="your_email_2" aria-invalid="false" aria-required="true"></div></div><div class="ff-el-group ff-text-left ff_submit_btn_wrapper"><button type="submit" class="ff-btn ff-btn-submit ff-btn-md ff_btn_style" aria-label="Subscribe Me!">Subscribe Me!</button></div></fieldset></form><div id="fluentform_1_errors" class="ff-errors-in-stack ff_form_instance_1_1 ff-form-loading_errors ff_form_instance_1_1_errors"></div></div>            <script type="text/javascript" defer src="data:text/javascript;base64,CiAgICAgICAgICAgICAgICB3aW5kb3cuZmx1ZW50X2Zvcm1fZmZfZm9ybV9pbnN0YW5jZV8xXzEgPSB7ImlkIjoiMSIsInNldHRpbmdzIjp7ImxheW91dCI6eyJsYWJlbFBsYWNlbWVudCI6InRvcCIsImFzdGVyaXNrUGxhY2VtZW50IjoiYXN0ZXJpc2stcmlnaHQiLCJoZWxwTWVzc2FnZVBsYWNlbWVudCI6IndpdGhfbGFiZWwiLCJlcnJvck1lc3NhZ2VQbGFjZW1lbnQiOiJpbmxpbmUiLCJjc3NDbGFzc05hbWUiOiIifSwicmVzdHJpY3Rpb25zIjp7ImRlbnlFbXB0eVN1Ym1pc3Npb24iOnsiZW5hYmxlZCI6ZmFsc2V9fX0sImZvcm1faW5zdGFuY2UiOiJmZl9mb3JtX2luc3RhbmNlXzFfMSIsImZvcm1faWRfc2VsZWN0b3IiOiJmbHVlbnRmb3JtXzEiLCJydWxlcyI6eyJzdWJzY3JpYmVyX25hbWUiOnsicmVxdWlyZWQiOnsidmFsdWUiOnRydWUsIm1lc3NhZ2UiOiJQbGVhc2UgZW50ZXIgeW91ciBuYW1lIiwiZ2xvYmFsX21lc3NhZ2UiOiJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkIiwiZ2xvYmFsIjpmYWxzZX19LCJ5b3VyX2VtYWlsXzIiOnsicmVxdWlyZWQiOnsidmFsdWUiOnRydWUsIm1lc3NhZ2UiOiJFbWFpbCBpcyByZXF1aXJlZCIsImdsb2JhbCI6ZmFsc2UsImdsb2JhbF9tZXNzYWdlIjoiVGhpcyBmaWVsZCBpcyByZXF1aXJlZCJ9LCJlbWFpbCI6eyJ2YWx1ZSI6dHJ1ZSwibWVzc2FnZSI6IlRoaXMgZmllbGQgbXVzdCBjb250YWluIGEgdmFsaWQgZW1haWwiLCJnbG9iYWwiOmZhbHNlLCJnbG9iYWxfbWVzc2FnZSI6IlRoaXMgZmllbGQgbXVzdCBjb250YWluIGEgdmFsaWQgZW1haWwifX19LCJkZWJvdW5jZV90aW1lIjozMDB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAg"></script></div></div></div><div data-etch-element="container"><div data-etch-element="container" class="footer__credits"><div class="footer__credits">pixelyzed.com v7.0 – © 2004-2026 Pixelyzed.com (Stéphane Bergeron)</div><p class="footer__powered-by">Powered by <a href="https://wordpress.org" target="_blank" rel="noopener noreferer">WordPress </a>, <a href="https://etchwp.com" target="_blank" rel="noopener noreferer">Etch</a> &amp; <a href="https://automaticcss.com/" target="_blank" rel="noopener noreferer">Automatic.css</a>.</p></div></div></footer><button type="button" aria-label="Back to top of page" class="fw-scroll-to-top"><svg width="60" height="60" aria-hidden="true" focusable="false" class="fw-scroll-progress-ring"><circle cx="30" cy="30" r="27" pathlength="100"></circle></svg><span class="fw-scroll-to-top__inner"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" aria-hidden="true" focusable="false" viewbox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m6 15 6-6 6 6"></path></svg></span></button>
<script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/etch-pix-child/*","/wp-content/themes/etch-theme/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
        <script defer src="data:text/javascript;base64,CiAgICAgICAgICAgIC8vIERvIG5vdCBjaGFuZ2UgdGhpcyBjb21tZW50IGxpbmUgb3RoZXJ3aXNlIFNwZWVkIE9wdGltaXplciB3b24ndCBiZSBhYmxlIHRvIGRldGVjdCB0aGlzIHNjcmlwdAoKICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHNlbmRSZXF1ZXN0KHVybCwgYm9keSkgewogICAgICAgICAgICAgICAgICAgIGlmKCF3aW5kb3cuZmV0Y2gpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHhoci5vcGVuKCJQT1NUIiwgdXJsLCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgiKTsKICAgICAgICAgICAgICAgICAgICAgICAgeGhyLnNlbmQoSlNPTi5zdHJpbmdpZnkoYm9keSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGZldGNoKHVybCwgewogICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJywKICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoYm9keSksCiAgICAgICAgICAgICAgICAgICAgICAgIGtlZXBhbGl2ZTogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgnCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBjb25zdCBjYWxjdWxhdGVQYXJlbnREaXN0YW5jZSA9IChjaGlsZCwgcGFyZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgbGV0IGNvdW50ID0gMDsKICAgICAgICAgICAgICAgICAgICBsZXQgY3VycmVudEVsZW1lbnQgPSBjaGlsZDsKCiAgICAgICAgICAgICAgICAgICAgLy8gVHJhdmVyc2UgdXAgdGhlIERPTSB0cmVlIHVudGlsIHdlIHJlYWNoIHBhcmVudCBvciB0aGUgdG9wIG9mIHRoZSBET00KICAgICAgICAgICAgICAgICAgICB3aGlsZSAoY3VycmVudEVsZW1lbnQgJiYgY3VycmVudEVsZW1lbnQgIT09IHBhcmVudCkgewogICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50RWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LnBhcmVudE5vZGU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAvLyBJZiBwYXJlbnQgd2FzIG5vdCBmb3VuZCBpbiB0aGUgaGllcmFyY2h5LCByZXR1cm4gLTEKICAgICAgICAgICAgICAgICAgICBpZiAoIWN1cnJlbnRFbGVtZW50KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsgLy8gSW5kaWNhdGVzIHBhcmVudCBpcyBub3QgYW4gYW5jZXN0b3Igb2YgZWxlbWVudAogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50OyAvLyBOdW1iZXIgb2YgbGF5ZXJzIGJldHdlZW4gZWxlbWVudCBhbmQgcGFyZW50CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjb25zdCBpc01hdGNoaW5nQ2xhc3MgPSAobGlua1J1bGUsIGhyZWYsIGNsYXNzZXMsIGlkcykgPT4gewogICAgICAgICAgICAgICAgICAgIHJldHVybiBjbGFzc2VzLmluY2x1ZGVzKGxpbmtSdWxlLnZhbHVlKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY29uc3QgaXNNYXRjaGluZ0lkID0gKGxpbmtSdWxlLCBocmVmLCBjbGFzc2VzLCBpZHMpID0+IHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWRzLmluY2x1ZGVzKGxpbmtSdWxlLnZhbHVlKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY29uc3QgaXNNYXRjaGluZ0RvbWFpbiA9IChsaW5rUnVsZSwgaHJlZiwgY2xhc3NlcywgaWRzKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgaWYoIVVSTC5jYW5QYXJzZShocmVmKSkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwoaHJlZikKICAgICAgICAgICAgICAgICAgICBjb25zdCBob3N0ID0gdXJsLmhvc3QKICAgICAgICAgICAgICAgICAgICBjb25zdCBob3N0c1RvTWF0Y2ggPSBbaG9zdF0KCiAgICAgICAgICAgICAgICAgICAgaWYoaG9zdC5zdGFydHNXaXRoKCd3d3cuJykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaG9zdHNUb01hdGNoLnB1c2goaG9zdC5zdWJzdHJpbmcoNCkpCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgaG9zdHNUb01hdGNoLnB1c2goJ3d3dy4nICsgaG9zdCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIHJldHVybiBob3N0c1RvTWF0Y2guaW5jbHVkZXMobGlua1J1bGUudmFsdWUpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjb25zdCBpc01hdGNoaW5nRXh0ZW5zaW9uID0gKGxpbmtSdWxlLCBocmVmLCBjbGFzc2VzLCBpZHMpID0+IHsKICAgICAgICAgICAgICAgICAgICBpZighVVJMLmNhblBhcnNlKGhyZWYpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTChocmVmKQoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXJsLnBhdGhuYW1lLmVuZHNXaXRoKCcuJyArIGxpbmtSdWxlLnZhbHVlKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY29uc3QgaXNNYXRjaGluZ1N1YmRpcmVjdG9yeSA9IChsaW5rUnVsZSwgaHJlZiwgY2xhc3NlcywgaWRzKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgaWYoIVVSTC5jYW5QYXJzZShocmVmKSkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwoaHJlZikKCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVybC5wYXRobmFtZS5zdGFydHNXaXRoKCcvJyArIGxpbmtSdWxlLnZhbHVlICsgJy8nKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY29uc3QgaXNNYXRjaGluZ1Byb3RvY29sID0gKGxpbmtSdWxlLCBocmVmLCBjbGFzc2VzLCBpZHMpID0+IHsKICAgICAgICAgICAgICAgICAgICBpZighVVJMLmNhblBhcnNlKGhyZWYpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTChocmVmKQoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXJsLnByb3RvY29sID09PSBsaW5rUnVsZS52YWx1ZSArICc6JwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY29uc3QgaXNNYXRjaGluZ0V4dGVybmFsID0gKGxpbmtSdWxlLCBocmVmLCBjbGFzc2VzLCBpZHMpID0+IHsKICAgICAgICAgICAgICAgICAgICBpZighVVJMLmNhblBhcnNlKGhyZWYpIHx8ICFVUkwuY2FuUGFyc2UoZG9jdW1lbnQubG9jYXRpb24uaHJlZikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGluZ1Byb3RvY29scyA9IFsnaHR0cDonLCAnaHR0cHM6J10KICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXRlVXJsID0gbmV3IFVSTChkb2N1bWVudC5sb2NhdGlvbi5ocmVmKQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpbmtVcmwgPSBuZXcgVVJMKGhyZWYpCgogICAgICAgICAgICAgICAgICAgIC8vIExpbmtzIHRvIHN1YmRvbWFpbnMgd2lsbCBhcHBlYXIgdG8gYmUgZXh0ZXJuYWwgbWF0Y2hlcyBhY2NvcmRpbmcgdG8gSmF2YVNjcmlwdCwKICAgICAgICAgICAgICAgICAgICAvLyBidXQgdGhlIFBIUCBydWxlcyB3aWxsIGZpbHRlciB0aG9zZSBldmVudHMgb3V0LgogICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaGluZ1Byb3RvY29scy5pbmNsdWRlcyhsaW5rVXJsLnByb3RvY29sKSAmJiBzaXRlVXJsLmhvc3QgIT09IGxpbmtVcmwuaG9zdAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY29uc3QgaXNNYXRjaCA9IChsaW5rUnVsZSwgaHJlZiwgY2xhc3NlcywgaWRzKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChsaW5rUnVsZS50eXBlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NsYXNzJzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpc01hdGNoaW5nQ2xhc3MobGlua1J1bGUsIGhyZWYsIGNsYXNzZXMsIGlkcykKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnaWQnOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlzTWF0Y2hpbmdJZChsaW5rUnVsZSwgaHJlZiwgY2xhc3NlcywgaWRzKQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdkb21haW4nOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlzTWF0Y2hpbmdEb21haW4obGlua1J1bGUsIGhyZWYsIGNsYXNzZXMsIGlkcykKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnZXh0ZW5zaW9uJzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpc01hdGNoaW5nRXh0ZW5zaW9uKGxpbmtSdWxlLCBocmVmLCBjbGFzc2VzLCBpZHMpCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3N1YmRpcmVjdG9yeSc6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXNNYXRjaGluZ1N1YmRpcmVjdG9yeShsaW5rUnVsZSwgaHJlZiwgY2xhc3NlcywgaWRzKQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdwcm90b2NvbCc6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXNNYXRjaGluZ1Byb3RvY29sKGxpbmtSdWxlLCBocmVmLCBjbGFzc2VzLCBpZHMpCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2V4dGVybmFsJzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpc01hdGNoaW5nRXh0ZXJuYWwobGlua1J1bGUsIGhyZWYsIGNsYXNzZXMsIGlkcykKICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjb25zdCB0cmFjayA9IChlbGVtZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgaHJlZiA9IGVsZW1lbnQuaHJlZiA/PyBudWxsCiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xhc3NlcyA9IEFycmF5LmZyb20oZWxlbWVudC5jbGFzc0xpc3QpCiAgICAgICAgICAgICAgICAgICAgY29uc3QgaWRzID0gW2VsZW1lbnQuaWRdCiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlua1J1bGVzID0gW3sidHlwZSI6ImV4dGVuc2lvbiIsInZhbHVlIjoicGRmIn0seyJ0eXBlIjoiZXh0ZW5zaW9uIiwidmFsdWUiOiJ6aXAifSx7InR5cGUiOiJwcm90b2NvbCIsInZhbHVlIjoibWFpbHRvIn0seyJ0eXBlIjoicHJvdG9jb2wiLCJ2YWx1ZSI6InRlbCJ9XQogICAgICAgICAgICAgICAgICAgIGlmKGxpbmtSdWxlcy5sZW5ndGggPT09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAvLyBGb3IgbGluayBydWxlcyB0aGF0IHRhcmdldCBhbiBpZCwgd2UgbmVlZCB0byBhbGxvdyB0aGF0IGlkIHRvIGFwcGVhcgogICAgICAgICAgICAgICAgICAgIC8vIGluIGFueSBhbmNlc3RvciB1cCB0byB0aGUgN3RoIGFuY2VzdG9yLiBUaGlzIGxvb3AgbG9va3MgZm9yIHRob3NlIG1hdGNoZXMKICAgICAgICAgICAgICAgICAgICAvLyBhbmQgY291bnRzIHRoZW0uCiAgICAgICAgICAgICAgICAgICAgbGlua1J1bGVzLmZvckVhY2goKGxpbmtSdWxlKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGxpbmtSdWxlLnR5cGUgIT09ICdpZCcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hpbmdBbmNlc3RvciA9IGVsZW1lbnQuY2xvc2VzdCgnIycgKyBsaW5rUnVsZS52YWx1ZSkKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFtYXRjaGluZ0FuY2VzdG9yIHx8IG1hdGNoaW5nQW5jZXN0b3IubWF0Y2hlcygnaHRtbCwgYm9keScpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlcHRoID0gY2FsY3VsYXRlUGFyZW50RGlzdGFuY2UoZWxlbWVudCwgbWF0Y2hpbmdBbmNlc3RvcikKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRlcHRoIDwgNykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRzLnB1c2gobGlua1J1bGUudmFsdWUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgLy8gRm9yIGxpbmsgcnVsZXMgdGhhdCB0YXJnZXQgYSBjbGFzcywgd2UgbmVlZCB0byBhbGxvdyB0aGF0IGNsYXNzIHRvIGFwcGVhcgogICAgICAgICAgICAgICAgICAgIC8vIGluIGFueSBhbmNlc3RvciB1cCB0byB0aGUgN3RoIGFuY2VzdG9yLiBUaGlzIGxvb3AgbG9va3MgZm9yIHRob3NlIG1hdGNoZXMKICAgICAgICAgICAgICAgICAgICAvLyBhbmQgY291bnRzIHRoZW0uCiAgICAgICAgICAgICAgICAgICAgbGlua1J1bGVzLmZvckVhY2goKGxpbmtSdWxlKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGxpbmtSdWxlLnR5cGUgIT09ICdjbGFzcycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hpbmdBbmNlc3RvciA9IGVsZW1lbnQuY2xvc2VzdCgnLicgKyBsaW5rUnVsZS52YWx1ZSkKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFtYXRjaGluZ0FuY2VzdG9yIHx8IG1hdGNoaW5nQW5jZXN0b3IubWF0Y2hlcygnaHRtbCwgYm9keScpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlcHRoID0gY2FsY3VsYXRlUGFyZW50RGlzdGFuY2UoZWxlbWVudCwgbWF0Y2hpbmdBbmNlc3RvcikKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRlcHRoIDwgNykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKGxpbmtSdWxlLnZhbHVlKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc01hdGNoID0gbGlua1J1bGVzLnNvbWUoKGxpbmtSdWxlKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpc01hdGNoKGxpbmtSdWxlLCBocmVmLCBjbGFzc2VzLCBpZHMpCiAgICAgICAgICAgICAgICAgICAgfSkKCiAgICAgICAgICAgICAgICAgICAgaWYoIWhhc01hdGNoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXJsID0gImh0dHBzOi8vcGl4ZWx5emVkLmNvbS93cC1jb250ZW50L3BsdWdpbnMvaW5kZXBlbmRlbnQtYW5hbHl0aWNzLXByby9pYXdwLWNsaWNrLWVuZHBvaW50LnBocCI7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9keSA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgaHJlZjogaHJlZiwKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NlczogY2xhc3Nlcy5qb2luKCcgJyksCiAgICAgICAgICAgICAgICAgICAgICAgIGlkczogaWRzLmpvaW4oJyAnKSwKICAgICAgICAgICAgICAgICAgICAgICAgLi4ueyJwYXlsb2FkIjp7InJlc291cmNlIjoic2luZ3VsYXIiLCJzaW5ndWxhcl9pZCI6MjI3OSwicGFnZSI6MX0sInNpZ25hdHVyZSI6ImUzNzMwZjMxNTYwNzliYmYyN2EyMGNkM2QzODA4NzVmIn0gICAgICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgICAgIHNlbmRSZXF1ZXN0KHVybCwgYm9keSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5hdmlnYXRvci53ZWJkcml2ZXIgfHwgL2JvdHxjcmF3bGVyfHNwaWRlcnxjcmF3bGluZ3xzZW1ydXNoYm90fGNocm9tZS1saWdodGhvdXNlL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBldmVudC50YXJnZXQuY2xvc2VzdCgnYScpCgogICAgICAgICAgICAgICAgICAgIGlmKCFlbGVtZW50KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNQcm8gPSB0cnVlCiAgICAgICAgICAgICAgICAgICAgaWYoIWlzUHJvKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgLy8gRG9uJ3QgdHJhY2sgbGVmdCBjbGlja3Mgd2l0aCB0aGlzIGV2ZW50LiBUaGUgY2xpY2sgZXZlbnQgaXMgdXNlZCBmb3IgdGhhdC4KICAgICAgICAgICAgICAgICAgICBpZihldmVudC5idXR0b24gPT09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICB0cmFjayhlbGVtZW50KQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmF2aWdhdG9yLndlYmRyaXZlciB8fCAvYm90fGNyYXdsZXJ8c3BpZGVyfGNyYXdsaW5nfHNlbXJ1c2hib3R8Y2hyb21lLWxpZ2h0aG91c2UvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KCdhLCBidXR0b24sIGlucHV0W3R5cGU9InN1Ym1pdCJdLCBpbnB1dFt0eXBlPSJidXR0b24iXScpCgogICAgICAgICAgICAgICAgICAgIGlmKCFlbGVtZW50KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNQcm8gPSB0cnVlCiAgICAgICAgICAgICAgICAgICAgaWYoIWlzUHJvKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgdHJhY2soZWxlbWVudCkKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwbGF5JywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmF2aWdhdG9yLndlYmRyaXZlciB8fCAvYm90fGNyYXdsZXJ8c3BpZGVyfGNyYXdsaW5nfHNlbXJ1c2hib3R8Y2hyb21lLWxpZ2h0aG91c2UvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KCdhdWRpbywgdmlkZW8nKQoKICAgICAgICAgICAgICAgICAgICBpZighZWxlbWVudCkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzUHJvID0gdHJ1ZQogICAgICAgICAgICAgICAgICAgIGlmKCFpc1BybykgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIHRyYWNrKGVsZW1lbnQpCiAgICAgICAgICAgICAgICB9LCB0cnVlKQogICAgICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50Lmhhc093blByb3BlcnR5KCJ2aXNpYmlsaXR5U3RhdGUiKSAmJiBkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09ICJwcmVyZW5kZXIiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuYXZpZ2F0b3Iud2ViZHJpdmVyIHx8IC9ib3R8Y3Jhd2xlcnxzcGlkZXJ8Y3Jhd2xpbmd8c2VtcnVzaGJvdHxjaHJvbWUtbGlnaHRob3VzZS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIGxldCByZWZlcnJlcl91cmwgPSBudWxsOwoKICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGRvY3VtZW50LnJlZmVycmVyID09PSAnc3RyaW5nJyAmJiBkb2N1bWVudC5yZWZlcnJlci5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVycmVyX3VybCA9IGRvY3VtZW50LnJlZmVycmVyOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyYW1zID0gbG9jYXRpb24uc2VhcmNoLnNsaWNlKDEpLnNwbGl0KCcmJykucmVkdWNlKChhY2MsIHMpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgW2ssIHZdID0gcy5zcGxpdCgnPScpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihhY2MsIHtba106IHZ9KTsKICAgICAgICAgICAgICAgICAgICB9LCB7fSk7CgogICAgICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9ICJodHRwczovL3BpeGVseXplZC5jb20vd3AtanNvbi9pYXdwL3NlYXJjaCI7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9keSA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJyZXJfdXJsLAogICAgICAgICAgICAgICAgICAgICAgICB1dG1fc291cmNlOiBwYXJhbXMudXRtX3NvdXJjZSwKICAgICAgICAgICAgICAgICAgICAgICAgdXRtX21lZGl1bTogcGFyYW1zLnV0bV9tZWRpdW0sCiAgICAgICAgICAgICAgICAgICAgICAgIHV0bV9jYW1wYWlnbjogcGFyYW1zLnV0bV9jYW1wYWlnbiwKICAgICAgICAgICAgICAgICAgICAgICAgdXRtX3Rlcm06IHBhcmFtcy51dG1fdGVybSwKICAgICAgICAgICAgICAgICAgICAgICAgdXRtX2NvbnRlbnQ6IHBhcmFtcy51dG1fY29udGVudCwKICAgICAgICAgICAgICAgICAgICAgICAgZ2NsaWQ6IHBhcmFtcy5nY2xpZCwKICAgICAgICAgICAgICAgICAgICAgICAgLi4ueyJwYXlsb2FkIjp7InJlc291cmNlIjoic2luZ3VsYXIiLCJzaW5ndWxhcl9pZCI6MjI3OSwicGFnZSI6MX0sInNpZ25hdHVyZSI6ImUzNzMwZjMxNTYwNzliYmYyN2EyMGNkM2QzODA4NzVmIn0gICAgICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgICAgIHNlbmRSZXF1ZXN0KHVybCwgYm9keSkKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9KSgpOwogICAgICAgIA=="></script>
        <div id="wpconsent-root" style="--wpconsent-z-index: 900000; --wpconsent-background: var(--base-light); --wpconsent-text: var(--neutral-ultra-dark); --wpconsent-outline-color: rgba(10, 0, 0, 0.2); --wpconsent-accept-bg: var(--primary); --wpconsent-cancel-bg: #ffffff; --wpconsent-preferences-bg: #ffffff; --wpconsent-accept-color: #ffffff; --wpconsent-cancel-color: #000000; --wpconsent-preferences-color: #000000; --wpconsent-font-size: 16px;"><div id="wpconsent-container" style="display: none;"></div><template id="wpconsent-template"><div class="wpconsent-banner-holder wpconsent-banner-floating wpconsent-banner-floating-left-bottom" id="wpconsent-banner-holder" tabindex="-1" role="dialog" aria-labelledby="wpconsent-banner-title"><div class="wpconsent-banner" part="wpconsent-banner"><div class="wpconsent-banner-body" part="wpconsent-banner-body"><h2 id="wpconsent-banner-title" class="screen-reader-text">Cookie Consent</h2><div class="wpconsent-banner-message" tabindex="0"><p>We use cookies to improve your experience on our site. By using our site, you consent to cookies.</p>
</div></div><div class="wpconsent-banner-footer wpconsent-button-size-small wpconsent-button-corner-slightly-rounded wpconsent-button-type-filled" part="wpconsent-banner-footer"><button type="button" id="wpconsent-preferences-all" class="wpconsent-preferences-cookies wpconsent-banner-button wpconsent-preferences-all" part="wpconsent-button-preferences">Preferences</button><button type="button" id="wpconsent-cancel-all" class="wpconsent-cancel-cookies wpconsent-banner-button wpconsent-cancel-all" part="wpconsent-button-cancel">Reject</button><button type="button" id="wpconsent-accept-all" class="wpconsent-accept-cookies wpconsent-banner-button wpconsent-accept-all" part="wpconsent-button-accept">Accept All</button></div></div></div><div id="wpconsent-preferences-modal" class="wpconsent-preferences-modal" style="display:none;" tabindex="-1" role="dialog" aria-modal="true" aria-labelledby="wpconsent-preferences-title" part="wpconsent-preferences-modal"><div class="wpconsent-preferences-content" part="wpconsent-preferences-content"><div class="wpconsent-preferences-header" part="wpconsent-preferences-header"><h2 id="wpconsent-preferences-title" tabindex="0" part="wpconsent-preferences-title">Cookie Preferences</h2><div class="wpconsent-preferences-header-right"><button class="wpconsent-preferences-header-close" id="wpconsent-preferences-close" aria-label="Close" part="wpconsent-preferences-close">&times;</button></div></div><div class="wpconsent-preferences-body"><div class="wpconsent_preferences_panel_description" part="wpconsent-preferences-description"><p>Manage your cookie preferences below:</p>
</div><div class="wpconsent-preference-cookies wpconsent-preferences-accordion" part="wpconsent-preferences-accordion"><div class="wpconsent-preferences-accordion-item wpconsent-cookie-category wpconsent-cookie-category-essential" part="wpconsent-accordion-item wpconsent-category-essential"><div class="wpconsent-preferences-accordion-header" part="wpconsent-accordion-header"><div class="wpconsent-cookie-category-text"><button class="wpconsent-preferences-accordion-toggle" aria-expanded="false" part="wpconsent-accordion-toggle"><span class="wpconsent-preferences-accordion-arrow" aria-hidden="true"></span><span class="screen-reader-text">Toggle Essential</span></button><label for="cookie-category-essential">Essential</label></div><div class="wpconsent-cookie-category-checkbox"><label class="wpconsent-preferences-checkbox-toggle wpconsent-preferences-checkbox-toggle-disabled" part="wpconsent-checkbox-toggle wpconsent-checkbox-toggle-disabled"><input type="checkbox" id="cookie-category-essential" checked disabled><span class="wpconsent-preferences-checkbox-toggle-slider"></span></label></div></div><div class="wpconsent-preferences-accordion-content" part="wpconsent-accordion-content"><p class="wpconsent-category-description" tabindex="0">Essential cookies enable basic functions and are necessary for the proper function of the website.</p><div class="wpconsent-preferences-cookies-list" part="wpconsent-cookies-list"><div class="wpconsent-preferences-list-header" part="wpconsent-cookies-list-header"><div class="cookie-name">Name</div><div class="cookie-desc">Description</div><div class="cookie-duration">Duration</div></div><div class="wpconsent-preferences-list-item" data-cookie-id="5066" part="wpconsent-cookies-list-item"><div class="cookie-name">Cookie Preferences</div><div class="cookie-desc">This cookie is used to store the user's cookie consent preferences.</div><div class="cookie-duration">30 days</div></div></div><div class="wpconsent-preferences-accordion-item wpconsent-cookie-service" part="wpconsent-accordion-item wpconsent-service-comments"><div class="wpconsent-preferences-accordion-header" part="wpconsent-accordion-header"><div class="wpconsent-cookie-category-text"><button class="wpconsent-preferences-accordion-toggle" aria-expanded="false" part="wpconsent-accordion-toggle"><span class="wpconsent-preferences-accordion-arrow" aria-hidden="true"></span><span class="screen-reader-text">Toggle Comments</span></button><label>Comments</label></div><div class="wpconsent-cookie-category-checkbox"></div></div><div class="wpconsent-preferences-accordion-content" part="wpconsent-accordion-content"><p class="wpconsent-service-description" tabindex="0">These cookies are needed for adding comments on this website.</p><div class="wpconsent-preferences-cookies-list" part="wpconsent-cookies-list"><div class="wpconsent-preferences-list-header" part="wpconsent-cookies-list-header"><div class="cookie-name">Name</div><div class="cookie-desc">Description</div><div class="cookie-duration">Duration</div></div><div class="wpconsent-preferences-list-item" data-cookie-id="5067" part="wpconsent-cookies-list-item"><div class="cookie-name">comment_author</div><div class="cookie-desc">Used to track the user across multiple sessions.</div><div class="cookie-duration">Session</div></div><div class="wpconsent-preferences-list-item" data-cookie-id="5068" part="wpconsent-cookies-list-item"><div class="cookie-name">comment_author_email</div><div class="cookie-desc">Used to track the user across multiple sessions.</div><div class="cookie-duration">Session</div></div><div class="wpconsent-preferences-list-item" data-cookie-id="5069" part="wpconsent-cookies-list-item"><div class="cookie-name">comment_author_url</div><div class="cookie-desc">Used to track the user across multiple sessions.</div><div class="cookie-duration">Session</div></div></div></div></div></div></div><div class="wpconsent-preferences-accordion-item wpconsent-cookie-category" part="wpconsent-accordion-item wpconsent-cookie-policy-item"><div class="wpconsent-preferences-accordion-header" part="wpconsent-accordion-header"><div class="wpconsent-cookie-category-text"><button class="wpconsent-preferences-accordion-toggle" aria-expanded="false" part="wpconsent-accordion-toggle"><span class="wpconsent-preferences-accordion-arrow" aria-hidden="true"></span><span class="screen-reader-text">Toggle Cookie Policy</span></button><label class="wpconsent-cookie-policy-title">Cookie Policy</label></div></div><div class="wpconsent-preferences-accordion-content" part="wpconsent-accordion-content"><p tabindex="0" class="wpconsent-cookie-policy-text">You can find more information in our <a href="https://pixelyzed.com/cookie-policy/">Cookie Policy</a> and <a href="https://pixelyzed.com/privacy-policy/">Privacy Policy</a>.</p></div></div></div></div><div class="wpconsent-preferences-actions" part="wpconsent-preferences-actions"><div class="wpconsent-preferences-buttons wpconsent-button-size-small wpconsent-button-corner-slightly-rounded wpconsent-button-type-filled" part="wpconsent-preferences-buttons"><div class="wpconsent-preferences-buttons-left" part="wpconsent-preferences-buttons-left"><button class="wpconsent-accept-all wpconsent-banner-button" part="wpconsent-preferences-accept-button">Accept All</button><button class="wpconsent-close-preferences wpconsent-banner-button" part="wpconsent-preferences-cancel-button">Close</button></div><button class="wpconsent-save-preferences wpconsent-banner-button" part="wpconsent-preferences-save-button">Save and Close</button></div></div></div></div><button id="wpconsent-consent-floating" class="wpconsent-consent-floating-button" part="wpconsent-settings-button" style="background-color: var(--base-light); color: var(--neutral-ultra-dark);" aria-label="Cookie Preferences"><svg class="wpconsent-icon wpconsent-icon-preferences" width="24" height="24" viewBox="0 -960 960 960" xmlns="http://www.w3.org/2000/svg"><path d="m370-80-16-128q-13-5-24.5-12T307-235l-119 50L78-375l103-78q-1-7-1-13.5v-27q0-6.5 1-13.5L78-585l110-190 119 50q11-8 23-15t24-12l16-128h220l16 128q13 5 24.5 12t22.5 15l119-50 110 190-103 78q1 7 1 13.5v27q0 6.5-2 13.5l103 78-110 190-118-50q-11 8-23 15t-24 12L590-80H370Zm70-80h79l14-106q31-8 57.5-23.5T639-327l99 41 39-68-86-65q5-14 7-29.5t2-31.5q0-16-2-31.5t-7-29.5l86-65-39-68-99 42q-22-23-48.5-38.5T533-694l-13-106h-79l-14 106q-31 8-57.5 23.5T321-633l-99-41-39 68 86 64q-5 15-7 30t-2 32q0 16 2 31t7 30l-86 65 39 68 99-42q22 23 48.5 38.5T427-266l13 106Zm42-180q58 0 99-41t41-99q0-58-41-99t-99-41q-59 0-99.5 41T342-480q0 58 40.5 99t99.5 41Zm-2-140Z" fill="var(--neutral-ultra-dark)" /></svg></button></template></div><style>form.fluent_form_1 .ff-btn-submit:not(.ff_btn_no_style) { background-color: var(--fluentform-primary); color: #ffffff; }</style><script id="fluent-form-submission-js-extra" defer src="data:text/javascript;base64,CnZhciBmbHVlbnRGb3JtVmFycyA9IHsiYWpheFVybCI6Imh0dHBzOi8vcGl4ZWx5emVkLmNvbS93cC1hZG1pbi9hZG1pbi1hamF4LnBocCIsImZvcm1zIjpbXSwic3RlcF90ZXh0IjoiU3RlcCAlYWN0aXZlU3RlcCUgb2YgJXRvdGFsU3RlcCUgLSAlc3RlcFRpdGxlJSIsImlzX3J0bCI6IiIsImRhdGVfaTE4biI6eyJwcmV2aW91c01vbnRoIjoiUHJldmlvdXMgTW9udGgiLCJuZXh0TW9udGgiOiJOZXh0IE1vbnRoIiwibW9udGhzIjp7InNob3J0aGFuZCI6WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXSwibG9uZ2hhbmQiOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXX0sIndlZWtkYXlzIjp7ImxvbmdoYW5kIjpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sInNob3J0aGFuZCI6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXX0sImRheXNJbk1vbnRoIjpbMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLCJyYW5nZVNlcGFyYXRvciI6IiB0byAiLCJ3ZWVrQWJicmV2aWF0aW9uIjoiV2siLCJzY3JvbGxUaXRsZSI6IlNjcm9sbCB0byBpbmNyZW1lbnQiLCJ0b2dnbGVUaXRsZSI6IkNsaWNrIHRvIHRvZ2dsZSIsImFtUE0iOlsiQU0iLCJQTSJdLCJ5ZWFyQXJpYUxhYmVsIjoiWWVhciIsImZpcnN0RGF5T2ZXZWVrIjowfSwicHJvX3ZlcnNpb24iOiI2LjEuMjEiLCJmbHVlbnRmb3JtX3ZlcnNpb24iOiI2LjEuMjEiLCJmb3JjZV9pbml0IjoiIiwic3RlcEFuaW1hdGlvbkR1cmF0aW9uIjoiMzUwIiwidXBsb2FkX2NvbXBsZXRlZF90eHQiOiIxMDAlIENvbXBsZXRlZCIsInVwbG9hZF9zdGFydF90eHQiOiIwJSBDb21wbGV0ZWQiLCJ1cGxvYWRpbmdfdHh0IjoiVXBsb2FkaW5nIiwiY2hvaWNlX2pzX3ZhcnMiOnsibm9SZXN1bHRzVGV4dCI6Ik5vIHJlc3VsdHMgZm91bmQiLCJsb2FkaW5nVGV4dCI6IkxvYWRpbmcuLi4iLCJub0Nob2ljZXNUZXh0IjoiTm8gY2hvaWNlcyB0byBjaG9vc2UgZnJvbSIsIml0ZW1TZWxlY3RUZXh0IjoiUHJlc3MgdG8gc2VsZWN0IiwibWF4SXRlbVRleHRTaW5ndWxhciI6Ik9ubHkgJSVtYXhJdGVtQ291bnQlJSBvcHRpb24gY2FuIGJlIGFkZGVkIiwibWF4SXRlbVRleHRQbHVyYWwiOiJPbmx5ICUlbWF4SXRlbUNvdW50JSUgb3B0aW9ucyBjYW4gYmUgYWRkZWQifSwiaW5wdXRfbWFza192YXJzIjp7ImNsZWFySWZOb3RNYXRjaCI6ZmFsc2V9LCJub25jZSI6Ijk4ZTVhZjc2YjYiLCJmaWxlX2RlbGV0ZV9ub25jZSI6ImI4YTE0MWYzZTgiLCJmb3JtX2lkIjoiMSIsInN0ZXBfY2hhbmdlX2ZvY3VzIjoiMSIsImhhc19jbGVhbnRhbGsiOiIiLCJwcm9fcGF5bWVudF9zY3JpcHRfY29tcGF0aWJsZSI6IjEiLCJ0b2tlbl9ub25jZSI6IjYzYTdjZTBlZTMifTsKdmFyIGZsdWVudGZvcm1fc3VibWlzc2lvbl9tZXNzYWdlc18xID0geyJmaWxlX3VwbG9hZF9pbl9wcm9ncmVzcyI6IkZpbGUgdXBsb2FkIGluIHByb2dyZXNzLiBQbGVhc2Ugd2FpdC4uLiIsImphdmFzY3JpcHRfaGFuZGxlcl9mYWlsZWQiOiJKYXZhc2NyaXB0IGhhbmRsZXIgY291bGQgbm90IGJlIGxvYWRlZC4gRm9ybSBzdWJtaXNzaW9uIGhhcyBiZWVuIGZhaWxlZC4gUmVsb2FkIHRoZSBwYWdlIGFuZCB0cnkgYWdhaW4ifTsKdmFyIGZsdWVudGZvcm1fcGF5bWVudF9tZXNzYWdlc18xID0geyJzdG9ja19vdXRfbWVzc2FnZSI6IlRoaXMgSXRlbSBpcyBTdG9jayBPdXQiLCJpdGVtX2xhYmVsIjoiSXRlbSIsInByaWNlX2xhYmVsIjoiUHJpY2UiLCJxdHlfbGFiZWwiOiJRdHkiLCJsaW5lX3RvdGFsX2xhYmVsIjoiTGluZSBUb3RhbCIsInN1Yl90b3RhbF9sYWJlbCI6IlN1YiBUb3RhbCIsImRpc2NvdW50X2xhYmVsIjoiRGlzY291bnQiLCJ0b3RhbF9sYWJlbCI6IlRvdGFsIiwic2lnbnVwX2ZlZV9sYWJlbCI6IlNpZ251cCBGZWUiLCJ0cmlhbF9sYWJlbCI6IlRyaWFsIiwicHJvY2Vzc2luZ190ZXh0IjoiUHJvY2Vzc2luZy4uLiIsImNvbmZpcm1pbmdfdGV4dCI6IkNvbmZpcm1pbmcuLi4ifTsKdmFyIGZsdWVudGZvcm1fc2F2ZV9wcm9ncmVzc19tZXNzYWdlc18xID0geyJjb3B5X2J1dHRvbiI6IkNvcHkiLCJlbWFpbF9idXR0b24iOiJFbWFpbCIsImVtYWlsX3BsYWNlaG9sZGVyIjoiWW91ciBFbWFpbCBIZXJlIiwiY29weV9zdWNjZXNzIjoiQ29waWVkIn07CnZhciBmbHVlbnRmb3JtX2FkZHJlc3NfbWVzc2FnZXNfMSA9IHsicGxlYXNlX3dhaXQiOiJQbGVhc2Ugd2FpdCAuLi4iLCJsb2NhdGlvbl9ub3RfZGV0ZXJtaW5lZCI6IkNvdWxkIG5vdCBkZXRlcm1pbmUgYWRkcmVzcyBmcm9tIGxvY2F0aW9uLiIsImFkZHJlc3NfZmV0Y2hfZmFpbGVkIjoiRmFpbGVkIHRvIGZldGNoIGFkZHJlc3MgZnJvbSBjb29yZGluYXRlcy4iLCJnZW9sb2NhdGlvbl9mYWlsZWQiOiJHZW9sb2NhdGlvbiBmYWlsZWQgb3Igd2FzIGRlbmllZC4iLCJnZW9sb2NhdGlvbl9ub3Rfc3VwcG9ydGVkIjoiR2VvbG9jYXRpb24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJyb3dzZXIuIn07CnZhciBmbHVlbnRmb3JtX2dhdGV3YXlfbWVzc2FnZXNfMSA9IHsicmVxdWVzdF9mYWlsZWQiOiJSZXF1ZXN0IGZhaWxlZC4gUGxlYXNlIHRyeSBhZ2FpbiIsInBheW1lbnRfZmFpbGVkIjoiUGF5bWVudCBwcm9jZXNzIGZhaWxlZCEiLCJub19tZXRob2RfZm91bmQiOiJObyBtZXRob2QgZm91bmQiLCJwcm9jZXNzaW5nX3RleHQiOiJQcm9jZXNzaW5nLi4uIn07CnZhciBmbHVlbnRmb3JtX3N1Ym1pc3Npb25fbWVzc2FnZXNfZ2xvYmFsID0geyJqYXZhc2NyaXB0X2hhbmRsZXJfZmFpbGVkIjoiSmF2YXNjcmlwdCBoYW5kbGVyIGNvdWxkIG5vdCBiZSBsb2FkZWQuIEZvcm0gc3VibWlzc2lvbiBoYXMgYmVlbiBmYWlsZWQuIFJlbG9hZCB0aGUgcGFnZSBhbmQgdHJ5IGFnYWluIn07CnZhciBmbHVlbnRmb3JtX2FkZHJlc3NfbWVzc2FnZXNfZ2xvYmFsID0geyJwbGVhc2Vfd2FpdCI6IlBsZWFzZSB3YWl0IC4uLiIsImxvY2F0aW9uX25vdF9kZXRlcm1pbmVkIjoiQ291bGQgbm90IGRldGVybWluZSBhZGRyZXNzIGZyb20gbG9jYXRpb24uIiwiYWRkcmVzc19mZXRjaF9mYWlsZWQiOiJGYWlsZWQgdG8gZmV0Y2ggYWRkcmVzcyBmcm9tIGNvb3JkaW5hdGVzLiIsImdlb2xvY2F0aW9uX2ZhaWxlZCI6Ikdlb2xvY2F0aW9uIGZhaWxlZCBvciB3YXMgZGVuaWVkLiIsImdlb2xvY2F0aW9uX25vdF9zdXBwb3J0ZWQiOiJHZW9sb2NhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnJvd3Nlci4ifTsKLy8jIHNvdXJjZVVSTD1mbHVlbnQtZm9ybS1zdWJtaXNzaW9uLWpzLWV4dHJhCg=="></script>
<script src="https://pixelyzed.com/wp-content/plugins/fluentform/assets/js/form-submission.js?ver=6.1.21" id="fluent-form-submission-js" defer></script>
<script id="wp-block-template-skip-link-js-after" defer src="data:text/javascript;base64,CgkoIGZ1bmN0aW9uKCkgewoJCXZhciBza2lwTGlua1RhcmdldCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoICdtYWluJyApLAoJCQlzaWJsaW5nLAoJCQlza2lwTGlua1RhcmdldElELAoJCQlza2lwTGluazsKCgkJLy8gRWFybHkgZXhpdCBpZiBhIHNraXAtbGluayB0YXJnZXQgY2FuJ3QgYmUgbG9jYXRlZC4KCQlpZiAoICEgc2tpcExpbmtUYXJnZXQgKSB7CgkJCXJldHVybjsKCQl9CgoJCS8qCgkJICogR2V0IHRoZSBzaXRlIHdyYXBwZXIuCgkJICogVGhlIHNraXAtbGluayB3aWxsIGJlIGluamVjdGVkIGluIHRoZSBiZWdpbm5pbmcgb2YgaXQuCgkJICovCgkJc2libGluZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoICcud3Atc2l0ZS1ibG9ja3MnICk7CgoJCS8vIEVhcmx5IGV4aXQgaWYgdGhlIHJvb3QgZWxlbWVudCB3YXMgbm90IGZvdW5kLgoJCWlmICggISBzaWJsaW5nICkgewoJCQlyZXR1cm47CgkJfQoKCQkvLyBHZXQgdGhlIHNraXAtbGluayB0YXJnZXQncyBJRCwgYW5kIGdlbmVyYXRlIG9uZSBpZiBpdCBkb2Vzbid0IGV4aXN0LgoJCXNraXBMaW5rVGFyZ2V0SUQgPSBza2lwTGlua1RhcmdldC5pZDsKCQlpZiAoICEgc2tpcExpbmtUYXJnZXRJRCApIHsKCQkJc2tpcExpbmtUYXJnZXRJRCA9ICd3cC0tc2tpcC1saW5rLS10YXJnZXQnOwoJCQlza2lwTGlua1RhcmdldC5pZCA9IHNraXBMaW5rVGFyZ2V0SUQ7CgkJfQoKCQkvLyBDcmVhdGUgdGhlIHNraXAgbGluay4KCQlza2lwTGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICdhJyApOwoJCXNraXBMaW5rLmNsYXNzTGlzdC5hZGQoICdza2lwLWxpbmsnLCAnc2NyZWVuLXJlYWRlci10ZXh0JyApOwoJCXNraXBMaW5rLmlkID0gJ3dwLXNraXAtbGluayc7CgkJc2tpcExpbmsuaHJlZiA9ICcjJyArIHNraXBMaW5rVGFyZ2V0SUQ7CgkJc2tpcExpbmsuaW5uZXJUZXh0ID0gJ1NraXAgdG8gY29udGVudCc7CgoJCS8vIEluamVjdCB0aGUgc2tpcCBsaW5rLgoJCXNpYmxpbmcucGFyZW50RWxlbWVudC5pbnNlcnRCZWZvcmUoIHNraXBMaW5rLCBzaWJsaW5nICk7Cgl9KCkgKTsKCQovLyMgc291cmNlVVJMPXdwLWJsb2NrLXRlbXBsYXRlLXNraXAtbGluay1qcy1hZnRlcgo="></script>
<script id="wpconsent-frontend-js-js-extra" defer src="data:text/javascript;base64,CnZhciB3cGNvbnNlbnQgPSB7ImNvbnNlbnRfZHVyYXRpb24iOiIzMCIsImFwaV91cmwiOiJodHRwczovL3BpeGVseXplZC5jb20vd3AtanNvbi93cGNvbnNlbnQvdjEiLCJub25jZSI6IiIsInJlY29yZHNfb2ZfY29uc2VudCI6IjEiLCJjc3NfdXJsIjoiaHR0cHM6Ly9waXhlbHl6ZWQuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy93cGNvbnNlbnQtcHJlbWl1bS9idWlsZC9mcm9udGVuZC1wcm8uY3NzIiwiY3NzX3ZlcnNpb24iOiJjOWYxNjk0Yjk3NmI3ZjlmNGQ2MSIsImRlZmF1bHRfYWxsb3ciOiIxIiwiY29uc2VudF90eXBlIjoib3B0b3V0IiwibWFudWFsX3RvZ2dsZV9zZXJ2aWNlcyI6IiIsImVuYWJsZV9jb25zZW50X2Zsb2F0aW5nIjoiIiwic2x1Z3MiOlsiZXNzZW50aWFsIiwic3RhdGlzdGljcyIsIm1hcmtldGluZyJdLCJnZW9sb2NhdGlvbiI6eyJlbmFibGVkIjpmYWxzZSwiYXBpX3VybCI6Imh0dHBzOi8vcGl4ZWx5emVkLmNvbS93cC1qc29uL3dwY29uc2VudC92MS9nZW9sb2NhdGlvbiIsImxvY2F0aW9uX2dyb3VwcyI6W119LCJjdXJyZW50X2xhbmd1YWdlIjoiZW5fVVMiLCJlbmFibGVfc2NyaXB0X2Jsb2NraW5nIjoiMSIsImVuYWJsZV9jb250ZW50X2Jsb2NraW5nIjoiMCIsImVuYWJsZV9jb25zZW50X2Jhbm5lciI6IjEiLCJlbmFibGVfc2hhcmVkX2NvbnNlbnQiOiIxIiwiY29va2llX2RvbWFpbiI6InBpeGVseXplZC5jb20iLCJhY2NlcHRfYnV0dG9uX2VuYWJsZWQiOiIxIiwiY2FuY2VsX2J1dHRvbl9lbmFibGVkIjoiMSIsInByZWZlcmVuY2VzX2J1dHRvbl9lbmFibGVkIjoiMSIsInJlc3BlY3RfZ3BjIjoiIiwib3JpZ2luYWxfZGVmYXVsdF9hbGxvdyI6IjEiLCJvcmlnaW5hbF9lbmFibGVfY29uc2VudF9iYW5uZXIiOiIxIiwib3JpZ2luYWxfZW5hYmxlX3NjcmlwdF9ibG9ja2luZyI6IjEiLCJvcmlnaW5hbF9lbmFibGVfY29udGVudF9ibG9ja2luZyI6IiIsIm9yaWdpbmFsX2NvbnRlbnRfYmxvY2tpbmdfc2VydmljZXMiOlsieW91dHViZSIsInJlY2FwdGNoYSIsImdvb2dsZS1tYXBzIiwidmltZW8iLCJkYWlseW1vdGlvbiJdLCJvcmlnaW5hbF9jb250ZW50X2Jsb2NraW5nX3BsYWNlaG9sZGVyX3RleHQiOiJDbGljayBoZXJlIHRvIGFjY2VwdCB7Y2F0ZWdvcnl9IGNvb2tpZXMgYW5kIGxvYWQgdGhpcyBjb250ZW50Iiwib3JpZ2luYWxfYWNjZXB0X2J1dHRvbl9lbmFibGVkIjoiMSIsIm9yaWdpbmFsX2NhbmNlbF9idXR0b25fZW5hYmxlZCI6IjEiLCJvcmlnaW5hbF9wcmVmZXJlbmNlc19idXR0b25fZW5hYmxlZCI6IjEiLCJvcmlnaW5hbF9iYW5uZXJfbWVzc2FnZSI6IldlIHVzZSBjb29raWVzIHRvIGltcHJvdmUgeW91ciBleHBlcmllbmNlIG9uIG91ciBzaXRlLiBCeSB1c2luZyBvdXIgc2l0ZSwgeW91IGNvbnNlbnQgdG8gY29va2llcy4iLCJjYXRlZ29yeV9uYW1lcyI6eyJlc3NlbnRpYWwiOiJFc3NlbnRpYWwiLCJzdGF0aXN0aWNzIjoiU3RhdGlzdGljcyIsIm1hcmtldGluZyI6Ik1hcmtldGluZyJ9fTsKLy8jIHNvdXJjZVVSTD13cGNvbnNlbnQtZnJvbnRlbmQtanMtanMtZXh0cmEK"></script>
<script src="https://pixelyzed.com/wp-content/plugins/wpconsent-premium/build/frontend-pro.js?ver=c9f1694b976b7f9f4d61" id="wpconsent-frontend-js-js" defer></script>
<script id="perfmatters-lazy-load-js-before">
window.lazyLoadOptions={elements_selector:"img[data-src],.perfmatters-lazy,.perfmatters-lazy-css-bg",thresholds:"0px 0px",class_loading:"pmloading",class_loaded:"pmloaded",callback_loaded:function(element){if(element.tagName==="IFRAME"){if(element.classList.contains("pmloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}};window.addEventListener("LazyLoad::Initialized",function(e){var lazyLoadInstance=e.detail.instance;var target=document.querySelector("body");var observer=new MutationObserver(function(mutations){lazyLoadInstance.update()});var config={childList:!0,subtree:!0};observer.observe(target,config);});function perfmattersLazyLoadYouTube(e){var t=document.createElement("iframe"),r="ID?";r+=0===e.dataset.query.length?"":e.dataset.query+"&",r+="autoplay=1",t.setAttribute("src",r.replace("ID",e.dataset.src)),e.dataset.referrerpolicy && t.setAttribute("referrerpolicy",e.dataset.referrerpolicy),t.setAttribute("frameborder","0"),t.setAttribute("allowfullscreen","1"),t.setAttribute("allow","accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"),e.replaceChild(t,e.firstChild)}
//# sourceURL=perfmatters-lazy-load-js-before
</script>
<script async src="https://pixelyzed.com/wp-content/plugins/perfmatters/js/lazyload.min.js?ver=2.5.9" id="perfmatters-lazy-load-js"></script>
<script type="text/javascript" id="perfmatters-delayed-styles-js" defer src="data:text/javascript;base64,IWZ1bmN0aW9uKCl7Y29uc3QgZT1bImtleWRvd24iLCJtb3VzZW1vdmUiLCJ3aGVlbCIsInRvdWNobW92ZSIsInRvdWNoc3RhcnQiLCJ0b3VjaGVuZCJdO2Z1bmN0aW9uIHQoKXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJsaW5rW2RhdGEtcG1kZWxheWVkc3R5bGVdIikuZm9yRWFjaChmdW5jdGlvbihlKXtlLnNldEF0dHJpYnV0ZSgiaHJlZiIsZS5nZXRBdHRyaWJ1dGUoImRhdGEtcG1kZWxheWVkc3R5bGUiKSl9KSxlLmZvckVhY2goZnVuY3Rpb24oZSl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSx0LHtwYXNzaXZlOiEwfSl9KX1lLmZvckVhY2goZnVuY3Rpb24oZSl7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoZSx0LHtwYXNzaXZlOiEwfSl9KX0oKTs="></script></body>
</html>
<!-- Cache served by breeze CACHE (Desktop) - Last modified: Wed, 25 Mar 2026 05:07:07 GMT -->

<!-- plugin=object-cache-pro client=phpredis metric#hits=4096 metric#misses=253 metric#hit-ratio=94.2 metric#bytes=3314475 metric#prefetches=9 metric#store-reads=263 metric#store-writes=180 metric#store-hits=74 metric#store-misses=228 metric#sql-queries=184 metric#ms-total=5280.59 metric#ms-cache=91.49 metric#ms-cache-avg=0.2070 metric#ms-cache-ratio=1.7 sample#redis-hits=23628521 sample#redis-misses=2066824 sample#redis-hit-ratio=92.0 sample#redis-ops-per-sec=273 sample#redis-evicted-keys=0 sample#redis-used-memory=37941808 sample#redis-used-memory-rss=33886208 sample#redis-memory-fragmentation-ratio=0.9 sample#redis-connected-clients=2 sample#redis-tracking-clients=0 sample#redis-rejected-connections=0 sample#redis-keys=282 -->
