https://devblogs.microsoft.com/devops/new-boards-hub-rollout-expectations/

Eingereichte URL:
https://devblogs.microsoft.com/devops/new-boards-hub-rollout-expectations/
Bericht beendet:

Die von der Seite ausgehenden identifizierten Links

LinkText
https://go.microsoft.com/fwlink/?LinkId=521839Privacy Statement
https://aka.ms/3rdpartycookiesThird-Party Cookies
https://www.microsoft.comMicrosoftMicrosoft
https://blogs.windows.com/windowsdeveloper/Windows Developer
https://blogs.bing.com/Developers-Blog/Bing Dev Center
http://blogs.windows.com/msedgedev/Microsoft Edge Dev
http://azure.microsoft.com/blog/Microsoft Azure
https://cloudblogs.microsoft.com/sqlserver/?product=azure-data-studioAzure Data Studio
http://blog.revolutionanalytics.com/Revolutions R
https://developercommunity.visualstudio.com/AzureDevOpsshare your feedback with us

JavaScript-Variablen · 153 gefunden

Globale JavaScript-Variablen, die in das Window Object einer Seite geladen werden, sind Variablen, die außerhalb von Funktionen deklariert werden und von jeder Stelle des Codes innerhalb des aktuellen Bereichs zugänglich sind

NameTyp
0object
1object
onbeforetoggleobject
documentPictureInPictureobject
onscrollendobject
isDarkThemeboolean
_wpemojiSettingsobject
_nslDOMReadyfunction
$undefined
jQueryfunction

Konsolenprotokoll-Meldungen · 0 gefunden

In der Web-Konsole protokollierte Meldungen

HTML

Der HTML-Rohtext der Seite

<!DOCTYPE html><html lang="en-US" theme="light" class="js"><head>
	<meta charset="UTF-8">
	<script async="" src="https://www.clarity.ms/s/0.7.58/clarity.js"></script><script async="" src="https://www.clarity.ms/tag/jmy8eheejj?ref=wordpress"></script><script>
		// Initialize theme from localStorage or system preference
		let theme = localStorage.getItem('theme') || (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light');
		document.documentElement.setAttribute('theme', theme);
		const metaTag = document.createElement('meta');
		metaTag.setAttribute('name', 'awa-ver');
		metaTag.content = theme;
		document.head.appendChild(metaTag);
		isDarkTheme = theme === 'dark';
	</script><meta name="awa-ver" content="light">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
			<meta name="awa-pageType" content="post">
				<meta name="awa-product" content="Azure DevOps Blog">
		<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
	<title>New Boards Hub Rollout Expectations - Azure DevOps Blog</title>
	<meta name="mobile-web-app-capable" content="yes">
	<meta name="color-scheme" content="dark light">
	<meta name="apple-mobile-web-app-capable" content="yes">
	<meta name="apple-mobile-web-app-title" content="Azure DevOps Blog - DevOps, Git, and Agile updates from the team building Azure DevOps">
	<link rel="profile" href="http://gmpg.org/xfn/11">
	<link rel="pingback" href="https://devblogs.microsoft.com/devops/xmlrpc.php">
	<!-- [Begin] JSLL SHIM (1DS) domain prefetch  -->
	<link rel="preconnect" href="//js.monitor.azure.com" crossorigin="">
	<link rel="preconnect" href="//browser.events.data.microsoft.com" crossorigin="">
	<!-- [END] JSLL SHIM (1DS) domain prefetch  -->
	<meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1">
	<style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style>
	
	<!-- This site is optimized with the Yoast SEO Premium plugin v23.9 (Yoast SEO v23.9) - https://yoast.com/wordpress/plugins/seo/ -->
	<meta name="description" content="Starting in early January 2025, we will make the New Boards Hub the only experience for the next set of customers. Converting all customers by March 2025.">
	<link rel="canonical" href="https://devblogs.microsoft.com/devops/?p=69894">
	<meta property="og:locale" content="en_US">
	<meta property="og:type" content="article">
	<meta property="og:title" content="New Boards Hub Rollout Expectations - Azure DevOps Blog">
	<meta property="og:description" content="Starting in early January 2025, we will make the New Boards Hub the only experience for the next set of customers. Converting all customers by March 2025.">
	<meta property="og:url" content="https://devblogs.microsoft.com/devops/?p=69894">
	<meta property="og:site_name" content="Azure DevOps Blog">
	<meta property="article:published_time" content="2024-12-11T18:24:35+00:00">
	<meta property="og:image" content="https://devblogs.microsoft.com/devops/wp-content/uploads/sites/6/2024/12/new-boards-1.png">
	<meta property="og:image:width" content="1389">
	<meta property="og:image:height" content="1321">
	<meta property="og:image:type" content="image/png">
	<meta name="author" content="Dan Hellem">
	<meta name="twitter:card" content="summary_large_image">
	<meta name="twitter:creator" content="@AzureDevOps">
	<meta name="twitter:site" content="@AzureDevOps">
	<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://devblogs.microsoft.com/devops/?p=69894","url":"https://devblogs.microsoft.com/devops/?p=69894","name":"New Boards Hub Rollout Expectations - Azure DevOps Blog","isPartOf":{"@id":"https://devblogs.microsoft.com/devops/#website"},"primaryImageOfPage":{"@id":"https://devblogs.microsoft.com/devops/?p=69894#primaryimage"},"image":{"@id":"https://devblogs.microsoft.com/devops/?p=69894#primaryimage"},"thumbnailUrl":"https://devblogs.microsoft.com/devops/wp-content/uploads/sites/6/2024/12/new-boards-1.png","datePublished":"2024-12-11T18:24:35+00:00","dateModified":"2024-12-11T18:24:35+00:00","author":{"@id":"https://devblogs.microsoft.com/devops/#/schema/person/6a15b667ed76f2b0fb8c701467bdba71"},"description":"Starting in early January 2025, we will make the New Boards Hub the only experience for the next set of customers. Converting all customers by March 2025.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://devblogs.microsoft.com/devops/?p=69894"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://devblogs.microsoft.com/devops/?p=69894#primaryimage","url":"https://devblogs.microsoft.com/devops/wp-content/uploads/sites/6/2024/12/new-boards-1.png","contentUrl":"https://devblogs.microsoft.com/devops/wp-content/uploads/sites/6/2024/12/new-boards-1.png","width":1389,"height":1321,"caption":"Image new boards 1"},{"@type":"WebSite","@id":"https://devblogs.microsoft.com/devops/#website","url":"https://devblogs.microsoft.com/devops/","name":"Azure DevOps Blog","description":"DevOps, Git, and Agile updates from the team building Azure DevOps","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://devblogs.microsoft.com/devops/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https://devblogs.microsoft.com/devops/#/schema/person/6a15b667ed76f2b0fb8c701467bdba71","name":"Dan Hellem","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://devblogs.microsoft.com/devops/#/schema/person/image/","url":"https://devblogs.microsoft.com/devops/wp-content/uploads/sites/6/2019/02/dan-128x.png","contentUrl":"https://devblogs.microsoft.com/devops/wp-content/uploads/sites/6/2019/02/dan-128x.png","caption":"Dan Hellem"},"description":"Dan is a Product Manager with Microsoft's Azure DevOps","sameAs":["https://github.com/danhellem"],"url":"https://devblogs.microsoft.com/devops/author/dahellem/"}]}</script>
	<!-- / Yoast SEO Premium plugin. -->


<link rel="alternate" type="application/rss+xml" title="Azure DevOps Blog » New Boards Hub Rollout Expectations Comments Feed" href="https://devblogs.microsoft.com/devops/new-boards-hub-rollout-expectations/feed/">
<script type="text/javascript">
/* <![CDATA[ */
window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/devblogs.microsoft.com\/devops\/wp-includes\/js\/wp-emoji-release.min.js"}};
/*! This file is auto-generated */
!function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings);
/* ]]> */
</script>
<style id="wp-emoji-styles-inline-css" type="text/css">

	img.wp-smiley, img.emoji {
		display: inline !important;
		border: none !important;
		box-shadow: none !important;
		height: 1em !important;
		width: 1em !important;
		margin: 0 0.07em !important;
		vertical-align: -0.1em !important;
		background: none !important;
		padding: 0 !important;
	}
</style>
<link rel="stylesheet" id="wp-block-library-css" href="https://devblogs.microsoft.com/devops/wp-includes/css/dist/block-library/style.min.css" type="text/css" media="all">
<style id="safe-svg-svg-icon-style-inline-css" type="text/css">
.safe-svg-cover{text-align:center}.safe-svg-cover .safe-svg-inside{display:inline-block;max-width:100%}.safe-svg-cover svg{height:100%;max-height:100%;max-width:100%;width:100%}

</style>
<link rel="stylesheet" id="mpp_gutenberg-css" href="https://devblogs.microsoft.com/devops/wp-content/plugins/metronet-profile-picture/dist/blocks.style.build.css?ver=2.6.3" type="text/css" media="all">
<link rel="stylesheet" id="devblogs-evo-styles-css" href="https://devblogs.microsoft.com/devops/wp-content/themes/devblogs-evo/css/theme.min.css?ver=1.2.0.1733860699" type="text/css" media="all">
<link rel="stylesheet" id="newsletter-css" href="https://devblogs.microsoft.com/devops/wp-content/plugins/newsletter/style.css?ver=8.6.4" type="text/css" media="all">
<link rel="stylesheet" id="fabric-icons-css" href="https://devblogs.microsoft.com/devops/wp-content/plugins/fabric-icon-manager/assets/css/fabric-icons.css?ver=1699358813" type="text/css" media="all">
<link rel="stylesheet" id="dev-comments-evo-style-css" href="https://devblogs.microsoft.com/devops/wp-content/plugins/devblogs-comments-evo/admin/css/simplecomments.min.css?ver=1729614066" type="text/css" media="all">
<link rel="stylesheet" id="dashicons-css" href="https://devblogs.microsoft.com/devops/wp-includes/css/dashicons.min.css" type="text/css" media="all">
<link rel="stylesheet" id="editor-buttons-css" href="https://devblogs.microsoft.com/devops/wp-includes/css/editor.min.css" type="text/css" media="all">
<link rel="stylesheet" id="wp-featherlight-css" href="https://devblogs.microsoft.com/devops/wp-content/plugins/wp-featherlight/css/wp-featherlight.min.css?ver=1.3.4" type="text/css" media="all">
<link rel="stylesheet" id="block-custom-css" href="https://devblogs.microsoft.com/devops/wp-content/plugins/devblogs-blocks/assets/block-custom.css" type="text/css" media="all">
<link rel="stylesheet" id="highlight-css-css" href="https://devblogs.microsoft.com/devops/wp-content/plugins/devblogs-blocks/assets/highlight.css" type="text/css" media="all">
<script type="text/javascript">
            window._nslDOMReady = function (callback) {
                if ( document.readyState === "complete" || document.readyState === "interactive" ) {
                    callback();
                } else {
                    document.addEventListener( "DOMContentLoaded", callback );
                }
            };
            </script><script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-content/themes/devblogs-evo/js/back-to-top.min.js?ver=1725380830" id="back-to-top-script-js"></script>
<link rel="https://api.w.org/" href="https://devblogs.microsoft.com/devops/wp-json/"><link rel="alternate" title="JSON" type="application/json" href="https://devblogs.microsoft.com/devops/wp-json/wp/v2/posts/69894"><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://devblogs.microsoft.com/devops/xmlrpc.php?rsd">
<link rel="shortlink" href="https://devblogs.microsoft.com/devops/?p=69894">
<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://devblogs.microsoft.com/devops/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fdevblogs.microsoft.com%2Fdevops%2Fnew-boards-hub-rollout-expectations%2F">
<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://devblogs.microsoft.com/devops/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fdevblogs.microsoft.com%2Fdevops%2Fnew-boards-hub-rollout-expectations%2F&amp;format=xml">
		<script type="text/javascript">
				(function(c,l,a,r,i,t,y){
					c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};t=l.createElement(r);t.async=1;
					t.src="https://www.clarity.ms/tag/"+i+"?ref=wordpress";y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
				})(window, document, "clarity", "script", "jmy8eheejj");
		</script>
		<style>#respond h3#reply-title{display:none;}</style><link rel="preload" as="style" href="https://devblogs.microsoft.com/devops/wp-content/plugins/code-prettify/prettify/prettify.css"><link rel="icon" href="https://devblogs.microsoft.com/devops/wp-content/uploads/sites/6/2018/10/Microsoft-Favicon.png" sizes="32x32">
<link rel="icon" href="https://devblogs.microsoft.com/devops/wp-content/uploads/sites/6/2018/10/Microsoft-Favicon.png" sizes="192x192">
<link rel="apple-touch-icon" href="https://devblogs.microsoft.com/devops/wp-content/uploads/sites/6/2018/10/Microsoft-Favicon.png">
<meta name="msapplication-TileImage" content="https://devblogs.microsoft.com/devops/wp-content/uploads/sites/6/2018/10/Microsoft-Favicon.png">
<style type="text/css">div.nsl-container[data-align="left"] {
    text-align: left;
}

div.nsl-container[data-align="center"] {
    text-align: center;
}

div.nsl-container[data-align="right"] {
    text-align: right;
}


div.nsl-container div.nsl-container-buttons a[data-plugin="nsl"] {
    text-decoration: none;
    box-shadow: none;
    border: 0;
}

div.nsl-container .nsl-container-buttons {
    display: flex;
    padding: 5px 0;
}

div.nsl-container.nsl-container-block .nsl-container-buttons {
    display: inline-grid;
    grid-template-columns: minmax(145px, auto);
}

div.nsl-container-block-fullwidth .nsl-container-buttons {
    flex-flow: column;
    align-items: center;
}

div.nsl-container-block-fullwidth .nsl-container-buttons a,
div.nsl-container-block .nsl-container-buttons a {
    flex: 1 1 auto;
    display: block;
    margin: 5px 0;
    width: 100%;
}

div.nsl-container-inline {
    margin: -5px;
    text-align: left;
}

div.nsl-container-inline .nsl-container-buttons {
    justify-content: center;
    flex-wrap: wrap;
}

div.nsl-container-inline .nsl-container-buttons a {
    margin: 5px;
    display: inline-block;
}

div.nsl-container-grid .nsl-container-buttons {
    flex-flow: row;
    align-items: center;
    flex-wrap: wrap;
}

div.nsl-container-grid .nsl-container-buttons a {
    flex: 1 1 auto;
    display: block;
    margin: 5px;
    max-width: 280px;
    width: 100%;
}

@media only screen and (min-width: 650px) {
    div.nsl-container-grid .nsl-container-buttons a {
        width: auto;
    }
}

div.nsl-container .nsl-button {
    cursor: pointer;
    vertical-align: top;
    border-radius: 4px;
}

div.nsl-container .nsl-button-default {
    color: #fff;
    display: flex;
}

div.nsl-container .nsl-button-icon {
    display: inline-block;
}

div.nsl-container .nsl-button-svg-container {
    flex: 0 0 auto;
    padding: 8px;
    display: flex;
    align-items: center;
}

div.nsl-container svg {
    height: 24px;
    width: 24px;
    vertical-align: top;
}

div.nsl-container .nsl-button-default div.nsl-button-label-container {
    margin: 0 24px 0 12px;
    padding: 10px 0;
    font-family: Helvetica, Arial, sans-serif;
    font-size: 16px;
    line-height: 20px;
    letter-spacing: .25px;
    overflow: hidden;
    text-align: center;
    text-overflow: clip;
    white-space: nowrap;
    flex: 1 1 auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-transform: none;
    display: inline-block;
}

div.nsl-container .nsl-button-google[data-skin="dark"] .nsl-button-svg-container {
    margin: 1px;
    padding: 7px;
    border-radius: 3px;
    background: #fff;
}

div.nsl-container .nsl-button-google[data-skin="light"] {
    border-radius: 1px;
    box-shadow: 0 1px 5px 0 rgba(0, 0, 0, .25);
    color: RGBA(0, 0, 0, 0.54);
}

div.nsl-container .nsl-button-apple .nsl-button-svg-container {
    padding: 0 6px;
}

div.nsl-container .nsl-button-apple .nsl-button-svg-container svg {
    height: 40px;
    width: auto;
}

div.nsl-container .nsl-button-apple[data-skin="light"] {
    color: #000;
    box-shadow: 0 0 0 1px #000;
}

div.nsl-container .nsl-button-facebook[data-skin="white"] {
    color: #000;
    box-shadow: inset 0 0 0 1px #000;
}

div.nsl-container .nsl-button-facebook[data-skin="light"] {
    color: #1877F2;
    box-shadow: inset 0 0 0 1px #1877F2;
}

div.nsl-container .nsl-button-spotify[data-skin="white"] {
    color: #191414;
    box-shadow: inset 0 0 0 1px #191414;
}

div.nsl-container .nsl-button-apple div.nsl-button-label-container {
    font-size: 17px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}

div.nsl-container .nsl-button-slack div.nsl-button-label-container {
    font-size: 17px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}

div.nsl-container .nsl-button-slack[data-skin="light"] {
    color: #000000;
    box-shadow: inset 0 0 0 1px #DDDDDD;
}

div.nsl-container .nsl-button-tiktok[data-skin="light"] {
    color: #161823;
    box-shadow: 0 0 0 1px rgba(22, 24, 35, 0.12);
}


div.nsl-container .nsl-button-kakao {
    color: rgba(0, 0, 0, 0.85);
}

.nsl-clear {
    clear: both;
}

.nsl-container {
    clear: both;
}

.nsl-disabled-provider .nsl-button {
    filter: grayscale(1);
    opacity: 0.8;
}

/*Button align start*/

div.nsl-container-inline[data-align="left"] .nsl-container-buttons {
    justify-content: flex-start;
}

div.nsl-container-inline[data-align="center"] .nsl-container-buttons {
    justify-content: center;
}

div.nsl-container-inline[data-align="right"] .nsl-container-buttons {
    justify-content: flex-end;
}


div.nsl-container-grid[data-align="left"] .nsl-container-buttons {
    justify-content: flex-start;
}

div.nsl-container-grid[data-align="center"] .nsl-container-buttons {
    justify-content: center;
}

div.nsl-container-grid[data-align="right"] .nsl-container-buttons {
    justify-content: flex-end;
}

div.nsl-container-grid[data-align="space-around"] .nsl-container-buttons {
    justify-content: space-around;
}

div.nsl-container-grid[data-align="space-between"] .nsl-container-buttons {
    justify-content: space-between;
}

/* Button align end*/

/* Redirect */

#nsl-redirect-overlay {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: fixed;
    z-index: 1000000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    backdrop-filter: blur(1px);
    background-color: RGBA(0, 0, 0, .32);;
}

#nsl-redirect-overlay-container {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background-color: white;
    padding: 30px;
    border-radius: 10px;
}

#nsl-redirect-overlay-spinner {
    content: '';
    display: block;
    margin: 20px;
    border: 9px solid RGBA(0, 0, 0, .6);
    border-top: 9px solid #fff;
    border-radius: 50%;
    box-shadow: inset 0 0 0 1px RGBA(0, 0, 0, .6), 0 0 0 1px RGBA(0, 0, 0, .6);
    width: 40px;
    height: 40px;
    animation: nsl-loader-spin 2s linear infinite;
}

@keyframes nsl-loader-spin {
    0% {
        transform: rotate(0deg)
    }
    to {
        transform: rotate(360deg)
    }
}

#nsl-redirect-overlay-title {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
    font-size: 18px;
    font-weight: bold;
    color: #3C434A;
}

#nsl-redirect-overlay-text {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
    text-align: center;
    font-size: 14px;
    color: #3C434A;
}

/* Redirect END*/</style><style type="text/css">/* Notice fallback */
#nsl-notices-fallback {
    position: fixed;
    right: 10px;
    top: 10px;
    z-index: 10000;
}

.admin-bar #nsl-notices-fallback {
    top: 42px;
}

#nsl-notices-fallback > div {
    position: relative;
    background: #fff;
    border-left: 4px solid #fff;
    box-shadow: 0 1px 1px 0 rgba(0, 0, 0, .1);
    margin: 5px 15px 2px;
    padding: 1px 20px;
}

#nsl-notices-fallback > div.error {
    display: block;
    border-left-color: #dc3232;
}

#nsl-notices-fallback > div.updated {
    display: block;
    border-left-color: #46b450;
}

#nsl-notices-fallback p {
    margin: .5em 0;
    padding: 2px;
}

#nsl-notices-fallback > div:after {
    position: absolute;
    right: 5px;
    top: 5px;
    content: '\00d7';
    display: block;
    height: 16px;
    width: 16px;
    line-height: 16px;
    text-align: center;
    font-size: 20px;
    cursor: pointer;
}</style>	<!-- Start JSLL SHIM(1DS) Tags -->
	<script src="https://js.monitor.azure.com/scripts/c/ms.jsll-3.min.js" type="text/javascript"></script>
	<script type="text/javascript">
		var config = {
			useDefaultContentName: true,
			useShortNameForContentBlob: false,
			autoCapture: {
				pageView: true,
				onLoad: true,
				onUnload: true,
				lineage: true,
				click: true,
				scroll: true,
				resize: false,
				lineage: true,
				jsError: true,
				addin: true,
				perf: true
			},
			urlCollectHash: true,
			urlCollectQuery: true,
			instrumentationKey: "31b03416b80d4fec81330cf396b8bf63-2db31b2d-ee29-4371-af87-871cba555f5a-7031",
			coreData: {
				appId: "MSDevBlogs",
			},
			// Initially set the GPC_DataSharingOptIn flag property in 1DS (One Data Source) to false
			advancedConfig: {
				propertyConfiguration: {
					gpcDataSharingOptIn: false
				}
			},
			callback: {
				pageName: function () { return document.title },
				contentUpdatePageTags: function () {

					return {
						metaTags: {
							'ver': theme
						},
					}
				},
				pageActionContentTags: function () {

					return {
						metaTags: {
							'ver': theme
						},
					}
				},
				pageActionPageTags: function () {

					return {
																			"pageType": "post",
																																													"pgauth": "Dan Hellem",
																																									"authtype": "editor",
																																																						"pgtop": "Agile, Azure & Cloud, Community, DevOps, ",
							 
					 				  metaTags: {
																					"publishedDate": '20241211',
											  'ver': theme
						},
					}
				},
				pageViewPageTags: function () {
					return {
																	"pageType": "post",
																																									"pgauth": "Dan Hellem",
																																							"authtype": "editor",
																																																			"pgtop": "Agile, Azure & Cloud, Community, DevOps, ",
																																							"metaTags": {
									"publishedDate": '20241211',
								}
												  
		  					}
				},
			}
		};
		awa.init(config);
	</script>
	<!-- END JSLL SHIM(1DS) Integration -->
	<script>
		/*! lazysizes - v4.1.3 | For lazy loading images */
		!function (a, b) { var c = b(a, a.document); a.lazySizes = c, "object" == typeof module && module.exports && (module.exports = c) }(window, function (a, b) { "use strict"; if (b.getElementsByClassName) { var c, d, e = b.documentElement, f = a.Date, g = a.HTMLPictureElement, h = "addEventListener", i = "getAttribute", j = a[h], k = a.setTimeout, l = a.requestAnimationFrame || k, m = a.requestIdleCallback, n = /^picture$/i, o = ["load", "error", "lazyincluded", "_lazyloaded"], p = {}, q = Array.prototype.forEach, r = function (a, b) { return p[b] || (p[b] = new RegExp("(\\s|^)" + b + "(\\s|$)")), p[b].test(a[i]("class") || "") && p[b] }, s = function (a, b) { r(a, b) || a.setAttribute("class", (a[i]("class") || "").trim() + " " + b) }, t = function (a, b) { var c; (c = r(a, b)) && a.setAttribute("class", (a[i]("class") || "").replace(c, " ")) }, u = function (a, b, c) { var d = c ? h : "removeEventListener"; c && u(a, b), o.forEach(function (c) { a[d](c, b) }) }, v = function (a, d, e, f, g) { var h = b.createEvent("Event"); return e || (e = {}), e.instance = c, h.initEvent(d, !f, !g), h.detail = e, a.dispatchEvent(h), h }, w = function (b, c) { var e; !g && (e = a.picturefill || d.pf) ? (c && c.src && !b[i]("srcset") && b.setAttribute("srcset", c.src), e({ reevaluate: !0, elements: [b] })) : c && c.src && (b.src = c.src) }, x = function (a, b) { return (getComputedStyle(a, null) || {})[b] }, y = function (a, b, c) { for (c = c || a.offsetWidth; c < d.minSize && b && !a._lazysizesWidth;)c = b.offsetWidth, b = b.parentNode; return c }, z = function () { var a, c, d = [], e = [], f = d, g = function () { var b = f; for (f = d.length ? e : d, a = !0, c = !1; b.length;)b.shift()(); a = !1 }, h = function (d, e) { a && !e ? d.apply(this, arguments) : (f.push(d), c || (c = !0, (b.hidden ? k : l)(g))) }; return h._lsFlush = g, h }(), A = function (a, b) { return b ? function () { z(a) } : function () { var b = this, c = arguments; z(function () { a.apply(b, c) }) } }, B = function (a) { var b, c = 0, e = d.throttleDelay, g = d.ricTimeout, h = function () { b = !1, c = f.now(), a() }, i = m && g > 49 ? function () { m(h, { timeout: g }), g !== d.ricTimeout && (g = d.ricTimeout) } : A(function () { k(h) }, !0); return function (a) { var d; (a = a === !0) && (g = 33), b || (b = !0, d = e - (f.now() - c), 0 > d && (d = 0), a || 9 > d ? i() : k(i, d)) } }, C = function (a) { var b, c, d = 99, e = function () { b = null, a() }, g = function () { var a = f.now() - c; d > a ? k(g, d - a) : (m || e)(e) }; return function () { c = f.now(), b || (b = k(g, d)) } }; !function () { var b, c = { lazyClass: "lazyload", loadedClass: "lazyloaded", loadingClass: "lazyloading", preloadClass: "lazypreload", errorClass: "lazyerror", autosizesClass: "lazyautosizes", srcAttr: "data-src", srcsetAttr: "data-srcset", sizesAttr: "data-sizes", minSize: 40, customMedia: {}, init: !0, expFactor: 1.5, hFac: .8, loadMode: 2, loadHidden: !0, ricTimeout: 0, throttleDelay: 125 }; d = a.lazySizesConfig || a.lazysizesConfig || {}; for (b in c) b in d || (d[b] = c[b]); a.lazySizesConfig = d, k(function () { d.init && F() }) }(); var D = function () { var g, l, m, o, p, y, D, F, G, H, I, J, K, L, M = /^img$/i, N = /^iframe$/i, O = "onscroll" in a && !/(gle|ing)bot/.test(navigator.userAgent), P = 0, Q = 0, R = 0, S = -1, T = function (a) { R--, a && a.target && u(a.target, T), (!a || 0 > R || !a.target) && (R = 0) }, U = function (a, c) { var d, f = a, g = "hidden" == x(b.body, "visibility") || "hidden" != x(a.parentNode, "visibility") && "hidden" != x(a, "visibility"); for (F -= c, I += c, G -= c, H += c; g && (f = f.offsetParent) && f != b.body && f != e;)g = (x(f, "opacity") || 1) > 0, g && "visible" != x(f, "overflow") && (d = f.getBoundingClientRect(), g = H > d.left && G < d.right && I > d.top - 1 && F < d.bottom + 1); return g }, V = function () { var a, f, h, j, k, m, n, p, q, r = c.elements; if ((o = d.loadMode) && 8 > R && (a = r.length)) { f = 0, S++, null == K && ("expand" in d || (d.expand = e.clientHeight > 500 && e.clientWidth > 500 ? 500 : 370), J = d.expand, K = J * d.expFactor), K > Q && 1 > R && S > 2 && o > 2 && !b.hidden ? (Q = K, S = 0) : Q = o > 1 && S > 1 && 6 > R ? J : P; for (; a > f; f++)if (r[f] && !r[f]._lazyRace) if (O) if ((p = r[f][i]("data-expand")) && (m = 1 * p) || (m = Q), q !== m && (y = innerWidth + m * L, D = innerHeight + m, n = -1 * m, q = m), h = r[f].getBoundingClientRect(), (I = h.bottom) >= n && (F = h.top) <= D && (H = h.right) >= n * L && (G = h.left) <= y && (I || H || G || F) && (d.loadHidden || "hidden" != x(r[f], "visibility")) && (l && 3 > R && !p && (3 > o || 4 > S) || U(r[f], m))) { if (ba(r[f]), k = !0, R > 9) break } else !k && l && !j && 4 > R && 4 > S && o > 2 && (g[0] || d.preloadAfterLoad) && (g[0] || !p && (I || H || G || F || "auto" != r[f][i](d.sizesAttr))) && (j = g[0] || r[f]); else ba(r[f]); j && !k && ba(j) } }, W = B(V), X = function (a) { s(a.target, d.loadedClass), t(a.target, d.loadingClass), u(a.target, Z), v(a.target, "lazyloaded") }, Y = A(X), Z = function (a) { Y({ target: a.target }) }, $ = function (a, b) { try { a.contentWindow.location.replace(b) } catch (c) { a.src = b } }, _ = function (a) { var b, c = a[i](d.srcsetAttr); (b = d.customMedia[a[i]("data-media") || a[i]("media")]) && a.setAttribute("media", b), c && a.setAttribute("srcset", c) }, aa = A(function (a, b, c, e, f) { var g, h, j, l, o, p; (o = v(a, "lazybeforeunveil", b)).defaultPrevented || (e && (c ? s(a, d.autosizesClass) : a.setAttribute("sizes", e)), h = a[i](d.srcsetAttr), g = a[i](d.srcAttr), f && (j = a.parentNode, l = j && n.test(j.nodeName || "")), p = b.firesLoad || "src" in a && (h || g || l), o = { target: a }, p && (u(a, T, !0), clearTimeout(m), m = k(T, 2500), s(a, d.loadingClass), u(a, Z, !0)), l && q.call(j.getElementsByTagName("source"), _), h ? a.setAttribute("srcset", h) : g && !l && (N.test(a.nodeName) ? $(a, g) : a.src = g), f && (h || l) && w(a, { src: g })), a._lazyRace && delete a._lazyRace, t(a, d.lazyClass), z(function () { (!p || a.complete && a.naturalWidth > 1) && (p ? T(o) : R--, X(o)) }, !0) }), ba = function (a) { var b, c = M.test(a.nodeName), e = c && (a[i](d.sizesAttr) || a[i]("sizes")), f = "auto" == e; (!f && l || !c || !a[i]("src") && !a.srcset || a.complete || r(a, d.errorClass) || !r(a, d.lazyClass)) && (b = v(a, "lazyunveilread").detail, f && E.updateElem(a, !0, a.offsetWidth), a._lazyRace = !0, R++, aa(a, b, f, e, c)) }, ca = function () { if (!l) { if (f.now() - p < 999) return void k(ca, 999); var a = C(function () { d.loadMode = 3, W() }); l = !0, d.loadMode = 3, W(), j("scroll", function () { 3 == d.loadMode && (d.loadMode = 2), a() }, !0) } }; return { _: function () { p = f.now(), c.elements = b.getElementsByClassName(d.lazyClass), g = b.getElementsByClassName(d.lazyClass + " " + d.preloadClass), L = d.hFac, j("scroll", W, !0), j("resize", W, !0), a.MutationObserver ? new MutationObserver(W).observe(e, { childList: !0, subtree: !0, attributes: !0 }) : (e[h]("DOMNodeInserted", W, !0), e[h]("DOMAttrModified", W, !0), setInterval(W, 999)), j("hashchange", W, !0), ["focus", "mouseover", "click", "load", "transitionend", "animationend", "webkitAnimationEnd"].forEach(function (a) { b[h](a, W, !0) }), /d$|^c/.test(b.readyState) ? ca() : (j("load", ca), b[h]("DOMContentLoaded", W), k(ca, 2e4)), c.elements.length ? (V(), z._lsFlush()) : W() }, checkElems: W, unveil: ba } }(), E = function () { var a, c = A(function (a, b, c, d) { var e, f, g; if (a._lazysizesWidth = d, d += "px", a.setAttribute("sizes", d), n.test(b.nodeName || "")) for (e = b.getElementsByTagName("source"), f = 0, g = e.length; g > f; f++)e[f].setAttribute("sizes", d); c.detail.dataAttr || w(a, c.detail) }), e = function (a, b, d) { var e, f = a.parentNode; f && (d = y(a, f, d), e = v(a, "lazybeforesizes", { width: d, dataAttr: !!b }), e.defaultPrevented || (d = e.detail.width, d && d !== a._lazysizesWidth && c(a, f, e, d))) }, f = function () { var b, c = a.length; if (c) for (b = 0; c > b; b++)e(a[b]) }, g = C(f); return { _: function () { a = b.getElementsByClassName(d.autosizesClass), j("resize", g) }, checkElems: g, updateElem: e } }(), F = function () { F.i || (F.i = !0, E._(), D._()) }; return c = { cfg: d, autoSizer: E, loader: D, init: F, uP: w, aC: s, rC: t, hC: r, fire: v, gW: y, rAF: z } } });
	</script>
<style id="ms-consent-banner-main-styles">.w8hcgFksdo30C8w-bygqu{color:#000}.ydkKdaztSS0AeHWIeIHsQ a{color:#0067B8}.erL690_8JwUW-R4bJRcfl{background-color:#EBEBEB;border:none;color:#000}.erL690_8JwUW-R4bJRcfl:enabled:hover{color:#000;background-color:#DBDBDB;box-shadow:0px 4px 10px rgba(0,0,0,0.25);border:none}.erL690_8JwUW-R4bJRcfl:enabled:focus{background-color:#DBDBDB;box-shadow:0px 4px 10px rgba(0,0,0,0.25);border:2px solid #000}.erL690_8JwUW-R4bJRcfl:disabled{opacity:1;color:rgba(0,0,0,0.2);background-color:rgba(0,0,0,0.2);border:none}._1zNQOqxpBFSokeCLGi_hGr{border:none;background-color:#0067B8;color:#fff}._1zNQOqxpBFSokeCLGi_hGr:enabled:hover{color:#fff;background-color:#0067B8;box-shadow:0px 4px 10px rgba(0,0,0,0.25);border:none}._1zNQOqxpBFSokeCLGi_hGr:enabled:focus{background-color:#0067B8;box-shadow:0px 4px 10px rgba(0,0,0,0.25);border:2px solid #000}._1zNQOqxpBFSokeCLGi_hGr:disabled{opacity:1;color:rgba(0,0,0,0.2);background-color:rgba(0,120,215,0.2);border:none}._23tra1HsiiP6cT-Cka-ycB{position:relative;display:flex;z-index:9999;width:100%;background-color:#F2F2F2;justify-content:space-between;text-align:left}div[dir="rtl"]._23tra1HsiiP6cT-Cka-ycB{text-align:right}._1Upc2NjY8AlDn177YoVj0y{margin:0;padding-left:5%;padding-top:8px;padding-bottom:8px}div[dir="rtl"] ._1Upc2NjY8AlDn177YoVj0y{margin:0;padding:8px 5% 8px 0;float:none}._23tra1HsiiP6cT-Cka-ycB svg{fill:none;max-width:none;max-height:none}._1V_hlU-7jdtPiooHMu89BB{display:table-cell;padding:12px;width:24px;height:24px;font-family:Segoe UI, SegoeUI, Arial, sans-serif;font-style:normal;font-weight:normal;font-size:24px;line-height:0}.f6QKJD7fhSbnJLarTL-W-{display:table-cell;vertical-align:middle;padding:0;font-family:Segoe UI, SegoeUI, Arial, sans-serif;font-style:normal;font-weight:normal;font-size:13px;line-height:16px}.f6QKJD7fhSbnJLarTL-W- a{text-decoration:underline}._2j0fmugLb1FgYz6KPuB91w{display:inline-block;margin-left:5%;margin-right:5%;min-width:40%;min-width:calc((150px + 3 * 4px) * 2 + 150px);min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;align-self:center;position:relative}._1XuCi2WhiqeWRUVp3pnFG3{margin:4px;padding:5px;min-width:150px;min-height:36px;vertical-align:top;cursor:pointer;font-family:Segoe UI, SegoeUI, Arial, sans-serif;font-style:normal;font-weight:normal;font-size:15px;line-height:20px;text-align:center}._1XuCi2WhiqeWRUVp3pnFG3:focus{box-sizing:border-box}._1XuCi2WhiqeWRUVp3pnFG3:disabled{cursor:not-allowed}._2bvsb3ubApyZ0UGoQA9O9T{display:block;position:fixed;z-index:10000;top:0;left:0;width:100%;height:100%;background-color:rgba(255,255,255,0.6);overflow:auto;text-align:left}div[dir="rtl"]._2bvsb3ubApyZ0UGoQA9O9T{text-align:right}div[dir="rtl"] ._2bvsb3ubApyZ0UGoQA9O9T{left:auto;right:0}.AFsJE948muYyzCMktdzuk{position:relative;top:8%;margin-bottom:40px;margin-left:auto;margin-right:auto;box-sizing:border-box;width:640px;background-color:#fff;border:1px solid #0067B8}._3kWyBRbW_dgnMiEyx06Fu4{float:right;z-index:1;margin:2px;padding:12px;border:none;cursor:pointer;font-family:Segoe UI, SegoeUI, Arial, sans-serif;font-style:normal;font-weight:normal;font-size:13px;line-height:13px;display:flex;align-items:center;text-align:center;color:#666;background-color:#fff}div[dir="rtl"] ._3kWyBRbW_dgnMiEyx06Fu4{margin:2px;padding:12px;float:left}.uCYvKvHXrhjNgflv1VqdD{position:static;margin-top:36px;margin-left:36px;margin-right:36px}._17pX1m9O_W--iZbDt3Ta5r{margin-top:0;margin-bottom:12px;font-family:Segoe UI, SegoeUI, Arial, sans-serif;font-style:normal;font-weight:600;font-size:20px;line-height:24px;text-transform:none}._1kBkHQ1V1wu3kl-YcLgUr6{height:446px;overflow:auto}._20_nXDf6uFs9Q6wxRXG-I-{margin-top:0;font-family:Segoe UI, SegoeUI, Arial, sans-serif;font-style:normal;font-weight:normal;font-size:15px;line-height:20px}._20_nXDf6uFs9Q6wxRXG-I- a{text-decoration:underline}dl._2a0NH_GDQEQe5Ynfo7suVH{margin-top:36px;margin-bottom:0;padding:0;list-style:none;text-transform:none}dt._3j_LCPv7fyXv3A8FIXVwZ4{margin-top:20px;float:none;font-family:Segoe UI, SegoeUI, Arial, sans-serif;font-style:normal;font-weight:600;font-size:18px;line-height:24px;list-style:none}.k-vxTGFbdq1aOZB2HHpjh{margin:0;padding:0;border:none}._2Bucyy75c_ogoU1g-liB5R{margin:0;padding:0;border-bottom:none;font-family:Segoe UI, SegoeUI, Arial, sans-serif;font-style:normal;font-weight:600;font-size:18px;line-height:24px;text-transform:none}._63gwfzV8dclrsl2cfd90r{display:inline-block;margin-top:0;margin-bottom:13px;font-family:Segoe UI, SegoeUI, Arial, sans-serif;font-style:normal;font-weight:normal;font-size:15px;line-height:20px}._1l8wM_4mRYGz3Iu7l3BZR7{display:block}._2UE03QS02aZGkslegN_F-i{display:inline-block;position:relative;left:5px;margin-bottom:13px;margin-right:34px;padding:3px}div[dir="rtl"] ._2UE03QS02aZGkslegN_F-i{margin:0 0 13px 34px;padding:3px;float:none}div[dir="rtl"] ._2UE03QS02aZGkslegN_F-i{left:auto;right:5px}._23tra1HsiiP6cT-Cka-ycB *::before,._2bvsb3ubApyZ0UGoQA9O9T *::before,._23tra1HsiiP6cT-Cka-ycB *::after,._2bvsb3ubApyZ0UGoQA9O9T *::after{box-sizing:inherit}._1HSFn0HzGo6w4ADApV8-c4{outline:2px solid rgba(0,0,0,0.8)}input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2{display:inline-block;position:relative;margin-top:0;margin-left:0;margin-right:0;height:0;width:0;border-radius:0;cursor:pointer;outline:none;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2+label::before{display:block;position:absolute;top:5px;left:3px;height:19px;width:19px;content:"";border-radius:50%;border:1px solid #000;background-color:#fff}div[dir="rtl"] input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2+label::before{left:auto;right:3px}input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2:not(:disabled)+label:hover::before{border:1px solid #0067B8}input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2:not(:disabled)+label:hover::after{display:block;position:absolute;top:10px;left:8px;height:9px;width:9px;content:"";border-radius:50%;background-color:rgba(0,0,0,0.8)}div[dir="rtl"] input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2:not(:disabled)+label:hover::after{left:auto;right:8px}input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2:not(:disabled)+label:focus::before{border:1px solid #0067B8}input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2:not(:disabled)+label:focus::after{display:block;position:absolute;top:10px;left:8px;height:9px;width:9px;content:"";border-radius:50%;background-color:#000}div[dir="rtl"] input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2:not(:disabled)+label:focus::after{left:auto;right:8px}input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2:checked+label::after{display:block;position:absolute;top:10px;left:8px;height:9px;width:9px;content:"";border-radius:50%;background-color:#000}div[dir="rtl"] input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2:checked+label::after{left:auto;right:8px}input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2:disabled+label{cursor:not-allowed}input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2:disabled+label::before{border:1px solid rgba(0,0,0,0.2);background-color:rgba(0,0,0,0.2)}._3RJzeL3l9Rl_lAQEm6VwdX{display:block;position:static;float:right;margin-top:0;margin-bottom:0;margin-left:19px;margin-right:0;padding-top:0;padding-bottom:0;padding-left:8px;padding-right:0;width:80%;width:calc(100% - 19px);font-family:Segoe UI, SegoeUI, Arial, sans-serif;font-style:normal;font-weight:normal;font-size:15px;line-height:20px;text-transform:none;cursor:pointer;box-sizing:border-box}div[dir="rtl"] ._3RJzeL3l9Rl_lAQEm6VwdX{margin:0 19px 0 0;padding:0 8px 0 0;float:left}.nohp3sIG12ZBhzcMnPala{margin-top:20px;margin-bottom:48px}._2uhaEsmeotZ3P-M0AXo2kF{padding:0;width:278px;height:36px;cursor:pointer;font-family:Segoe UI, SegoeUI, Arial, sans-serif;font-style:normal;font-weight:normal;font-size:15px;line-height:20px;text-align:center}._2uhaEsmeotZ3P-M0AXo2kF:focus{box-sizing:border-box}._2uhaEsmeotZ3P-M0AXo2kF:disabled{cursor:not-allowed}._3tOu1FJ59c_xz_PmI1lKV5{float:right;padding:0;width:278px;height:36px;cursor:pointer;font-family:Segoe UI, SegoeUI, Arial, sans-serif;font-style:normal;font-weight:normal;font-size:15px;line-height:20px;text-align:center}._3tOu1FJ59c_xz_PmI1lKV5:focus{box-sizing:border-box}._3tOu1FJ59c_xz_PmI1lKV5:disabled{cursor:not-allowed}div[dir="rtl"] ._3tOu1FJ59c_xz_PmI1lKV5{margin:0;padding:0;float:left}@media only screen and (max-width: 768px){._2j0fmugLb1FgYz6KPuB91w,._1Upc2NjY8AlDn177YoVj0y{padding-top:8px;padding-bottom:12px;padding-left:3.75%;padding-right:3.75%;margin:0;width:92.5%}._23tra1HsiiP6cT-Cka-ycB{display:block}._1XuCi2WhiqeWRUVp3pnFG3{margin-bottom:8px;margin-left:0;margin-right:0;width:100%}._2bvsb3ubApyZ0UGoQA9O9T{overflow:hidden}.AFsJE948muYyzCMktdzuk{top:1.8%;width:93.33%;height:96.4%;overflow:hidden}.uCYvKvHXrhjNgflv1VqdD{margin-top:24px;margin-left:24px;margin-right:24px;height:100%}._1kBkHQ1V1wu3kl-YcLgUr6{height:62%;height:calc(100% - 188px);min-height:50%}._2uhaEsmeotZ3P-M0AXo2kF{width:100%}._3tOu1FJ59c_xz_PmI1lKV5{margin-bottom:12px;margin-left:0;width:100%}div[dir="rtl"] ._3tOu1FJ59c_xz_PmI1lKV5{margin:0 0 12px 0;padding:0;float:none}}@media only screen and (max-width: 768px) and (orientation: landscape), only screen and (max-height: 260px), only screen and (max-width: 340px){.AFsJE948muYyzCMktdzuk{overflow:auto}}@media only screen and (max-height: 260px), only screen and (max-width: 340px){._1XuCi2WhiqeWRUVp3pnFG3{min-width:0}._3kWyBRbW_dgnMiEyx06Fu4{padding:3%}.uCYvKvHXrhjNgflv1VqdD{margin-top:3%;margin-left:3%;margin-right:3%}._17pX1m9O_W--iZbDt3Ta5r{margin-bottom:3%}._1kBkHQ1V1wu3kl-YcLgUr6{height:calc(79% - 64px)}.nohp3sIG12ZBhzcMnPala{margin-top:5%;margin-bottom:10%}._3tOu1FJ59c_xz_PmI1lKV5{margin-bottom:3%}div[dir="rtl"] ._3tOu1FJ59c_xz_PmI1lKV5{margin:0 0 3% 0;padding:0;float:none}}
</style><style type="text/css" id="ms-consent-banner-theme-styles">._23tra1HsiiP6cT-Cka-ycB {
            background-color: #F2F2F2 !important;
        }.w8hcgFksdo30C8w-bygqu {
            color: #000000 !important;
        }.ydkKdaztSS0AeHWIeIHsQ a {
            color: #0067B8 !important;
        }._2bvsb3ubApyZ0UGoQA9O9T {
            background-color: rgba(255, 255, 255, 0.6) !important;
        }.AFsJE948muYyzCMktdzuk {
            background-color: #FFFFFF !important;
            border: 1px solid #0067B8 !important;
        }._3kWyBRbW_dgnMiEyx06Fu4 {
            color: #666666 !important;
            background-color: #FFFFFF !important;
        }._1zNQOqxpBFSokeCLGi_hGr {
            border: none !important;
            background-color: #0067B8 !important;
            color: #FFFFFF !important;
        }._1zNQOqxpBFSokeCLGi_hGr:enabled:hover {
            color: #FFFFFF !important;
            background-color: #0067B8 !important;
            box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25) !important;
            border: none !important;
        }._1zNQOqxpBFSokeCLGi_hGr:enabled:focus {
            background-color: #0067B8 !important;
            box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25) !important;
            border: 2px solid #000000 !important;
        }._1zNQOqxpBFSokeCLGi_hGr:disabled {
            opacity: 1 !important;
            color: rgba(0, 0, 0, 0.2) !important;
            background-color: rgba(0, 120, 215, 0.2) !important;
            border: none !important;
        }.erL690_8JwUW-R4bJRcfl {
            border: none !important;
            background-color: #EBEBEB !important;
            color: #000000 !important;
        }.erL690_8JwUW-R4bJRcfl:enabled:hover {
            color: #000000 !important;
            background-color: #DBDBDB !important;
            box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25) !important;
            border: none !important;
        }.erL690_8JwUW-R4bJRcfl:enabled:focus {
            background-color: #DBDBDB !important;
            box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25) !important;
            border: 2px solid #000000 !important;
        }.erL690_8JwUW-R4bJRcfl:disabled {
            opacity: 1 !important;
            color: rgba(0, 0, 0, 0.2) !important;
            background-color: rgba(0, 0, 0, 0.2) !important;
            border: none !important;
        }input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2 + label::before {
            border: 1px solid #000000 !important;
            background-color: #FFFFFF !important;
        }._1HSFn0HzGo6w4ADApV8-c4 {
            outline: 2px solid rgba(0, 0, 0, 0.8) !important;
        }input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2:checked + label::after {
            background-color: #000000 !important;
        }input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2 + label:hover::before {
            border: 1px solid #0067B8 !important;
        }input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2 + label:hover::after {
            background-color: rgba(0, 0, 0, 0.8) !important;
        }input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2 + label:focus::before {
            border: 1px solid #0067B8 !important;
        }input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2 + label:focus::after {
            background-color: #000000 !important;
        }input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2:disabled + label::before {
            border: 1px solid rgba(0, 0, 0, 0.2) !important;
            background-color: rgba(0, 0, 0, 0.2) !important;
        }</style><link rel="stylesheet" type="text/css" href="https://devblogs.microsoft.com/devops/wp-content/plugins/code-prettify/prettify/prettify.css"><script src="https://devblogs.microsoft.com/devops/wp-includes/js/wp-emoji-release.min.js" defer=""></script><script type="application/ld+json">{"@context":"https://schema.org/","@type":"BreadcrumbList","itemListElement":[{"position":1,"name":"Dev Blogs","item":"https://devblogs.microsoft.com/","@type":"ListItem"},{"position":2,"name":"Azure DevOps Blog","item":"https://devblogs.microsoft.com/devops/","@type":"ListItem"},{"position":3,"name":"New Boards Hub Rollout Expectations - Azure DevOps Blog","item":"https://devblogs.microsoft.com/devops/new-boards-hub-rollout-expectations/","@type":"ListItem"}]}</script><style type="text/css" nonce="" media="print">.usabilla_live_button_container { display: none; }</style><style type="text/css" nonce="">iframe.usabilla-live-button#usabilla_live_button_container_iframe972316662{width:40px;height:130px;margin: 0;padding: 0;border: 0;overflow: hidden;z-index: 9998;position: absolute;left: 0;top: 0;box-shadow: 0 0 0;background-color: transparent;}</style><style id="ms-consent-banner-main-styles">.w8hcgFksdo30C8w-bygqu{color:#000}.ydkKdaztSS0AeHWIeIHsQ a{color:#0067B8}.erL690_8JwUW-R4bJRcfl{background-color:#EBEBEB;border:none;color:#000}.erL690_8JwUW-R4bJRcfl:enabled:hover{color:#000;background-color:#DBDBDB;box-shadow:0px 4px 10px rgba(0,0,0,0.25);border:none}.erL690_8JwUW-R4bJRcfl:enabled:focus{background-color:#DBDBDB;box-shadow:0px 4px 10px rgba(0,0,0,0.25);border:2px solid #000}.erL690_8JwUW-R4bJRcfl:disabled{opacity:1;color:rgba(0,0,0,0.2);background-color:rgba(0,0,0,0.2);border:none}._1zNQOqxpBFSokeCLGi_hGr{border:none;background-color:#0067B8;color:#fff}._1zNQOqxpBFSokeCLGi_hGr:enabled:hover{color:#fff;background-color:#0067B8;box-shadow:0px 4px 10px rgba(0,0,0,0.25);border:none}._1zNQOqxpBFSokeCLGi_hGr:enabled:focus{background-color:#0067B8;box-shadow:0px 4px 10px rgba(0,0,0,0.25);border:2px solid #000}._1zNQOqxpBFSokeCLGi_hGr:disabled{opacity:1;color:rgba(0,0,0,0.2);background-color:rgba(0,120,215,0.2);border:none}._23tra1HsiiP6cT-Cka-ycB{position:relative;display:flex;z-index:9999;width:100%;background-color:#F2F2F2;justify-content:space-between;text-align:left}div[dir="rtl"]._23tra1HsiiP6cT-Cka-ycB{text-align:right}._1Upc2NjY8AlDn177YoVj0y{margin:0;padding-left:5%;padding-top:8px;padding-bottom:8px}div[dir="rtl"] ._1Upc2NjY8AlDn177YoVj0y{margin:0;padding:8px 5% 8px 0;float:none}._23tra1HsiiP6cT-Cka-ycB svg{fill:none;max-width:none;max-height:none}._1V_hlU-7jdtPiooHMu89BB{display:table-cell;padding:12px;width:24px;height:24px;font-family:Segoe UI, SegoeUI, Arial, sans-serif;font-style:normal;font-weight:normal;font-size:24px;line-height:0}.f6QKJD7fhSbnJLarTL-W-{display:table-cell;vertical-align:middle;padding:0;font-family:Segoe UI, SegoeUI, Arial, sans-serif;font-style:normal;font-weight:normal;font-size:13px;line-height:16px}.f6QKJD7fhSbnJLarTL-W- a{text-decoration:underline}._2j0fmugLb1FgYz6KPuB91w{display:inline-block;margin-left:5%;margin-right:5%;min-width:40%;min-width:calc((150px + 3 * 4px) * 2 + 150px);min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;align-self:center;position:relative}._1XuCi2WhiqeWRUVp3pnFG3{margin:4px;padding:5px;min-width:150px;min-height:36px;vertical-align:top;cursor:pointer;font-family:Segoe UI, SegoeUI, Arial, sans-serif;font-style:normal;font-weight:normal;font-size:15px;line-height:20px;text-align:center}._1XuCi2WhiqeWRUVp3pnFG3:focus{box-sizing:border-box}._1XuCi2WhiqeWRUVp3pnFG3:disabled{cursor:not-allowed}._2bvsb3ubApyZ0UGoQA9O9T{display:block;position:fixed;z-index:10000;top:0;left:0;width:100%;height:100%;background-color:rgba(255,255,255,0.6);overflow:auto;text-align:left}div[dir="rtl"]._2bvsb3ubApyZ0UGoQA9O9T{text-align:right}div[dir="rtl"] ._2bvsb3ubApyZ0UGoQA9O9T{left:auto;right:0}.AFsJE948muYyzCMktdzuk{position:relative;top:8%;margin-bottom:40px;margin-left:auto;margin-right:auto;box-sizing:border-box;width:640px;background-color:#fff;border:1px solid #0067B8}._3kWyBRbW_dgnMiEyx06Fu4{float:right;z-index:1;margin:2px;padding:12px;border:none;cursor:pointer;font-family:Segoe UI, SegoeUI, Arial, sans-serif;font-style:normal;font-weight:normal;font-size:13px;line-height:13px;display:flex;align-items:center;text-align:center;color:#666;background-color:#fff}div[dir="rtl"] ._3kWyBRbW_dgnMiEyx06Fu4{margin:2px;padding:12px;float:left}.uCYvKvHXrhjNgflv1VqdD{position:static;margin-top:36px;margin-left:36px;margin-right:36px}._17pX1m9O_W--iZbDt3Ta5r{margin-top:0;margin-bottom:12px;font-family:Segoe UI, SegoeUI, Arial, sans-serif;font-style:normal;font-weight:600;font-size:20px;line-height:24px;text-transform:none}._1kBkHQ1V1wu3kl-YcLgUr6{height:446px;overflow:auto}._20_nXDf6uFs9Q6wxRXG-I-{margin-top:0;font-family:Segoe UI, SegoeUI, Arial, sans-serif;font-style:normal;font-weight:normal;font-size:15px;line-height:20px}._20_nXDf6uFs9Q6wxRXG-I- a{text-decoration:underline}dl._2a0NH_GDQEQe5Ynfo7suVH{margin-top:36px;margin-bottom:0;padding:0;list-style:none;text-transform:none}dt._3j_LCPv7fyXv3A8FIXVwZ4{margin-top:20px;float:none;font-family:Segoe UI, SegoeUI, Arial, sans-serif;font-style:normal;font-weight:600;font-size:18px;line-height:24px;list-style:none}.k-vxTGFbdq1aOZB2HHpjh{margin:0;padding:0;border:none}._2Bucyy75c_ogoU1g-liB5R{margin:0;padding:0;border-bottom:none;font-family:Segoe UI, SegoeUI, Arial, sans-serif;font-style:normal;font-weight:600;font-size:18px;line-height:24px;text-transform:none}._63gwfzV8dclrsl2cfd90r{display:inline-block;margin-top:0;margin-bottom:13px;font-family:Segoe UI, SegoeUI, Arial, sans-serif;font-style:normal;font-weight:normal;font-size:15px;line-height:20px}._1l8wM_4mRYGz3Iu7l3BZR7{display:block}._2UE03QS02aZGkslegN_F-i{display:inline-block;position:relative;left:5px;margin-bottom:13px;margin-right:34px;padding:3px}div[dir="rtl"] ._2UE03QS02aZGkslegN_F-i{margin:0 0 13px 34px;padding:3px;float:none}div[dir="rtl"] ._2UE03QS02aZGkslegN_F-i{left:auto;right:5px}._23tra1HsiiP6cT-Cka-ycB *::before,._2bvsb3ubApyZ0UGoQA9O9T *::before,._23tra1HsiiP6cT-Cka-ycB *::after,._2bvsb3ubApyZ0UGoQA9O9T *::after{box-sizing:inherit}._1HSFn0HzGo6w4ADApV8-c4{outline:2px solid rgba(0,0,0,0.8)}input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2{display:inline-block;position:relative;margin-top:0;margin-left:0;margin-right:0;height:0;width:0;border-radius:0;cursor:pointer;outline:none;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2+label::before{display:block;position:absolute;top:5px;left:3px;height:19px;width:19px;content:"";border-radius:50%;border:1px solid #000;background-color:#fff}div[dir="rtl"] input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2+label::before{left:auto;right:3px}input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2:not(:disabled)+label:hover::before{border:1px solid #0067B8}input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2:not(:disabled)+label:hover::after{display:block;position:absolute;top:10px;left:8px;height:9px;width:9px;content:"";border-radius:50%;background-color:rgba(0,0,0,0.8)}div[dir="rtl"] input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2:not(:disabled)+label:hover::after{left:auto;right:8px}input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2:not(:disabled)+label:focus::before{border:1px solid #0067B8}input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2:not(:disabled)+label:focus::after{display:block;position:absolute;top:10px;left:8px;height:9px;width:9px;content:"";border-radius:50%;background-color:#000}div[dir="rtl"] input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2:not(:disabled)+label:focus::after{left:auto;right:8px}input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2:checked+label::after{display:block;position:absolute;top:10px;left:8px;height:9px;width:9px;content:"";border-radius:50%;background-color:#000}div[dir="rtl"] input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2:checked+label::after{left:auto;right:8px}input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2:disabled+label{cursor:not-allowed}input[type="radio"]._1dp8Vp5m3HwAqGx8qBmFV2:disabled+label::before{border:1px solid rgba(0,0,0,0.2);background-color:rgba(0,0,0,0.2)}._3RJzeL3l9Rl_lAQEm6VwdX{display:block;position:static;float:right;margin-top:0;margin-bottom:0;margin-left:19px;margin-right:0;padding-top:0;padding-bottom:0;padding-left:8px;padding-right:0;width:80%;width:calc(100% - 19px);font-family:Segoe UI, SegoeUI, Arial, sans-serif;font-style:normal;font-weight:normal;font-size:15px;line-height:20px;text-transform:none;cursor:pointer;box-sizing:border-box}div[dir="rtl"] ._3RJzeL3l9Rl_lAQEm6VwdX{margin:0 19px 0 0;padding:0 8px 0 0;float:left}.nohp3sIG12ZBhzcMnPala{margin-top:20px;margin-bottom:48px}._2uhaEsmeotZ3P-M0AXo2kF{padding:0;width:278px;height:36px;cursor:pointer;font-family:Segoe UI, SegoeUI, Arial, sans-serif;font-style:normal;font-weight:normal;font-size:15px;line-height:20px;text-align:center}._2uhaEsmeotZ3P-M0AXo2kF:focus{box-sizing:border-box}._2uhaEsmeotZ3P-M0AXo2kF:disabled{cursor:not-allowed}._3tOu1FJ59c_xz_PmI1lKV5{float:right;padding:0;width:278px;height:36px;cursor:pointer;font-family:Segoe UI, SegoeUI, Arial, sans-serif;font-style:normal;font-weight:normal;font-size:15px;line-height:20px;text-align:center}._3tOu1FJ59c_xz_PmI1lKV5:focus{box-sizing:border-box}._3tOu1FJ59c_xz_PmI1lKV5:disabled{cursor:not-allowed}div[dir="rtl"] ._3tOu1FJ59c_xz_PmI1lKV5{margin:0;padding:0;float:left}@media only screen and (max-width: 768px){._2j0fmugLb1FgYz6KPuB91w,._1Upc2NjY8AlDn177YoVj0y{padding-top:8px;padding-bottom:12px;padding-left:3.75%;padding-right:3.75%;margin:0;width:92.5%}._23tra1HsiiP6cT-Cka-ycB{display:block}._1XuCi2WhiqeWRUVp3pnFG3{margin-bottom:8px;margin-left:0;margin-right:0;width:100%}._2bvsb3ubApyZ0UGoQA9O9T{overflow:hidden}.AFsJE948muYyzCMktdzuk{top:1.8%;width:93.33%;height:96.4%;overflow:hidden}.uCYvKvHXrhjNgflv1VqdD{margin-top:24px;margin-left:24px;margin-right:24px;height:100%}._1kBkHQ1V1wu3kl-YcLgUr6{height:62%;height:calc(100% - 188px);min-height:50%}._2uhaEsmeotZ3P-M0AXo2kF{width:100%}._3tOu1FJ59c_xz_PmI1lKV5{margin-bottom:12px;margin-left:0;width:100%}div[dir="rtl"] ._3tOu1FJ59c_xz_PmI1lKV5{margin:0 0 12px 0;padding:0;float:none}}@media only screen and (max-width: 768px) and (orientation: landscape), only screen and (max-height: 260px), only screen and (max-width: 340px){.AFsJE948muYyzCMktdzuk{overflow:auto}}@media only screen and (max-height: 260px), only screen and (max-width: 340px){._1XuCi2WhiqeWRUVp3pnFG3{min-width:0}._3kWyBRbW_dgnMiEyx06Fu4{padding:3%}.uCYvKvHXrhjNgflv1VqdD{margin-top:3%;margin-left:3%;margin-right:3%}._17pX1m9O_W--iZbDt3Ta5r{margin-bottom:3%}._1kBkHQ1V1wu3kl-YcLgUr6{height:calc(79% - 64px)}.nohp3sIG12ZBhzcMnPala{margin-top:5%;margin-bottom:10%}._3tOu1FJ59c_xz_PmI1lKV5{margin-bottom:3%}div[dir="rtl"] ._3tOu1FJ59c_xz_PmI1lKV5{margin:0 0 3% 0;padding:0;float:none}}
</style><style type="text/css" id="ms-consent-banner-theme-styles"></style><style type="text/css" id="ms-consent-banner-theme-styles"></style></head>

<body class="post-template-default single single-post postid-69894 single-format-standard wp-featherlight-captions sticky-menu" style="visibility: visible; opacity: 1;"><div style="display: none;" id="lightningjs-usabilla_live"><div><iframe frameborder="0" id="lightningjs-frame-usabilla_live"></iframe></div></div>
	<!-- Star cookies banner  -->
	<script src="https://wcpstatic.microsoft.com/mscc/lib/v2/wcp-consent.js"></script>

	<div id="cookie-banner"><div id="wcpConsentBannerCtrl" class="_23tra1HsiiP6cT-Cka-ycB" dir="ltr" role="alert">
        <div class="_1Upc2NjY8AlDn177YoVj0y">
            <span class="_1V_hlU-7jdtPiooHMu89BB w8hcgFksdo30C8w-bygqu">
        <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 44 44" width="24px" height="24px" fill="none" stroke="currentColor">
          <circle cx="22" cy="22" r="20" stroke-width="2"></circle>
          <line x1="22" x2="22" y1="18" y2="33" stroke-width="3"></line>
          <line x1="22" x2="22" y1="12" y2="15" stroke-width="3"></line>
        </svg>
        </span> <!--  used for icon  -->
            <p class="f6QKJD7fhSbnJLarTL-W- ydkKdaztSS0AeHWIeIHsQ w8hcgFksdo30C8w-bygqu">
                We use optional cookies to improve your experience on our websites, such as through social media connections, and to display personalized advertising based on your online activity. If you reject optional cookies, only cookies necessary to provide you the services will be used. You may change your selection by clicking “Manage Cookies” at the bottom of the page. <a target="_blank" href="https://go.microsoft.com/fwlink/?LinkId=521839">Privacy Statement</a> <a target="_blank" href="https://aka.ms/3rdpartycookies">Third-Party Cookies</a>
            </p>
        </div>

        <div class="_2j0fmugLb1FgYz6KPuB91w">
            <button type="button" class="_1XuCi2WhiqeWRUVp3pnFG3 erL690_8JwUW-R4bJRcfl">Accept</button>
            <button type="button" class="_1XuCi2WhiqeWRUVp3pnFG3 erL690_8JwUW-R4bJRcfl">Reject</button>
            <button type="button" class="_1XuCi2WhiqeWRUVp3pnFG3 erL690_8JwUW-R4bJRcfl">Manage cookies</button>
        </div>
        </div></div>
	<script>
		let userConsentDetailsCallback = function () {
			return siteConsent ? siteConsent.getConsent() : null
		};
		awa.sku.config.extensionConfig.SystemPropertiesCollector.callback.userConsentDetails = userConsentDetailsCallback
		awa.sku.config.extensionConfig.SystemPropertiesCollector.userConsented = false;
		var is_post = '1';
		function changeAnalyticsCookies() {
			//have Analytics consent
			if (siteConsent.getConsentFor(WcpConsent.consentCategories.Analytics)) {

				//set consent
				var date = new Date();
				date.setTime(date.getTime() + (180 * 24 * 60 * 60 * 1000));
				expires = "; expires=" + date.toUTCString();
				if (window.clarity) {
					window.clarity('consent');
				}

			} else if (siteConsent.isConsentRequired === false) {
				// Consent is not required
				if (window.clarity) {
					window.clarity('consent');
				}

			} else {

				document.cookie = name + '=_gat; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
				document.cookie = name + '=_gid; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
				document.cookie = name + '=_ga; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
				document.cookie = name + '=simaCookie; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
			}
		}
		window.WcpConsent && WcpConsent.init("en-US", "cookie-banner", function (err, _siteConsent) {
			if (!err) {
				siteConsent = _siteConsent;  //siteConsent is used to get the current consent
			} else {
				//console.log("Error initializing WcpConsent: "+ err);
			}
		}, onConsentChanged, WcpConsent.themes.light);
		changeAnalyticsCookies();

		function onConsentChanged(categoryPreferences) {
			changeAnalyticsCookies();

		}

	</script>
	<!-- end cookies banner  -->
		<!-- UHF header -->
	<div id="headerArea" class="uhf" data-m="{&quot;cN&quot;:&quot;headerArea&quot;,&quot;cT&quot;:&quot;Area_coreuiArea&quot;,&quot;id&quot;:&quot;a1Body&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;Body&quot;}">
                <div id="headerRegion" data-region-key="headerregion" data-m="{&quot;cN&quot;:&quot;headerRegion&quot;,&quot;cT&quot;:&quot;Region_coreui-region&quot;,&quot;id&quot;:&quot;r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;a1&quot;}">

    <div id="headerUniversalHeader" data-m="{&quot;cN&quot;:&quot;headerUniversalHeader&quot;,&quot;cT&quot;:&quot;Module_coreui-universalheader&quot;,&quot;id&quot;:&quot;m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;r1a1&quot;}" data-module-id="Category|headerRegion|coreui-region|headerUniversalHeader|coreui-universalheader">
        


                        <div data-m="{&quot;cN&quot;:&quot;cookiebanner_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c1m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;m1r1a1&quot;}">

<div id="uhfCookieAlert" data-locale="en-us">
    <div id="msccBannerV2"></div>
</div>

                            
                        </div>




        <a id="uhfSkipToMain" class="m-skip-to-main" href="javascript:void(0)" data-href="#mainContent" tabindex="0" data-m="{&quot;cN&quot;:&quot;Skip to content_nonnav&quot;,&quot;id&quot;:&quot;nn2m1r1a1&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;m1r1a1&quot;}">Skip to main content</a>


<header class="c-uhfh context-uhf no-js c-sgl-stck c-category-header " itemscope="itemscope" data-header-footprint="/DEV_Blogs/DEV_header-landing, fromService: True" data-magict="true" itemtype="http://schema.org/Organization">
    <div class="theme-light js-global-head f-closed  global-head-cont" data-m="{&quot;cN&quot;:&quot;Universal Header_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c3m1r1a1&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;m1r1a1&quot;}">
        <div class="c-uhfh-gcontainer-st">
            <button type="button" class="c-action-trigger c-glyph glyph-global-nav-button" aria-label="All Microsoft expand to see list of Microsoft products and services" initialstate-label="All Microsoft expand to see list of Microsoft products and services" togglestate-label="Close All Microsoft list" aria-expanded="false" data-m="{&quot;cN&quot;:&quot;Mobile menu button_nonnav&quot;,&quot;id&quot;:&quot;nn1c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c3m1r1a1&quot;}"></button>
            <button type="button" class="c-action-trigger c-glyph glyph-arrow-htmllegacy c-close-search" aria-label="Close search" aria-expanded="false" data-m="{&quot;cN&quot;:&quot;Close Search_nonnav&quot;,&quot;id&quot;:&quot;nn2c3m1r1a1&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c3m1r1a1&quot;}"></button>
                    <a id="uhfLogo" class="c-logo c-sgl-stk-uhfLogo" itemprop="url" href="https://www.microsoft.com" aria-label="Microsoft" data-m="{&quot;cN&quot;:&quot;GlobalNav_Logo_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c3c3m1r1a1&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c3m1r1a1&quot;}" target="_blank">
                        <img alt="" itemprop="logo" class="c-image" src="https://cdn-dynmedia-1.microsoft.com/is/image/microsoftcorp/UHFbanner-MSlogo?fmt=png-alpha&amp;bfc=off&amp;qlt=100,1" role="presentation" aria-hidden="true">
                        <span itemprop="name" role="presentation" aria-hidden="true">Microsoft</span>
                    </a>
            <div class="f-mobile-title">
                <button type="button" class="c-action-trigger c-glyph glyph-chevron-left" aria-label="See more menu options" data-m="{&quot;cN&quot;:&quot;Mobile back button_nonnav&quot;,&quot;id&quot;:&quot;nn4c3m1r1a1&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c3m1r1a1&quot;}"></button>
                <span data-global-title="Microsoft home" class="js-mobile-title">Dev Blogs</span>
                <button type="button" class="c-action-trigger c-glyph glyph-chevron-right" aria-label="See more menu options" data-m="{&quot;cN&quot;:&quot;Mobile forward button_nonnav&quot;,&quot;id&quot;:&quot;nn5c3m1r1a1&quot;,&quot;sN&quot;:5,&quot;aN&quot;:&quot;c3m1r1a1&quot;}"></button>
            </div>
                    <div class="c-show-pipe x-hidden-vp-mobile-st">
                        <a id="uhfCatLogo" class="c-logo c-cat-logo" href="/" aria-label="Dev Blogs" itemprop="url" data-m="{&quot;cN&quot;:&quot;CatNav_Dev Blogs_nav&quot;,&quot;id&quot;:&quot;n6c3m1r1a1&quot;,&quot;sN&quot;:6,&quot;aN&quot;:&quot;c3m1r1a1&quot;}">
                                <span>Dev Blogs</span>
                        </a>
                    </div>
                <div class="cat-logo-button-cont x-hidden">
                        <button type="button" id="uhfCatLogoButton" class="c-cat-logo-button x-hidden" aria-expanded="false" aria-label="Dev Blogs" data-m="{&quot;cN&quot;:&quot;Dev Blogs_nonnav&quot;,&quot;id&quot;:&quot;nn7c3m1r1a1&quot;,&quot;sN&quot;:7,&quot;aN&quot;:&quot;c3m1r1a1&quot;}">
                            Dev Blogs
                        </button>
                </div>



                    <nav id="uhf-g-nav" aria-label="Contextual menu" class="c-uhfh-gnav" data-m="{&quot;cN&quot;:&quot;Category nav_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c8c3m1r1a1&quot;,&quot;sN&quot;:8,&quot;aN&quot;:&quot;c3m1r1a1&quot;}">
            <ul class="js-paddle-items">
                    <li class="single-link js-nav-menu x-hidden-none-mobile-vp uhf-menu-item">
                        <a class="c-uhf-nav-link" href="/" data-m="{&quot;cN&quot;:&quot;CatNav_Home_nav&quot;,&quot;id&quot;:&quot;n1c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c8c3m1r1a1&quot;}"> Home </a>
                    </li>
                                        <li class="nested-menu uhf-menu-item">
                            <div class="c-uhf-menu js-nav-menu">
                                <button type="button" id="Developer" aria-expanded="false" data-m="{&quot;cN&quot;:&quot;CatNav_Developer_nonnav&quot;,&quot;id&quot;:&quot;nn2c8c3m1r1a1&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c8c3m1r1a1&quot;}">Developer</button>

                                <ul class="" data-class-idn="" aria-hidden="true" data-m="{&quot;cN&quot;:&quot;Developer_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c3c8c3m1r1a1&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c8c3m1r1a1&quot;}">
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Microsoft for Developers_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c1c3c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c3c8c3m1r1a1&quot;}">
            <a id="microsoft-for-developers" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/blog" data-m="{&quot;cN&quot;:&quot;CatNav_Microsoft for Developers_nav&quot;,&quot;id&quot;:&quot;n1c1c3c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c1c3c8c3m1r1a1&quot;}">Microsoft for Developers</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Visual Studio_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c2c3c8c3m1r1a1&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c3c8c3m1r1a1&quot;}">
            <a id="visual-studio" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/visualstudio/" data-m="{&quot;cN&quot;:&quot;CatNav_Visual Studio_nav&quot;,&quot;id&quot;:&quot;n1c2c3c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c2c3c8c3m1r1a1&quot;}">Visual Studio</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Visual Studio Code_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c3c3c8c3m1r1a1&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c3c8c3m1r1a1&quot;}">
            <a id="visual-studio-code" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/vscode-blog" data-m="{&quot;cN&quot;:&quot;CatNav_Visual Studio Code_nav&quot;,&quot;id&quot;:&quot;n1c3c3c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c3c3c8c3m1r1a1&quot;}">Visual Studio Code</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Develop from the cloud_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c4c3c8c3m1r1a1&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c3c8c3m1r1a1&quot;}">
            <a id="c-shellmenu_5" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/develop-from-the-cloud/" data-m="{&quot;cN&quot;:&quot;CatNav_Develop from the cloud_nav&quot;,&quot;id&quot;:&quot;n1c4c3c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c4c3c8c3m1r1a1&quot;}">Develop from the cloud</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Visual Studio for Mac_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c5c3c8c3m1r1a1&quot;,&quot;sN&quot;:5,&quot;aN&quot;:&quot;c3c8c3m1r1a1&quot;}">
            <a id="visual-studio-for-mac" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/visualstudio/tag/visual-studio-for-mac/" data-m="{&quot;cN&quot;:&quot;CatNav_Visual Studio for Mac_nav&quot;,&quot;id&quot;:&quot;n1c5c3c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c5c3c8c3m1r1a1&quot;}">Visual Studio for Mac</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;All things Azure_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c6c3c8c3m1r1a1&quot;,&quot;sN&quot;:6,&quot;aN&quot;:&quot;c3c8c3m1r1a1&quot;}">
            <a id="all-things-azure-1" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/all-things-azure/" data-m="{&quot;cN&quot;:&quot;CatNav_All things Azure_nav&quot;,&quot;id&quot;:&quot;n1c6c3c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c6c3c8c3m1r1a1&quot;}">All things Azure</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;DevOps_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c7c3c8c3m1r1a1&quot;,&quot;sN&quot;:7,&quot;aN&quot;:&quot;c3c8c3m1r1a1&quot;}">
            <a id="devops" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/devops/" data-m="{&quot;cN&quot;:&quot;CatNav_DevOps_nav&quot;,&quot;id&quot;:&quot;n1c7c3c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c7c3c8c3m1r1a1&quot;}">DevOps</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Windows Developer_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c8c3c8c3m1r1a1&quot;,&quot;sN&quot;:8,&quot;aN&quot;:&quot;c3c8c3m1r1a1&quot;}">
            <a id="windows-developer" class="js-subm-uhf-nav-link" href="https://blogs.windows.com/windowsdeveloper/" data-m="{&quot;cN&quot;:&quot;CatNav_Windows Developer_nav&quot;,&quot;id&quot;:&quot;n1c8c3c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c8c3c8c3m1r1a1&quot;}" target="_blank">Windows Developer</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Developer support_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c9c3c8c3m1r1a1&quot;,&quot;sN&quot;:9,&quot;aN&quot;:&quot;c3c8c3m1r1a1&quot;}">
            <a id="developer-support" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/premier-developer/" data-m="{&quot;cN&quot;:&quot;CatNav_Developer support_nav&quot;,&quot;id&quot;:&quot;n1c9c3c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c9c3c8c3m1r1a1&quot;}">Developer support</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;ISE Developer_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c10c3c8c3m1r1a1&quot;,&quot;sN&quot;:10,&quot;aN&quot;:&quot;c3c8c3m1r1a1&quot;}">
            <a id="ise-developer" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/ise/" data-m="{&quot;cN&quot;:&quot;CatNav_ISE Developer_nav&quot;,&quot;id&quot;:&quot;n1c10c3c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c10c3c8c3m1r1a1&quot;}">ISE Developer</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Engineering@Microsoft_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c11c3c8c3m1r1a1&quot;,&quot;sN&quot;:11,&quot;aN&quot;:&quot;c3c8c3m1r1a1&quot;}">
            <a id="engineering-microsoft" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/engineering-at-microsoft/" data-m="{&quot;cN&quot;:&quot;CatNav_Engineering@Microsoft_nav&quot;,&quot;id&quot;:&quot;n1c11c3c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c11c3c8c3m1r1a1&quot;}">Engineering@Microsoft</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Azure SDK_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c12c3c8c3m1r1a1&quot;,&quot;sN&quot;:12,&quot;aN&quot;:&quot;c3c8c3m1r1a1&quot;}">
            <a id="Azure-sdk" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/azure-sdk/" data-m="{&quot;cN&quot;:&quot;CatNav_Azure SDK_nav&quot;,&quot;id&quot;:&quot;n1c12c3c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c12c3c8c3m1r1a1&quot;}">Azure SDK</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Command Line_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c13c3c8c3m1r1a1&quot;,&quot;sN&quot;:13,&quot;aN&quot;:&quot;c3c8c3m1r1a1&quot;}">
            <a id="command-line" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/commandline/" data-m="{&quot;cN&quot;:&quot;CatNav_Command Line_nav&quot;,&quot;id&quot;:&quot;n1c13c3c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c13c3c8c3m1r1a1&quot;}">Command Line</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Perf and Diagnostics_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c14c3c8c3m1r1a1&quot;,&quot;sN&quot;:14,&quot;aN&quot;:&quot;c3c8c3m1r1a1&quot;}">
            <a id="perf-and-diagnostics" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/performance-diagnostics/" data-m="{&quot;cN&quot;:&quot;CatNav_Perf and Diagnostics_nav&quot;,&quot;id&quot;:&quot;n1c14c3c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c14c3c8c3m1r1a1&quot;}">Perf and Diagnostics</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;React Native_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c15c3c8c3m1r1a1&quot;,&quot;sN&quot;:15,&quot;aN&quot;:&quot;c3c8c3m1r1a1&quot;}">
            <a id="react-native" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/react-native/" data-m="{&quot;cN&quot;:&quot;CatNav_React Native_nav&quot;,&quot;id&quot;:&quot;n1c15c3c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c15c3c8c3m1r1a1&quot;}">React Native</a>
            
        </li>
                                                    
                                </ul>
                            </div>
                        </li>                        <li class="nested-menu uhf-menu-item">
                            <div class="c-uhf-menu js-nav-menu">
                                <button type="button" id="Technology-main" aria-expanded="false" data-m="{&quot;cN&quot;:&quot;CatNav_Technology_nonnav&quot;,&quot;id&quot;:&quot;nn4c8c3m1r1a1&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c8c3m1r1a1&quot;}">Technology</button>

                                <ul class="" data-class-idn="" aria-hidden="true" data-m="{&quot;cN&quot;:&quot;Technology_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c5c8c3m1r1a1&quot;,&quot;sN&quot;:5,&quot;aN&quot;:&quot;c8c3m1r1a1&quot;}">
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;AutoGen_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c1c5c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c5c8c3m1r1a1&quot;}">
            <a id="AutoGen" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/autogen/" data-m="{&quot;cN&quot;:&quot;CatNav_AutoGen_nav&quot;,&quot;id&quot;:&quot;n1c1c5c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c1c5c8c3m1r1a1&quot;}">AutoGen</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;DirectX_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c2c5c8c3m1r1a1&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c5c8c3m1r1a1&quot;}">
            <a id="DirectX" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/directx/" data-m="{&quot;cN&quot;:&quot;CatNav_DirectX_nav&quot;,&quot;id&quot;:&quot;n1c2c5c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c2c5c8c3m1r1a1&quot;}">DirectX</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;OpenAPI_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c3c5c8c3m1r1a1&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c5c8c3m1r1a1&quot;}">
            <a id="Openapi" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/openapi/" data-m="{&quot;cN&quot;:&quot;CatNav_OpenAPI_nav&quot;,&quot;id&quot;:&quot;n1c3c5c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c3c5c8c3m1r1a1&quot;}">OpenAPI</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Semantic Kernel_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c4c5c8c3m1r1a1&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c5c8c3m1r1a1&quot;}">
            <a id="semantic-kernel" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/semantic-kernel/" data-m="{&quot;cN&quot;:&quot;CatNav_Semantic Kernel_nav&quot;,&quot;id&quot;:&quot;n1c4c5c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c4c5c8c3m1r1a1&quot;}">Semantic Kernel</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;SurfaceDuo_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c5c5c8c3m1r1a1&quot;,&quot;sN&quot;:5,&quot;aN&quot;:&quot;c5c8c3m1r1a1&quot;}">
            <a id="SurfaceDuo" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/surface-duo/" data-m="{&quot;cN&quot;:&quot;CatNav_SurfaceDuo_nav&quot;,&quot;id&quot;:&quot;n1c5c5c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c5c5c8c3m1r1a1&quot;}">SurfaceDuo</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Windows AI Platform_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c6c5c8c3m1r1a1&quot;,&quot;sN&quot;:6,&quot;aN&quot;:&quot;c5c8c3m1r1a1&quot;}">
            <a id="windows-ai-platform" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/windowsai/" data-m="{&quot;cN&quot;:&quot;CatNav_Windows AI Platform_nav&quot;,&quot;id&quot;:&quot;n1c6c5c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c6c5c8c3m1r1a1&quot;}">Windows AI Platform</a>
            
        </li>
                                                    
                                </ul>
                            </div>
                        </li>                        <li class="nested-menu uhf-menu-item">
                            <div class="c-uhf-menu js-nav-menu">
                                <button type="button" id="Languages" aria-expanded="false" data-m="{&quot;cN&quot;:&quot;CatNav_Languages_nonnav&quot;,&quot;id&quot;:&quot;nn6c8c3m1r1a1&quot;,&quot;sN&quot;:6,&quot;aN&quot;:&quot;c8c3m1r1a1&quot;}">Languages</button>

                                <ul class="" data-class-idn="" aria-hidden="true" data-m="{&quot;cN&quot;:&quot;Languages_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c7c8c3m1r1a1&quot;,&quot;sN&quot;:7,&quot;aN&quot;:&quot;c8c3m1r1a1&quot;}">
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;C++_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c1c7c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c7c8c3m1r1a1&quot;}">
            <a id="c++" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/cppblog/" data-m="{&quot;cN&quot;:&quot;CatNav_C++_nav&quot;,&quot;id&quot;:&quot;n1c1c7c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c1c7c8c3m1r1a1&quot;}">C++</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;C#_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c2c7c8c3m1r1a1&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c7c8c3m1r1a1&quot;}">
            <a id="c#" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/dotnet/category/csharp/" data-m="{&quot;cN&quot;:&quot;CatNav_C#_nav&quot;,&quot;id&quot;:&quot;n1c2c7c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c2c7c8c3m1r1a1&quot;}">C#</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;F#_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c3c7c8c3m1r1a1&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c7c8c3m1r1a1&quot;}">
            <a id="F#" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/dotnet/category/fsharp/" data-m="{&quot;cN&quot;:&quot;CatNav_F#_nav&quot;,&quot;id&quot;:&quot;n1c3c7c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c3c7c8c3m1r1a1&quot;}">F#</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;TypeScript_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c4c7c8c3m1r1a1&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c7c8c3m1r1a1&quot;}">
            <a id="TypeScript" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/typescript/" data-m="{&quot;cN&quot;:&quot;CatNav_TypeScript_nav&quot;,&quot;id&quot;:&quot;n1c4c7c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c4c7c8c3m1r1a1&quot;}">TypeScript</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;PowerShell Community_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c5c7c8c3m1r1a1&quot;,&quot;sN&quot;:5,&quot;aN&quot;:&quot;c7c8c3m1r1a1&quot;}">
            <a id="powershell-community" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/powershell-community/" data-m="{&quot;cN&quot;:&quot;CatNav_PowerShell Community_nav&quot;,&quot;id&quot;:&quot;n1c5c7c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c5c7c8c3m1r1a1&quot;}">PowerShell Community</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;PowerShell Team_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c6c7c8c3m1r1a1&quot;,&quot;sN&quot;:6,&quot;aN&quot;:&quot;c7c8c3m1r1a1&quot;}">
            <a id="powershell-team" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/powershell/" data-m="{&quot;cN&quot;:&quot;CatNav_PowerShell Team_nav&quot;,&quot;id&quot;:&quot;n1c6c7c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c6c7c8c3m1r1a1&quot;}">PowerShell Team</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Python_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c7c7c8c3m1r1a1&quot;,&quot;sN&quot;:7,&quot;aN&quot;:&quot;c7c8c3m1r1a1&quot;}">
            <a id="Python" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/python/" data-m="{&quot;cN&quot;:&quot;CatNav_Python_nav&quot;,&quot;id&quot;:&quot;n1c7c7c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c7c7c8c3m1r1a1&quot;}">Python</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;JavaScript_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c8c7c8c3m1r1a1&quot;,&quot;sN&quot;:8,&quot;aN&quot;:&quot;c7c8c3m1r1a1&quot;}">
            <a id="JavaScript" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/visualstudio/tag/javascript/" data-m="{&quot;cN&quot;:&quot;CatNav_JavaScript_nav&quot;,&quot;id&quot;:&quot;n1c8c7c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c8c7c8c3m1r1a1&quot;}">JavaScript</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Java_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c9c7c8c3m1r1a1&quot;,&quot;sN&quot;:9,&quot;aN&quot;:&quot;c7c8c3m1r1a1&quot;}">
            <a id="Java" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/java/" data-m="{&quot;cN&quot;:&quot;CatNav_Java_nav&quot;,&quot;id&quot;:&quot;n1c9c7c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c9c7c8c3m1r1a1&quot;}">Java</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Java Blog in Chinese_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c10c7c8c3m1r1a1&quot;,&quot;sN&quot;:10,&quot;aN&quot;:&quot;c7c8c3m1r1a1&quot;}">
            <a id="java-blog-in-chinese" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/java-ch/" data-m="{&quot;cN&quot;:&quot;CatNav_Java Blog in Chinese_nav&quot;,&quot;id&quot;:&quot;n1c10c7c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c10c7c8c3m1r1a1&quot;}">Java Blog in Chinese</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Go_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c11c7c8c3m1r1a1&quot;,&quot;sN&quot;:11,&quot;aN&quot;:&quot;c7c8c3m1r1a1&quot;}">
            <a id="go" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/go/" data-m="{&quot;cN&quot;:&quot;CatNav_Go_nav&quot;,&quot;id&quot;:&quot;n1c11c7c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c11c7c8c3m1r1a1&quot;}">Go</a>
            
        </li>
                                                    
                                </ul>
                            </div>
                        </li>                        <li class="nested-menu uhf-menu-item">
                            <div class="c-uhf-menu js-nav-menu">
                                <button type="button" id="c-shellmenu_36" aria-expanded="false" data-m="{&quot;cN&quot;:&quot;CatNav_.Net_nonnav&quot;,&quot;id&quot;:&quot;nn8c8c3m1r1a1&quot;,&quot;sN&quot;:8,&quot;aN&quot;:&quot;c8c3m1r1a1&quot;}">.NET</button>

                                <ul class="" data-class-idn="" aria-hidden="true" data-m="{&quot;cN&quot;:&quot;.Net_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c9c8c3m1r1a1&quot;,&quot;sN&quot;:9,&quot;aN&quot;:&quot;c8c3m1r1a1&quot;}">
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;All .NET posts_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c1c9c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c9c8c3m1r1a1&quot;}">
            <a id="all-dotnet-posts" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/dotnet/ " data-m="{&quot;cN&quot;:&quot;CatNav_All .NET posts_nav&quot;,&quot;id&quot;:&quot;n1c1c9c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c1c9c8c3m1r1a1&quot;}">All .NET posts</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;.NET Aspire_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c2c9c8c3m1r1a1&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c9c8c3m1r1a1&quot;}">
            <a id="c-shellmenu_38" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/dotnet/category/dotnet-aspire/" data-m="{&quot;cN&quot;:&quot;CatNav_.NET Aspire_nav&quot;,&quot;id&quot;:&quot;n1c2c9c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c2c9c8c3m1r1a1&quot;}">.NET Aspire</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;.NET MAUI_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c3c9c8c3m1r1a1&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c9c8c3m1r1a1&quot;}">
            <a id="dotnet-MAUI" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/dotnet/category/maui/" data-m="{&quot;cN&quot;:&quot;CatNav_.NET MAUI_nav&quot;,&quot;id&quot;:&quot;n1c3c9c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c3c9c8c3m1r1a1&quot;}">.NET MAUI</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;AI_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c4c9c8c3m1r1a1&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c9c8c3m1r1a1&quot;}">
            <a id="AI" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/dotnet/category/ai/" data-m="{&quot;cN&quot;:&quot;CatNav_AI_nav&quot;,&quot;id&quot;:&quot;n1c4c9c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c4c9c8c3m1r1a1&quot;}">AI</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;ASP.NET Core_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c5c9c8c3m1r1a1&quot;,&quot;sN&quot;:5,&quot;aN&quot;:&quot;c9c8c3m1r1a1&quot;}">
            <a id="aspnet-core" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/dotnet/category/aspnetcore/" data-m="{&quot;cN&quot;:&quot;CatNav_ASP.NET Core_nav&quot;,&quot;id&quot;:&quot;n1c5c9c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c5c9c8c3m1r1a1&quot;}">ASP.NET Core</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Blazor_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c6c9c8c3m1r1a1&quot;,&quot;sN&quot;:6,&quot;aN&quot;:&quot;c9c8c3m1r1a1&quot;}">
            <a id="blazor" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/dotnet/category/blazor/" data-m="{&quot;cN&quot;:&quot;CatNav_Blazor_nav&quot;,&quot;id&quot;:&quot;n1c6c9c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c6c9c8c3m1r1a1&quot;}">Blazor</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Entity Framework_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c7c9c8c3m1r1a1&quot;,&quot;sN&quot;:7,&quot;aN&quot;:&quot;c9c8c3m1r1a1&quot;}">
            <a id="entity-framework" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/dotnet/category/entity-framework/" data-m="{&quot;cN&quot;:&quot;CatNav_Entity Framework_nav&quot;,&quot;id&quot;:&quot;n1c7c9c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c7c9c8c3m1r1a1&quot;}">Entity Framework</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Servicing_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c8c9c8c3m1r1a1&quot;,&quot;sN&quot;:8,&quot;aN&quot;:&quot;c9c8c3m1r1a1&quot;}">
            <a id="servicing" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/dotnet/category/maintenance-and-updates/" data-m="{&quot;cN&quot;:&quot;CatNav_Servicing_nav&quot;,&quot;id&quot;:&quot;n1c8c9c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c8c9c8c3m1r1a1&quot;}">Servicing</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;.NET Blog in Chinese_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c9c9c8c3m1r1a1&quot;,&quot;sN&quot;:9,&quot;aN&quot;:&quot;c9c8c3m1r1a1&quot;}">
            <a id="dotnet-blog-in-chinese" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/dotnet-ch/" data-m="{&quot;cN&quot;:&quot;CatNav_.NET Blog in Chinese_nav&quot;,&quot;id&quot;:&quot;n1c9c9c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c9c9c8c3m1r1a1&quot;}">.NET Blog in Chinese</a>
            
        </li>
                                                    
                                </ul>
                            </div>
                        </li>                        <li class="nested-menu uhf-menu-item">
                            <div class="c-uhf-menu js-nav-menu">
                                <button type="button" id="platform-development" aria-expanded="false" data-m="{&quot;cN&quot;:&quot;CatNav_Platform Development_nonnav&quot;,&quot;id&quot;:&quot;nn10c8c3m1r1a1&quot;,&quot;sN&quot;:10,&quot;aN&quot;:&quot;c8c3m1r1a1&quot;}">Platform Development</button>

                                <ul class="" data-class-idn="" aria-hidden="true" data-m="{&quot;cN&quot;:&quot;Platform Development_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c11c8c3m1r1a1&quot;,&quot;sN&quot;:11,&quot;aN&quot;:&quot;c8c3m1r1a1&quot;}">
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;#ifdef Windows_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c1c11c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c11c8c3m1r1a1&quot;}">
            <a id="pax-windows" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/ifdef-windows/" data-m="{&quot;cN&quot;:&quot;CatNav_#ifdef Windows_nav&quot;,&quot;id&quot;:&quot;n1c1c11c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c1c11c8c3m1r1a1&quot;}">#ifdef Windows</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Azure Government_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c2c11c8c3m1r1a1&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c11c8c3m1r1a1&quot;}">
            <a id="azure-government" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/azuregov/" data-m="{&quot;cN&quot;:&quot;CatNav_Azure Government_nav&quot;,&quot;id&quot;:&quot;n1c2c11c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c2c11c8c3m1r1a1&quot;}">Azure Government</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Azure VM Runtime Team_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c3c11c8c3m1r1a1&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c11c8c3m1r1a1&quot;}">
            <a id="azure-vm-runtime" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/azure-vm-runtime/" data-m="{&quot;cN&quot;:&quot;CatNav_Azure VM Runtime Team_nav&quot;,&quot;id&quot;:&quot;n1c3c11c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c3c11c8c3m1r1a1&quot;}">Azure VM Runtime Team</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Bing Dev Center_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c4c11c8c3m1r1a1&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c11c8c3m1r1a1&quot;}">
            <a id="bing-dev-center" class="js-subm-uhf-nav-link" href="https://blogs.bing.com/Developers-Blog/" data-m="{&quot;cN&quot;:&quot;CatNav_Bing Dev Center_nav&quot;,&quot;id&quot;:&quot;n1c4c11c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c4c11c8c3m1r1a1&quot;}" target="_blank">Bing Dev Center</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Microsoft Edge Dev_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c5c11c8c3m1r1a1&quot;,&quot;sN&quot;:5,&quot;aN&quot;:&quot;c11c8c3m1r1a1&quot;}">
            <a id="microsoft-edge-dev" class="js-subm-uhf-nav-link" href="http://blogs.windows.com/msedgedev/" data-m="{&quot;cN&quot;:&quot;CatNav_Microsoft Edge Dev_nav&quot;,&quot;id&quot;:&quot;n1c5c11c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c5c11c8c3m1r1a1&quot;}" target="_blank">Microsoft Edge Dev</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Microsoft Azure_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c6c11c8c3m1r1a1&quot;,&quot;sN&quot;:6,&quot;aN&quot;:&quot;c11c8c3m1r1a1&quot;}">
            <a id="microsoft-azure" class="js-subm-uhf-nav-link" href="http://azure.microsoft.com/blog/" data-m="{&quot;cN&quot;:&quot;CatNav_Microsoft Azure_nav&quot;,&quot;id&quot;:&quot;n1c6c11c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c6c11c8c3m1r1a1&quot;}" target="_blank">Microsoft Azure</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Microsoft 365 Developer_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c7c11c8c3m1r1a1&quot;,&quot;sN&quot;:7,&quot;aN&quot;:&quot;c11c8c3m1r1a1&quot;}">
            <a id="microsoft-365-developer" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/microsoft365dev/" data-m="{&quot;cN&quot;:&quot;CatNav_Microsoft 365 Developer_nav&quot;,&quot;id&quot;:&quot;n1c7c11c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c7c11c8c3m1r1a1&quot;}">Microsoft 365 Developer</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Microsoft Entra Identity Developer Blog_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c8c11c8c3m1r1a1&quot;,&quot;sN&quot;:8,&quot;aN&quot;:&quot;c11c8c3m1r1a1&quot;}">
            <a id="microsoft-entra-identity-developer-blog" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/identity/" data-m="{&quot;cN&quot;:&quot;CatNav_Microsoft Entra Identity Developer Blog_nav&quot;,&quot;id&quot;:&quot;n1c8c11c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c8c11c8c3m1r1a1&quot;}">Microsoft Entra Identity Developer Blog</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Old New Thing_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c9c11c8c3m1r1a1&quot;,&quot;sN&quot;:9,&quot;aN&quot;:&quot;c11c8c3m1r1a1&quot;}">
            <a id="old-new-thing" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/oldnewthing/" data-m="{&quot;cN&quot;:&quot;CatNav_Old New Thing_nav&quot;,&quot;id&quot;:&quot;n1c9c11c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c9c11c8c3m1r1a1&quot;}">Old New Thing</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Power Platform_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c10c11c8c3m1r1a1&quot;,&quot;sN&quot;:10,&quot;aN&quot;:&quot;c11c8c3m1r1a1&quot;}">
            <a id="power-platform" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/powerplatform/" data-m="{&quot;cN&quot;:&quot;CatNav_Power Platform_nav&quot;,&quot;id&quot;:&quot;n1c10c11c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c10c11c8c3m1r1a1&quot;}">Power Platform</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Windows MIDI and Music dev_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c11c11c8c3m1r1a1&quot;,&quot;sN&quot;:11,&quot;aN&quot;:&quot;c11c8c3m1r1a1&quot;}">
            <a id="windows-music-dev" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/windows-music-dev/" data-m="{&quot;cN&quot;:&quot;CatNav_Windows MIDI and Music dev_nav&quot;,&quot;id&quot;:&quot;n1c11c11c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c11c11c8c3m1r1a1&quot;}">Windows MIDI and Music dev</a>
            
        </li>
                                                    
                                </ul>
                            </div>
                        </li>                        <li class="nested-menu uhf-menu-item">
                            <div class="c-uhf-menu js-nav-menu">
                                <button type="button" id="data-development" aria-expanded="false" data-m="{&quot;cN&quot;:&quot;CatNav_Date Development_nonnav&quot;,&quot;id&quot;:&quot;nn12c8c3m1r1a1&quot;,&quot;sN&quot;:12,&quot;aN&quot;:&quot;c8c3m1r1a1&quot;}">Data Development</button>

                                <ul class="" data-class-idn="" aria-hidden="true" data-m="{&quot;cN&quot;:&quot;Date Development_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c13c8c3m1r1a1&quot;,&quot;sN&quot;:13,&quot;aN&quot;:&quot;c8c3m1r1a1&quot;}">
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Azure Cosmos DB_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c1c13c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c13c8c3m1r1a1&quot;}">
            <a id="azure-cosmos-db" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/cosmosdb/" data-m="{&quot;cN&quot;:&quot;CatNav_Azure Cosmos DB_nav&quot;,&quot;id&quot;:&quot;n1c1c13c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c1c13c8c3m1r1a1&quot;}"> Azure Cosmos DB</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Azure Data Studio_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c2c13c8c3m1r1a1&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c13c8c3m1r1a1&quot;}">
            <a id="azure-data-studio" class="js-subm-uhf-nav-link" href="https://cloudblogs.microsoft.com/sqlserver/?product=azure-data-studio" data-m="{&quot;cN&quot;:&quot;CatNav_Azure Data Studio_nav&quot;,&quot;id&quot;:&quot;n1c2c13c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c2c13c8c3m1r1a1&quot;}" target="_blank">Azure Data Studio</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Azure SQL_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c3c13c8c3m1r1a1&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c13c8c3m1r1a1&quot;}">
            <a id="azure-SQL" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/azure-sql/" data-m="{&quot;cN&quot;:&quot;CatNav_Azure SQL_nav&quot;,&quot;id&quot;:&quot;n1c3c13c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c3c13c8c3m1r1a1&quot;}">Azure SQL</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;OData_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c4c13c8c3m1r1a1&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c13c8c3m1r1a1&quot;}">
            <a id="OData" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/odata/" data-m="{&quot;cN&quot;:&quot;CatNav_OData_nav&quot;,&quot;id&quot;:&quot;n1c4c13c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c4c13c8c3m1r1a1&quot;}">OData</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Revolutions R_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c5c13c8c3m1r1a1&quot;,&quot;sN&quot;:5,&quot;aN&quot;:&quot;c13c8c3m1r1a1&quot;}">
            <a id="revolutions-r" class="js-subm-uhf-nav-link" href="http://blog.revolutionanalytics.com/" data-m="{&quot;cN&quot;:&quot;CatNav_Revolutions R_nav&quot;,&quot;id&quot;:&quot;n1c5c13c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c5c13c8c3m1r1a1&quot;}" target="_blank">Revolutions R</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;SQL Server Data Tools_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c6c13c8c3m1r1a1&quot;,&quot;sN&quot;:6,&quot;aN&quot;:&quot;c13c8c3m1r1a1&quot;}">
            <a id="SQL-server-data-tools" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/ssdt/" data-m="{&quot;cN&quot;:&quot;CatNav_SQL Server Data Tools_nav&quot;,&quot;id&quot;:&quot;n1c6c13c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c6c13c8c3m1r1a1&quot;}">SQL Server Data Tools</a>
            
        </li>
        <li class="js-nav-menu single-link" data-m="{&quot;cN&quot;:&quot;Unified Data Model (IDEAs)_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c7c13c8c3m1r1a1&quot;,&quot;sN&quot;:7,&quot;aN&quot;:&quot;c13c8c3m1r1a1&quot;}">
            <a id="udm" class="js-subm-uhf-nav-link" href="https://devblogs.microsoft.com/udm/" data-m="{&quot;cN&quot;:&quot;CatNav_Unified Data Model (IDEAs)_nav&quot;,&quot;id&quot;:&quot;n1c7c13c8c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c7c13c8c3m1r1a1&quot;}">Unified Data Model (IDEAs)</a>
            
        </li>
                                                    
                                </ul>
                            </div>
                        </li>

                <li id="overflow-menu" class="overflow-menu x-hidden uhf-menu-item">
                        <div class="c-uhf-menu js-nav-menu">
        <button data-m="{&quot;pid&quot;:&quot;More&quot;,&quot;id&quot;:&quot;nn14c8c3m1r1a1&quot;,&quot;sN&quot;:14,&quot;aN&quot;:&quot;c8c3m1r1a1&quot;}" type="button" aria-label="More" aria-expanded="false">More</button>
        <ul id="overflow-menu-list" aria-hidden="true" class="overflow-menu-list">
        </ul>
    </div>

                </li>
                            </ul>
            
        </nav>


            <div id="theme-picker" data-bi-name="Switch to dark theme" class="c-me theme-picker d-flex align-items-center">
    <button id="theme-picker-button" style="height: 25px; margin-right: 24px;" class="d-flex btn border-r-12" aria-pressed="false" aria-label="Dark theme switch">
        <span class="theme-text fs-12 d-flex align-items-center" style="overflow-x: visible;padding: 0px 8px; gap: 8px;">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16.3592 13.9967C14.1552 17.8141 9.27399 19.122 5.45663 16.918C4.41706 16.3178 3.54192 15.5059 2.87537 14.538C2.65251 14.2143 2.79667 13.7674 3.16661 13.635C6.17301 12.559 7.78322 11.312 8.71759 9.52844C9.70125 7.65076 9.95545 5.59395 9.26732 2.77462C9.17217 2.38477 9.4801 2.01357 9.88082 2.03507C11.1233 2.10173 12.3371 2.45863 13.4378 3.09415C17.2552 5.2981 18.5631 10.1793 16.3592 13.9967Z" fill="#242424"></path>
</svg>
Theme</span>
    </button>
</div><div class="login-section c-me d-flex align-items-center">
        <a class="login-but d-flex align-items-center" href="https://devblogs.microsoft.com/devops/wp-login.php?redirect_to=https%3A%2F%2Fdevblogs.microsoft.com%2Fdevops%2Fnew-boards-hub-rollout-expectations%2F">Sign in</a>
    </div><div class="c-uhfh-actions" data-m="{&quot;cN&quot;:&quot;Header actions_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c9c3m1r1a1&quot;,&quot;sN&quot;:9,&quot;aN&quot;:&quot;c3m1r1a1&quot;}">
                <div class="wf-menu"></div>
                            <form class="c-search" autocomplete="off" id="searchForm" name="searchForm" role="search" action="/search" method="GET" data-seautosuggest="" data-seautosuggestapi="https://www.microsoft.com/msstoreapiprod/api/autosuggest" data-m="{&quot;cN&quot;:&quot;GlobalNav_Search_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c1c9c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c9c3m1r1a1&quot;}" aria-expanded="false">
                                <input id="cli_shellHeaderSearchInput" aria-label="Search" aria-expanded="false" aria-controls="universal-header-search-auto-suggest-transparent" aria-owns="universal-header-search-auto-suggest-ul" type="search" name="query" placeholder="Search" data-m="{&quot;cN&quot;:&quot;SearchBox_nav&quot;,&quot;id&quot;:&quot;n1c1c9c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c1c9c3m1r1a1&quot;}" data-toggle="tooltip" data-placement="right" data-bs-original-title="Search">
                                    <button id="search" aria-label="Search" class="c-glyph" data-m="{&quot;cN&quot;:&quot;Search_nav&quot;,&quot;id&quot;:&quot;n2c1c9c3m1r1a1&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c1c9c3m1r1a1&quot;}" data-bi-mto="true" aria-expanded="false" disabled="disabled">
                                        <span role="presentation">Search</span>
                                        <span role="tooltip" class="c-uhf-tooltip c-uhf-search-tooltip">Search</span>
                                    </button>
                                <div class="m-auto-suggest" id="universal-header-search-auto-suggest-transparent" role="group">
                                    <ul class="c-menu" id="universal-header-search-auto-suggest-ul" aria-label="Search Suggestions" aria-hidden="true" data-bi-dnt="true" data-bi-mto="true" data-js-auto-suggest-position="default" role="listbox" data-tel="jsll" data-m="{&quot;cN&quot;:&quot;search suggestions_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c3c1c9c3m1r1a1&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c1c9c3m1r1a1&quot;}"></ul>
                                    <ul class="c-menu f-auto-suggest-no-results" aria-hidden="true" data-js-auto-suggest-postion="default" data-js-auto-suggest-position="default" role="listbox">
                                        <li class="c-menu-item"> <span tabindex="-1">No results</span></li>
                                    </ul>
                                </div>
                                
                            <input type="hidden" name="blog" value="/devops/" data-m="{&quot;cN&quot;:&quot;HiddenInput_nav&quot;,&quot;id&quot;:&quot;n2c1c9c3m1r1a1&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c1c9c3m1r1a1&quot;}" style="overflow-x: visible;" aria-label="Search"></form>
                        <button data-m="{&quot;cN&quot;:&quot;cancel-search&quot;,&quot;pid&quot;:&quot;Cancel Search&quot;,&quot;id&quot;:&quot;nn2c9c3m1r1a1&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c9c3m1r1a1&quot;}" id="cancel-search" class="cancel-search" aria-label="Cancel Search">
                            <span>Cancel</span>
                        </button>
                
            </div>
        </div>
        
        
    </div>
    
</header>




    </div>
        </div>

    </div><link rel="stylesheet" href="https://www.microsoft.com/onerfstatics/marketingsites-wcus-prod/west-european/shell/_scrf/css/themes=default.device=uplevel_web_pc/1b-9d8ed9/c9-be0100/a6-e969ef/43-9f2e7c/82-8b5456/a0-5d3913/52-918540/ca-ae3ce4?ver=2.0&amp;_cf=02242021_3231" type="text/css" media="all"><script src="https://wcpstatic.microsoft.com/mscc/lib/v2/wcp-consent.js"></script><script src="https://www.microsoft.com/onerfstatics/marketingsites-wcus-prod/shell/_scrf/js/themes=default/54-af9f9f/d4-fb1f57/e1-a50eee/e7-954872/d8-97d509/f0-251fe2/46-be1318/77-04a268/11-240c7b/63-077520/a4-34de62/f9-a5b2ce/db-bc0148/dc-7e9864/6d-c07ea1/6f-dafe8c/f6-aa5278/73-a24d00/6d-1e7ed0/b7-cadaa7/c4-898cf2/ca-40b7b0/4e-ee3a55/3e-f5c39b/c3-6454d7/f9-7592d3/d0-e64f3e/92-10345d/79-499886/7e-cda2d3/58-ab4971/74-d51c79/e0-3c9860/de-884374/1f-100dea/33-abe4df/2b-8e0ae6?ver=2.0&amp;_cf=02242021_3231&amp;iife=1"></script>	<!--/ UHF header -->
	<main class="devblogs-main" id="main" role="main">
							<div class="wrapper">
									<div class="container-evo pt-24">

													<div class="breadcrumbs-wrapper" data-bi-area="breadcrumb" data-bi-id="breadcrumb">
								<nav aria-label="breadcrumb"><ul class="breadcrumb d-flex flex-wrap p-0 m-0" style="list-style-type: none;"><li class="d-flex align-items-center"><a href="https://devblogs.microsoft.com/"><span>Dev Blogs</span></a><span class="breadcrumb-icon px-6"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" style="vertical-align: middle;"><path fill="none" stroke="currentColor" stroke-width="1" d="m9 5l7 7l-7 7"></path></svg></span></li><li class="d-flex align-items-center"><a href="https://devblogs.microsoft.com/devops/"><span>Azure DevOps Blog</span></a><span class="breadcrumb-icon px-6"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" style="vertical-align: middle;"><path fill="none" stroke="currentColor" stroke-width="1" d="m9 5l7 7l-7 7"></path></svg></span></li><li class="d-flex align-items-center"><a class="deb-current-page"><span class="current ebc-current-readmore fw-600">New Boards Hub Rollout Expectations</span></a></li></ul></nav><!-- .breadcrumbs -->							</div>
						
													<!-- alert-banner-starts -->
														<!-- alert-banner-ends -->
											</div>
							<style>
  .container-three-column-post {
    display: grid;
    grid-template-columns: 111px minmax(0, 1fr) 358px;
    grid-template-areas:
      "left-sidebar middle-column post-sidebar";
  }

  .left-sidebar {
    grid-area: left-sidebar;
  }

  .middle-column {
    grid-area: middle-column;
  }

  .post-sidebar {
    grid-area: post-sidebar;
  }

  @media (max-width: 1083px) {
    .container-three-column-post {
      grid-template-columns: minmax(0, 1fr);
      grid-template-areas:
        "post-sidebar"
        "middle-column"
        "left-sidebar";
    }
  }

  @media (min-width: 1084px) {
    .container-three-column-even {
      display: grid;
      grid-template-columns: 111px minmax(0, 1fr) 111px;
    }
  }
</style>
<div class="container-evo mt-56"> <!-- page container -->
  <div class="container-three-column-post"><!-- container-sidebar-left-post - top heading -->
    <div></div>
    <div class="pe-xl-198">
        <header class="ms-md-111 mb-40">
            <div class="d-inline-flex mb-8 gap-24">
                <div class="d-flex align-items-center">
                    December 11th, 2024                </div>
            </div>
            <h1>New Boards Hub Rollout Expectations</h1>        </header><!-- .entry-header -->
                <div class="d-flex justify-content-between flex-column flex-lg-row align-items-center gap-24 mb-40" style="align-items: start;">
                            <div class="d-flex gap-10 align-items-center">
                    <div class="avatar-parent">
                        <img class="avatar-40" src="https://devblogs.microsoft.com/devops/wp-content/uploads/sites/6/2019/02/dan-128x.png" alt="Dan Hellem" style="width: 40px; height: 40px;">
                    </div>
                    <div class="d-flex flex-column">
                                                <div class="fs-16 fw-600">
                            <a class="read-more" href="https://devblogs.microsoft.com/devops/author/dahellem" data-bi-area="body_author_top" data-bi-id="post_page_body_author_top_name" data-bi-name="Dan Hellem">Dan Hellem</a>
                        </div>

                        <div class="fs-12 lh-20 fw-400">Product Manager for Azure Boards</div>                    </div>
                </div>
                    </div>
    </div>
    <div></div>
</div><!-- container-sidebar-left-post - top heading -->
<div class="container-three-column-post mb-40" id="single-wrapper">
    <aside class="post-sidebar sticky scroll-bar pe-12" style="position: relative; overflow-y: scroll;">
        <div id="get-height">
            <div class="border-bottom pb-32 mb-32 evo-dropdown-menu" data-mobile-dropdown="true" id="toc-sidebar" data-bi-id="post_page_sidebar_right_table_of_contents" data-bi-area="sidebar_right_table_of_contents" style="display: block;">
                <button class="evo-dropdown-button mobile-toc btn-no-styles d-flex align-items-center justify-content-between" style="width: 100%;" aria-expanded="false" aria-controls="#tocBody" data-bi-id="post_page_sidebar_right_table_of_contents_dropdown">
                    <h2 class="fs-20 lh-28 toc-title">Table of contents</h2>
                    <span class="evo-dropdown-icon d-flex"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <path class="dark-theme" d="M15.8527 7.64582C16.0484 7.84073 16.0489 8.15731 15.854 8.35292L10.389 13.8374C10.1741 14.0531 9.82477 14.0531 9.60982 13.8374L4.14484 8.35292C3.94993 8.15731 3.95049 7.84073 4.1461 7.64582C4.34171 7.4509 4.65829 7.45147 4.85321 7.64708L9.99942 12.8117L15.1456 7.64708C15.3406 7.45147 15.6571 7.4509 15.8527 7.64582Z" fill="#242424"></path>
                    </svg></span>
                </button>
                <nav id="tocBody" class="evo-dropdown-content mobile-toc-content" data-bi-id="post_page_sidebar_right_table_of_contents" style="display: none;">
                    <ul id="toc"><li class="toc-item" style="display: flex;"><a href="#🚀-how-we-release-updates" class="evo-dropdown-item" data-bi-area="sidebar_right_table_of_contents" data-bi-id="post_page_sidebar_right_table_of_contents" data-bi-name="🚀 How we release updates"><img draggable="false" role="img" class="emoji" alt="🚀" src="https://s.w.org/images/core/emoji/15.0.3/svg/1f680.svg"> How we release updates</a></li><li class="toc-item" style="display: flex;"><a href="#⏳-why-is-the-rollout-taking-so-long" class="evo-dropdown-item" data-bi-area="sidebar_right_table_of_contents" data-bi-id="post_page_sidebar_right_table_of_contents" data-bi-name="⏳ Why is the rollout taking so long?"><img draggable="false" role="img" class="emoji" alt="⏳" src="https://s.w.org/images/core/emoji/15.0.3/svg/23f3.svg"> Why is the rollout taking so long?</a></li><li class="toc-item" style="display: flex;"><a href="#🤚-can-i-turn-new-boards-hub-off" class="evo-dropdown-item" data-bi-area="sidebar_right_table_of_contents" data-bi-id="post_page_sidebar_right_table_of_contents" data-bi-name="🤚 Can I turn New Boards Hub off?"><img draggable="false" role="img" class="emoji" alt="🤚" src="https://s.w.org/images/core/emoji/15.0.3/svg/1f91a.svg"> Can I turn New Boards Hub off?</a></li><li class="toc-item" style="display: flex;"><a href="#⏭️-what’s-next" class="evo-dropdown-item" data-bi-area="sidebar_right_table_of_contents" data-bi-id="post_page_sidebar_right_table_of_contents" data-bi-name="⏭️ What’s next?"><img draggable="false" role="img" class="emoji" alt="⏭️" src="https://s.w.org/images/core/emoji/15.0.3/svg/23ed.svg"> What’s next?</a></li><li class="toc-item" style="display: flex;"><a href="#🐞-what-happens-if-i-find-an-issue" class="evo-dropdown-item" data-bi-area="sidebar_right_table_of_contents" data-bi-id="post_page_sidebar_right_table_of_contents" data-bi-name="🐞 What happens if I find an issue?"><img draggable="false" role="img" class="emoji" alt="🐞" src="https://s.w.org/images/core/emoji/15.0.3/svg/1f41e.svg"> What happens if I find an issue?</a></li></ul>
                    <a href="javascript:" class="fw-600 lh-28" id="showMoreBtn" data-bi-id="post_page_sidebar_right_table_of_contents_show_more" data-bi-name="Show more">Show more</a>
                </nav>
            </div>
            <div class="read-next-mobile"></div>
        </div><!-- #get-height -->
    </aside>
    <article data-clarity-region="article" class="middle-column pe-xl-198" id="post-69894">
        <div class="entry-content sharepostcontent  " data-bi-area="body_article" data-bi-id="post_page_body_article">
            <p>Although the process may seem slow, we are steadily progressing toward rolling out the New Boards Hub to all customers. Our plan is to deprecate the old Boards experience for all Azure DevOps service users by the end Q1 2025.</p>
<p>The rollout is advancing on two fronts. First, we are setting the New Boards Hub as the default experience. Second, for customers who already have the New Boards Hub enabled as the default, we are transitioning groups to exclusively use the New Boards Hub. Removing the option to revert to the old Boards experience.</p>
<p>Currently, 60% of customers have the New Boards Hub set as their default experience. For 20% of customers, the New Boards Hub is now the only option, with no ability to revert to the old experience.</p>
<p><a href="https://devblogs.microsoft.com/devops/wp-content/uploads/sites/6/2024/12/new-boards-1.png" data-featherlight="image"><img fetchpriority="high" decoding="async" data-src="https://devblogs.microsoft.com/devops/wp-content/uploads/sites/6/2024/12/new-boards-1.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABW0AAAUpAQMAAAAmkLaKAAAAA1BMVEXW1taWrGEgAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA9klEQVR4nO3BAQ0AAADCoPdP7WYOoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAboc0AAEI5ijjAAAAAElFTkSuQmCC" alt="Image new boards 1" width="1389" height="1321" class="aligncenter size-full wp-image-69896 lazyload" srcset="https://devblogs.microsoft.com/devops/wp-content/uploads/sites/6/2024/12/new-boards-1.png 1389w, https://devblogs.microsoft.com/devops/wp-content/uploads/sites/6/2024/12/new-boards-1-300x285.png 300w, https://devblogs.microsoft.com/devops/wp-content/uploads/sites/6/2024/12/new-boards-1-1024x974.png 1024w, https://devblogs.microsoft.com/devops/wp-content/uploads/sites/6/2024/12/new-boards-1-768x730.png 768w, https://devblogs.microsoft.com/devops/wp-content/uploads/sites/6/2024/12/new-boards-1-24x24.png 24w" sizes="(max-width: 1389px) 100vw, 1389px"></a></p>
<h2 id="🚀-how-we-release-updates"><img draggable="false" role="img" class="emoji" alt="🚀" src="https://s.w.org/images/core/emoji/15.0.3/svg/1f680.svg"> How we release updates<button class="linkicon" aria-label="Copy Post URL">
            <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
            <path d="M14 6C16.2091 6 18 7.79086 18 10C18 12.1422 16.316 13.8911 14.1996 13.9951L14 14H12C11.5858 14 11.25 13.6642 11.25 13.25C11.25 12.8703 11.5322 12.5565 11.8982 12.5068L12 12.5H14C15.3807 12.5 16.5 11.3807 16.5 10C16.5 8.67452 15.4685 7.58996 14.1644 7.50532L14 7.5H12C11.5858 7.5 11.25 7.16421 11.25 6.75C11.25 6.3703 11.5322 6.05651 11.8982 6.00685L12 6H14ZM8 6C8.41421 6 8.75 6.33579 8.75 6.75C8.75 7.1297 8.46785 7.44349 8.10177 7.49315L8 7.5H6C4.61929 7.5 3.5 8.61929 3.5 10C3.5 11.3255 4.53154 12.41 5.83562 12.4947L6 12.5H8C8.41421 12.5 8.75 12.8358 8.75 13.25C8.75 13.6297 8.46785 13.9435 8.10177 13.9932L8 14H6C3.79086 14 2 12.2091 2 10C2 7.8578 3.68397 6.10892 5.80036 6.0049L6 6H8ZM6.25 9.25H13.75C14.1642 9.25 14.5 9.58579 14.5 10C14.5 10.3797 14.2178 10.6935 13.8518 10.7432L13.75 10.75H6.25C5.83579 10.75 5.5 10.4142 5.5 10C5.5 9.6203 5.78215 9.30651 6.14823 9.25685L6.25 9.25H13.75H6.25Z" fill="#0F6CBD"></path>
            </svg>
        <span class="tooltip">Copy link</span></button></h2>
<p>Before diving into the details of rolling out the New Boards Hub, it’s helpful to explain how Azure DevOps releases updates and features to customers. We use a ring-based release process, dividing Azure DevOps customers into six distinct rings.</p>
<p>The process begins with <strong>Ring 0</strong>, our canary ring, which is exclusively used by the Azure DevOps engineering team. <strong>Ring 1</strong> includes customers who are open to receiving new features early and are willing to tolerate potential bugs or issues. Each subsequent ring contains a progressively larger group of customers, ending in <strong>Ring 5</strong>, which includes the broadest audience.</p>
<p>This ring-based approach ensures that updates are thoroughly tested as they progress through each ring. By the time updates reach Ring 5, they have undergone extensive usage and testing in earlier rings, allowing us to identify and address issues. As a result, problems rarely make it to Rings 4 and 5.</p>
<h2 id="⏳-why-is-the-rollout-taking-so-long"><img draggable="false" role="img" class="emoji" alt="⏳" src="https://s.w.org/images/core/emoji/15.0.3/svg/23f3.svg"> Why is the rollout taking so long?<button class="linkicon" aria-label="Copy Post URL">
            <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
            <path d="M14 6C16.2091 6 18 7.79086 18 10C18 12.1422 16.316 13.8911 14.1996 13.9951L14 14H12C11.5858 14 11.25 13.6642 11.25 13.25C11.25 12.8703 11.5322 12.5565 11.8982 12.5068L12 12.5H14C15.3807 12.5 16.5 11.3807 16.5 10C16.5 8.67452 15.4685 7.58996 14.1644 7.50532L14 7.5H12C11.5858 7.5 11.25 7.16421 11.25 6.75C11.25 6.3703 11.5322 6.05651 11.8982 6.00685L12 6H14ZM8 6C8.41421 6 8.75 6.33579 8.75 6.75C8.75 7.1297 8.46785 7.44349 8.10177 7.49315L8 7.5H6C4.61929 7.5 3.5 8.61929 3.5 10C3.5 11.3255 4.53154 12.41 5.83562 12.4947L6 12.5H8C8.41421 12.5 8.75 12.8358 8.75 13.25C8.75 13.6297 8.46785 13.9435 8.10177 13.9932L8 14H6C3.79086 14 2 12.2091 2 10C2 7.8578 3.68397 6.10892 5.80036 6.0049L6 6H8ZM6.25 9.25H13.75C14.1642 9.25 14.5 9.58579 14.5 10C14.5 10.3797 14.2178 10.6935 13.8518 10.7432L13.75 10.75H6.25C5.83579 10.75 5.5 10.4142 5.5 10C5.5 9.6203 5.78215 9.30651 6.14823 9.25685L6.25 9.25H13.75H6.25Z" fill="#0F6CBD"></path>
            </svg>
        <span class="tooltip">Copy link</span></button></h2>
<p>Azure Boards is a complex product with a rich history and many nuances, making it challenging to recall the reasoning behind every decision made over time. As we enable the New Boards Hub for each new ring, customers often identify edge cases and provide valuable feedback on issues that need to be addressed.</p>
<p>To ensure a smooth transition, we allow the New Boards Hub to “bake” for a period of time with each ring. This gives us the opportunity to thoroughly address customer feedback and resolve any issues before moving to the next ring.</p>
<p>While this process is time-consuming, it allows us to be deliberate and minimizes the potential disruption customers might experience if the rollout were more aggressive.</p>
<h2 id="🤚-can-i-turn-new-boards-hub-off"><img draggable="false" role="img" class="emoji" alt="🤚" src="https://s.w.org/images/core/emoji/15.0.3/svg/1f91a.svg"> Can I turn New Boards Hub off?<button class="linkicon" aria-label="Copy Post URL">
            <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
            <path d="M14 6C16.2091 6 18 7.79086 18 10C18 12.1422 16.316 13.8911 14.1996 13.9951L14 14H12C11.5858 14 11.25 13.6642 11.25 13.25C11.25 12.8703 11.5322 12.5565 11.8982 12.5068L12 12.5H14C15.3807 12.5 16.5 11.3807 16.5 10C16.5 8.67452 15.4685 7.58996 14.1644 7.50532L14 7.5H12C11.5858 7.5 11.25 7.16421 11.25 6.75C11.25 6.3703 11.5322 6.05651 11.8982 6.00685L12 6H14ZM8 6C8.41421 6 8.75 6.33579 8.75 6.75C8.75 7.1297 8.46785 7.44349 8.10177 7.49315L8 7.5H6C4.61929 7.5 3.5 8.61929 3.5 10C3.5 11.3255 4.53154 12.41 5.83562 12.4947L6 12.5H8C8.41421 12.5 8.75 12.8358 8.75 13.25C8.75 13.6297 8.46785 13.9435 8.10177 13.9932L8 14H6C3.79086 14 2 12.2091 2 10C2 7.8578 3.68397 6.10892 5.80036 6.0049L6 6H8ZM6.25 9.25H13.75C14.1642 9.25 14.5 9.58579 14.5 10C14.5 10.3797 14.2178 10.6935 13.8518 10.7432L13.75 10.75H6.25C5.83579 10.75 5.5 10.4142 5.5 10C5.5 9.6203 5.78215 9.30651 6.14823 9.25685L6.25 9.25H13.75H6.25Z" fill="#0F6CBD"></path>
            </svg>
        <span class="tooltip">Copy link</span></button></h2>
<p>It’s important to emphasize that the old Boards experience is on a path to deprecation, to be fully replaced by the New Boards Hub. The timing of this transition depends on the ring your organization is in.</p>
<p>For customers in Rings 1 and 2, reverting to the old Boards is no longer an option. For those who still have the ability to revert, we encourage you to remain on the New Boards and <a href="https://developercommunity.visualstudio.com/AzureDevOps" target="_blank">share your feedback with us</a>. Doing so not only ensures your input helps shape the experience but also makes the transition smoother for you and your team.</p>
<p><img draggable="false" role="img" class="emoji" alt="🔗" src="https://s.w.org/images/core/emoji/15.0.3/svg/1f517.svg"> <a href="https://devblogs.microsoft.com/devops/new-boards-hub-rollout-update-2/#🙋‍♀️-is-new-boards-hub-better">Learn more</a> about the features exclusive to the New Boards Hub.</p>
<h2 id="⏭️-what’s-next"><img draggable="false" role="img" class="emoji" alt="⏭️" src="https://s.w.org/images/core/emoji/15.0.3/svg/23ed.svg"> What’s next?<button class="linkicon" aria-label="Copy Post URL">
            <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
            <path d="M14 6C16.2091 6 18 7.79086 18 10C18 12.1422 16.316 13.8911 14.1996 13.9951L14 14H12C11.5858 14 11.25 13.6642 11.25 13.25C11.25 12.8703 11.5322 12.5565 11.8982 12.5068L12 12.5H14C15.3807 12.5 16.5 11.3807 16.5 10C16.5 8.67452 15.4685 7.58996 14.1644 7.50532L14 7.5H12C11.5858 7.5 11.25 7.16421 11.25 6.75C11.25 6.3703 11.5322 6.05651 11.8982 6.00685L12 6H14ZM8 6C8.41421 6 8.75 6.33579 8.75 6.75C8.75 7.1297 8.46785 7.44349 8.10177 7.49315L8 7.5H6C4.61929 7.5 3.5 8.61929 3.5 10C3.5 11.3255 4.53154 12.41 5.83562 12.4947L6 12.5H8C8.41421 12.5 8.75 12.8358 8.75 13.25C8.75 13.6297 8.46785 13.9435 8.10177 13.9932L8 14H6C3.79086 14 2 12.2091 2 10C2 7.8578 3.68397 6.10892 5.80036 6.0049L6 6H8ZM6.25 9.25H13.75C14.1642 9.25 14.5 9.58579 14.5 10C14.5 10.3797 14.2178 10.6935 13.8518 10.7432L13.75 10.75H6.25C5.83579 10.75 5.5 10.4142 5.5 10C5.5 9.6203 5.78215 9.30651 6.14823 9.25685L6.25 9.25H13.75H6.25Z" fill="#0F6CBD"></path>
            </svg>
        <span class="tooltip">Copy link</span></button></h2>
<p>Starting in early January 2025, we will make the New Boards Hub the only experience for the next set of customers that reside in Ring 3. At the same time, we will enable the New Boards Hub as the default experience for the remaining 40% of customers that are in Ring 5.</p>
<p>As with previous stages, we will allow a short period for feedback and issue resolution to ensure a smooth transition. However, our goal is to fully convert all customers to the New Boards Hub, removing the option to revert, by April of 2025.</p>
<h2 id="🐞-what-happens-if-i-find-an-issue"><img draggable="false" role="img" class="emoji" alt="🐞" src="https://s.w.org/images/core/emoji/15.0.3/svg/1f41e.svg"> What happens if I find an issue?<button class="linkicon" aria-label="Copy Post URL">
            <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
            <path d="M14 6C16.2091 6 18 7.79086 18 10C18 12.1422 16.316 13.8911 14.1996 13.9951L14 14H12C11.5858 14 11.25 13.6642 11.25 13.25C11.25 12.8703 11.5322 12.5565 11.8982 12.5068L12 12.5H14C15.3807 12.5 16.5 11.3807 16.5 10C16.5 8.67452 15.4685 7.58996 14.1644 7.50532L14 7.5H12C11.5858 7.5 11.25 7.16421 11.25 6.75C11.25 6.3703 11.5322 6.05651 11.8982 6.00685L12 6H14ZM8 6C8.41421 6 8.75 6.33579 8.75 6.75C8.75 7.1297 8.46785 7.44349 8.10177 7.49315L8 7.5H6C4.61929 7.5 3.5 8.61929 3.5 10C3.5 11.3255 4.53154 12.41 5.83562 12.4947L6 12.5H8C8.41421 12.5 8.75 12.8358 8.75 13.25C8.75 13.6297 8.46785 13.9435 8.10177 13.9932L8 14H6C3.79086 14 2 12.2091 2 10C2 7.8578 3.68397 6.10892 5.80036 6.0049L6 6H8ZM6.25 9.25H13.75C14.1642 9.25 14.5 9.58579 14.5 10C14.5 10.3797 14.2178 10.6935 13.8518 10.7432L13.75 10.75H6.25C5.83579 10.75 5.5 10.4142 5.5 10C5.5 9.6203 5.78215 9.30651 6.14823 9.25685L6.25 9.25H13.75H6.25Z" fill="#0F6CBD"></path>
            </svg>
        <span class="tooltip">Copy link</span></button></h2>
<p>If you find a problem, please don’t turn off the New Boards Hub. Report the issue via <a href="https://developercommunity.visualstudio.com/AzureDevOps" target="_blank">Feedback Ticket</a> or <a href="mailto:[email protected]" rel="noopener" target="_blank">email me directly</a>. We need to know if there is an issue so we can fix it. All feedback is appreciated.</p>
        </div><!-- .entry-content -->

        <!-- AI Disclaimer -->
            </article>
    <style>
    @media (min-width: 1084px) {
        .social-panel {
            flex-direction: column;
        }
    }

    @media (max-width: 1083px) {
        .evo-social-sidebar {
            margin-bottom: 24px;
        }

        .social-panel {
            width: 100%;
            justify-content: space-around;
        }
    }

    a.like-button svg {
        /* width: 24px; */
        width: 28px;
    }

    .evo-social-sidebar .votes-count {
        font-size: 14px;
        color: var(--clr-social-btn-count);
        height: 20px;
    }

    .evo-social-sidebar .sharing-btns .share-post span {
        color: var(--clr-body-light);
    }

    .evo-social-sidebar .sharing-btns .share-post:hover span {
        color: var(--clr-body);
    }

    .evo-social-sidebar .sharing-btns {
        box-shadow: var(--clr-share-btn-shadow);
    }

    .evo-social-sidebar .social-panel a:focus,
    .evo-social-sidebar .social-panel button:focus {
        outline-offset: -4px;
    }

    .evo-social-sidebar .evo-dropdown-content {
        position: absolute;
        bottom: 100%;
        z-index: 1000;
    }

    .evo-social-sidebar .evo-dropdown-content ul {
        list-style: none;
    }

    @media screen and (max-width: 1084px) {
        .evo-social-sidebar .evo-dropdown-content {
            top: 100%;
            bottom: unset;
            right: 0;
        }
    }

    @media (max-width: 1083px) {
        .left-sidebar {
            margin-top: 40px;
        }
    }
</style>
<div class="left-sidebar">
    <div class="evo-social-sidebar sticky d-flex position-relative" data-bi-area="sidebar_left_social">
        <div class="social-panel bg-white d-inline-flex p-8 border-r-8 border-2">
            <div style="width: 60px; height: 64px;">
                                <span class="post-like" id="postLike-69894"><span class="icon-like-dislike1"><a class="like-button d-flex flex-column align-items-center p-8 btn-outline-secondary border-0 rounded" aria-label="Login to like, vote count 0" data-toggle="tooltip" href="https://devblogs.microsoft.com/devops/wp-login.php?redirect_to=https%3A%2F%2Fdevblogs.microsoft.com%2Fdevops%2Fnew-boards-hub-rollout-expectations%2F" data-bi-id="post_page_sidebar_left_social_like" data-bi-name="Login to like" data-bs-original-title="Login to like"><svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" fill="none"><path d="M14.6036 6.1928C17.205 3.26061 21.7875 3.27052 24.3762 6.21392C26.6389 8.78671 26.5238 12.6719 24.1126 15.1062L14.5327 24.7778C14.3919 24.92 14.2001 25 13.9999 25C13.7998 25 13.6079 24.92 13.4671 24.7778L3.88731 15.106C1.47625 12.6718 1.36108 8.78678 3.62371 6.21405C6.21237 3.27059 10.7949 3.26064 13.3963 6.19283L13.9999 6.87321L14.6036 6.1928ZM23.2499 7.20431C21.2567 4.93806 17.7285 4.93044 15.7256 7.18805L14.5609 8.50078C14.4186 8.6612 14.2144 8.75302 13.9999 8.75302C13.7854 8.75302 13.5812 8.6612 13.4389 8.50078L12.2743 7.18808C10.2714 4.93047 6.74312 4.93813 4.75001 7.20441C3.00793 9.18526 3.0966 12.1765 4.95297 14.0507L13.9999 23.1845L23.047 14.0508C24.9034 12.1766 24.9921 9.1852 23.2499 7.20431Z" fill="#0F6CBD"></path></svg><span class="votes-count fw-600"> 0</span></a></span></span>            </div>
                            <div class="d-flex flex-column" style="width: 60px; height: 64px;">
                    <a class="d-flex flex-column align-items-center p-8 btn-outline-secondary border-0 rounded" aria-label="Jump to comments, 0 total comments" href="#comments" data-bi-id="post_page_sidebar_left_social_comment" data-bi-name="comment">
                        <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" fill="none">
                            <path d="M5.75 4.5C4.50736 4.5 3.5 5.50736 3.5 6.75V17.25C3.5 18.4926 4.50736 19.5 5.75 19.5H8.5V24.2955C8.5 24.4994 8.73092 24.6175 8.89627 24.4982L15.8244 19.5H22.25C23.4926 19.5 24.5 18.4926 24.5 17.25V6.75C24.5 5.50736 23.4926 4.5 22.25 4.5H5.75ZM2 6.75C2 4.67893 3.67893 3 5.75 3H22.25C24.3211 3 26 4.67893 26 6.75V17.25C26 19.3211 24.3211 21 22.25 21H16.309L9.77388 25.7147C8.61646 26.5497 7 25.7227 7 24.2955V21H5.75C3.67893 21 2 19.3211 2 17.25V6.75Z" fill="#0F6CBD"></path>
                        </svg>
                        <span class="votes-count fw-600"> 0</span>
                    </a>
                </div>
                        <div class="d-flex flex-column" style="width: 60px; height: 64px;">
                <div class="position-relative d-flex flex-column evo-dropdown-menu">
                                        <button data-bi-id="post_page_sidebar_left_social_share" data-bi-name="click to open" class="evo-dropdown-button d-flex flex-column align-items-center p-8 btn-outline-secondary border-0 rounded" type="button" aria-expanded="false" aria-controls="#social-sharing-buttons" aria-label="Share on social media, 0 total shares">
                        <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" fill="none">
                            <path d="M18.27 3.21001L25.77 10.46C25.8426 10.53 25.9003 10.6139 25.9398 10.7066C25.9792 10.7994 25.9995 10.8992 25.9995 11C25.9995 11.1008 25.9792 11.2006 25.9398 11.2934C25.9003 11.3862 25.8426 11.4701 25.77 11.54L18.27 18.79C18.2014 18.8576 18.1202 18.9109 18.031 18.9469C17.9417 18.983 17.8462 19.001 17.75 19C17.6502 19.0003 17.5515 18.9799 17.46 18.94C17.324 18.883 17.2078 18.7871 17.126 18.6644C17.0441 18.5416 17.0003 18.3975 17 18.25V14.51C10.3 14.78 7.48 18.53 7.36 18.69C7.26453 18.8157 7.13275 18.909 6.98251 18.9573C6.83226 19.0056 6.67081 19.0065 6.52 18.96C6.36957 18.9115 6.2383 18.8168 6.14492 18.6893C6.05153 18.5618 6.00081 18.4081 6 18.25C6 10.23 12.59 7.77001 17 7.52001V3.75001C17.0003 3.60251 17.0441 3.45838 17.126 3.33565C17.2078 3.21293 17.324 3.11705 17.46 3.06001C17.5947 3.00193 17.7436 2.98518 17.8878 3.01188C18.032 3.03859 18.1651 3.10755 18.27 3.21001ZM18.5 13.75V16.46L24.17 11L18.5 5.52001V8.25001C18.4974 8.44812 18.4176 8.63738 18.2775 8.77748C18.1374 8.91757 17.9481 8.99742 17.75 9.00001C16.78 9.00001 8.9 9.22001 7.66 16.28C10.536 14.0399 14.1065 12.8792 17.75 13C17.9481 13.0026 18.1374 13.0825 18.2775 13.2225C18.4176 13.3626 18.4974 13.5519 18.5 13.75ZM22.7225 19.2225C22.8626 19.0824 23.0519 19.0026 23.25 19C23.4481 19.0026 23.6374 19.0824 23.7775 19.2225C23.9176 19.3626 23.9974 19.5519 24 19.75V20.25C24 21.5098 23.4996 22.718 22.6088 23.6088C21.718 24.4996 20.5098 25 19.25 25H7.75C6.49022 25 5.28204 24.4996 4.39124 23.6088C3.50045 22.718 3 21.5098 3 20.25V8.75C3 7.49022 3.50045 6.28204 4.39124 5.39124C5.28204 4.50045 6.49022 4 7.75 4H12.25C12.4489 4 12.6397 4.07902 12.7803 4.21967C12.921 4.36032 13 4.55109 13 4.75C13 4.94891 12.921 5.13968 12.7803 5.28033C12.6397 5.42098 12.4489 5.5 12.25 5.5H7.75C6.88886 5.50264 6.06374 5.84589 5.45482 6.45482C4.84589 7.06374 4.50264 7.88886 4.5 8.75V20.25C4.50264 21.1111 4.84589 21.9363 5.45482 22.5452C6.06374 23.1541 6.88886 23.4974 7.75 23.5H19.25C20.1111 23.4974 20.9363 23.1541 21.5452 22.5452C22.1541 21.9363 22.4974 21.1111 22.5 20.25V19.75C22.5026 19.5519 22.5824 19.3626 22.7225 19.2225Z" fill="#0F6CBD"></path>
                        </svg>
                        <div data-post-id="69894" class="evo-count-shares votes-count fw-600 d-flex p-6 align-items-center border-r-40 clr-neutral clr-brand-bg" style="position:relative;">
                            0                        </div>
                    </button>
                    <nav id="social-sharing-buttons" class="evo-dropdown-content" style="display: none;">
                        <ul class="sharing-btns rounded bg-white d-flex flex-column m-0 p-8" role="menu">
                            <li role="presentation">
                                <a data-bi-id="post_page_sidebar_left_social_share" data-bi-name="Share on Facebook" role="menuitem" data-post-id="69894" class="share-post d-flex flex-row align-items-center evo-dropdown-item facebook btn-outline-secondary border-0 rounded p-8 gap-8" href="https://www.facebook.com/sharer/sharer.php?u=https://devblogs.microsoft.com/devops/new-boards-hub-rollout-expectations/" title="Share on Facebook" aria-label="Share on Facebook" target="_blank" rel="noopener noreferrer nofollow" tabindex="-1">
                                    <img style="max-width: unset;" src="/wp-content/themes/devblogs-evo/images/social-icons/facebook.svg">
                                    <span class="text-nowrap fs-16">Share on Facebook</span>
                                </a>
                            </li>
                            <li role="presentation">
                                <a data-bi-id="post_page_sidebar_left_social_share" data-bi-name="Share on Twitter" role="menuitem" data-post-id="69894" class="share-post d-flex flex-row align-items-center evo-dropdown-item twitter btn-outline-secondary border-0 rounded p-8 gap-8" href="https://twitter.com/intent/tweet?url=https://devblogs.microsoft.com/devops/new-boards-hub-rollout-expectations/&amp;text=New Boards Hub Rollout Expectations" title="Share on Twitter" aria-label="Share on Twitter" target="_blank" rel="noopener noreferrer nofollow" tabindex="-1">
                                    <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
                                        <path class="dark-theme" d="M14.4821 10.6218L21.0389 3H19.4852L13.7919 9.61788L9.24467 3H4L10.8763 13.0074L4 21H5.55384L11.5661 14.0113L16.3683 21H21.613L14.4817 10.6218H14.4821ZM12.3539 13.0956L11.6572 12.0991L6.11372 4.16971H8.50033L12.974 10.5689L13.6707 11.5655L19.4859 19.8835H17.0993L12.3539 13.096V13.0956Z"></path>
                                    </svg>
                                    <span class="text-nowrap fs-16">Share on Twitter</span>
                                </a>
                            </li>
                            <li role="presentation">
                                <a data-bi-id="post_page_sidebar_left_social_share" data-bi-name="Share on LinkedIn" role="menuitem" data-post-id="69894" class="share-post d-flex flex-row align-items-center evo-dropdown-item linkedin btn-outline-secondary border-0 rounded p-8 gap-8" href="https://www.linkedin.com/shareArticle?mini=true&amp;url=https://devblogs.microsoft.com/devops/new-boards-hub-rollout-expectations/" title="Share on LinkedIn" aria-label="Share on LinkedIn" target="_blank" rel="noopener noreferrer nofollow" tabindex="-1">
                                    <img style="max-width: unset;" src="/wp-content/themes/devblogs-evo/images/social-icons/linkedin.svg">
                                    <span class="text-nowrap fs-16">Share on Linkedin</span>
                                </a>
                            </li>
                            <!--    <li role="presentation">
                                <button role="menuitem"
                                    class="d-flex flex-row align-items-center evo-dropdown-item copy-url-button btn-outline-secondary border-0 rounded p-8 gap-8"
                                    type="button" tabindex="-1" style="width: 100%;">
                                    <svg width="24" height="10" viewBox="0 0 16 8" fill="none"
                                        xmlns="http://www.w3.org/2000/svg">
                                        <path d="M12 0C14.2091 0 16 1.79086 16 4C16 6.1422 14.316 7.89108 12.1996 7.9951L12 8H10C9.58579 8 9.25 7.66421 9.25 7.25C9.25 6.8703 9.53215 6.55651 9.89823 6.50685L10 6.5H12C13.3807 6.5 14.5 5.38071 14.5 4C14.5 2.67452 13.4685 1.58996 12.1644 1.50532L12 1.5H10C9.58579 1.5 9.25 1.16421 9.25 0.75C9.25 0.370304 9.53215 0.0565088 9.89823 0.00684643L10 0H12ZM6 0C6.41421 0 6.75 0.335786 6.75 0.75C6.75 1.1297 6.46785 1.44349 6.10177 1.49315L6 1.5H4C2.61929 1.5 1.5 2.61929 1.5 4C1.5 5.32548 2.53154 6.41004 3.83562 6.49468L4 6.5H6C6.41421 6.5 6.75 6.83579 6.75 7.25C6.75 7.6297 6.46785 7.94349 6.10177 7.99315L6 8H4C1.79086 8 0 6.20914 0 4C0 1.8578 1.68397 0.108921 3.80036 0.00489521L4 0H6ZM4.25 3.25H11.75C12.1642 3.25 12.5 3.58579 12.5 4C12.5 4.3797 12.2178 4.69349 11.8518 4.74315L11.75 4.75H4.25C3.83579 4.75 3.5 4.41421 3.5 4C3.5 3.6203 3.78215 3.30651 4.14823 3.25685L4.25 3.25H11.75H4.25Z" />
                                    </svg>
                                    <span class="text-nowrap fs-16">Copy Link</span>
                                </button>
                            </li> -->
                        </ul>
                    </nav>
                </div>
            </div>
        </div>
    </div>
</div></div><!-- This is the end of main section three column -->
<div class="container-three-column-post mb-40">
    <div></div>
    <div>
        <div class="border-bottom pb-40 mb-64"><div class="mb-24"><div class="fs-16 fw-600 mb-16">Category</div><div class="d-flex justify-content-start flex-wrap gap-12 post-topics"><a data-bi-area="body_category" data-bi-id="post_page_body_category" data-bi-name="Agile Category" class="d-flex align-items-center btn-outline-secondary px-8" href="https://devblogs.microsoft.com/devops/category/agile/" aria-label="Agile Category">Agile</a><a data-bi-area="body_category" data-bi-id="post_page_body_category" data-bi-name="Azure &amp; Cloud Category" class="d-flex align-items-center btn-outline-secondary px-8" href="https://devblogs.microsoft.com/devops/category/azure/" aria-label="Azure &amp; Cloud Category">Azure &amp; Cloud</a><a data-bi-area="body_category" data-bi-id="post_page_body_category" data-bi-name="Community Category" class="d-flex align-items-center btn-outline-secondary px-8" href="https://devblogs.microsoft.com/devops/category/community/" aria-label="Community Category">Community</a><a data-bi-area="body_category" data-bi-id="post_page_body_category" data-bi-name="DevOps Category" class="d-flex align-items-center btn-outline-secondary px-8" href="https://devblogs.microsoft.com/devops/category/devops/" aria-label="DevOps Category">DevOps</a></div></div></div>        <div><!-- Author section -->
            <h2 class="fs-20 mb-24">Author</h2>
            <div class="d-flex gap-24 flex-column flex-lg-row"><div style="flex: 0 0 100%"><div class="d-flex gap-12 align-items-center"><div class="avatar-parent"><img class="avatar-40" src="https://devblogs.microsoft.com/devops/wp-content/uploads/sites/6/2019/02/dan-128x.png" alt="Dan Hellem" style="width: 64px; height: 64px;"></div><div><div class="fs-16 fw-600"><a data-bi-area="body_author_bottom" data-bi-id="post_page_body_author_bottom_name" data-bi-name="Dan Hellem" class="read-more" href="https://devblogs.microsoft.com/devops/author/dahellem">Dan Hellem</a></div><div class="fs-12 lh-20 fw-400">Product Manager for Azure Boards</div></div></div><p class="pt-20 fs-14">Dan is a Product Manager with Microsoft's Azure DevOps</p></div></div>        </div>
    </div>
    <div></div>
</div>  <div class="container-three-column-even"><!-- start comments bottom full-width section -->
    <div></div><!-- Place holder for left sidebar -->
    <div class="mb-80" style="max-width: 1324px;"><!-- start max-width bottom section -->
      <!-- Comments section -->
      <div id="comments" class="mb-40" data-bi-area="body_comments" data-bi-id="post_page_body_comments">
        

    <div id="comments" class="comments-area" data-bi-id="post_page_body_comments">
    							<h2 class="comments-title"><span class="cm_count">0</span> comments</h2>
					
	<p class="must-log-in"><span class="login-text"> Be the first to start the discussion.</span></p>	<div id="respond" class="comment-respond">
		<h3 id="reply-title" class="comment-reply-title"><a href="javascript:void(0)" title="Leave a comment" class="btn btn-primary">Leave a comment</a><span class="screen-reader-only"><a rel="nofollow" id="cancel-comment-reply-link" href="/devops/new-boards-hub-rollout-expectations/#respond" style="display:none;">Cancel reply</a></span></h3><p class="must-log-in"><a href="https://devblogs.microsoft.com/devops/wp-login.php?redirect_to=https%3A%2F%2Fdevblogs.microsoft.com%2Fdevops%2Fnew-boards-hub-rollout-expectations%2F%23comments" class="btn btn-primary">Sign in</a></p>	</div><!-- #respond -->
	<div class="comment-reply-respond" id="comment-reply-respond">
	<form method="post" action="https://devblogs.microsoft.com/devops/wp-comments-post.php" id="commentform" class="wp-core-ui">
		<div id="editor-container-0">
			<div id="wp-comment_reply_content-wrap" class="wp-core-ui wp-editor-wrap html-active"><div id="wp-comment_reply_content-editor-container" class="wp-editor-container"><div id="qt_comment_reply_content_toolbar" class="quicktags-toolbar hide-if-no-js"><input type="button" id="qt_comment_reply_content_strong" class="ed_button button button-small" aria-label="Bold" value="b"><input type="button" id="qt_comment_reply_content_em" class="ed_button button button-small" aria-label="Italic" value="i"><input type="button" id="qt_comment_reply_content_link" class="ed_button button button-small" aria-label="Insert link" value="link"><input type="button" id="qt_comment_reply_content_del" class="ed_button button button-small" aria-label="Deleted text (strikethrough)" value="del"><input type="button" id="qt_comment_reply_content_customcode" class="ed_button button button-small" value="code"></div><textarea class="wp-editor-area" style="height: 200px" cols="40" name="comment_reply_content" id="comment_reply_content" aria-label="textarea editor"></textarea></div>
</div>

			<div class="vote">
				<span class="form-submit">
					<input name="submit" type="submit" id="submit" class="btn btn-primary" value="Reply">
					<input type="button" value="Cancel" id="cancel-reply-comment-form" name="Cancel" class="btn btn-secondary">
					<input type="hidden" name="comment_post_ID" value="69894" id="comment_post_ID">
					<input type="hidden" name="comment_parent" id="comment_parent" value="0">
				</span>
				<span class="code-of-conduct"><a href="https://answers.microsoft.com/en-us/page/codeofconduct" target="_blank">Code of Conduct</a></span>
			</div>
			<input type="hidden" id="_wp_unfiltered_html_comment_disabled" name="_wp_unfiltered_html_comment" value="ad7af05511">
		</div><!-- editor-container -->
	</form>
</div>
				<ul class="commentlist">
					</ul><!-- .commentlist -->
			</div><!-- #comments .comments-area -->
<script id="commentsloader">
								var ajaxurl_comments = 'https://devblogs.microsoft.com/devops/wp-admin/admin-ajax.php';
								var parent_post_id = 69894;
								var cpage = 1;
								</script>      </div>
      <div class="read-next-desktop">
        
      <div class="read-next">
          <!-- Read Next Section -->
    
                <h2 class="fs-20 mb-24">Read next</h2>
            <div>
                <article>
  <div class="box bg-white p-12 rounded shadow mb-24 position-relative border-1" style="max-width: 334px;">
      <div class="fs-14 mb-16 fw-light">December 3, 2024</div>
      <h3 class="fs-16 mb-16"><a class="single-click" data-bi-area="sidebar_right_read_next" data-bi-id="post_page_sidebar_right_read_next_singleclick" data-bi-name="Microsoft DevLabs Extensions" href="https://devblogs.microsoft.com/devops/microsoft-devlabs-extensions/">Microsoft DevLabs Extensions</a></h3>
      <div class="d-flex gap-6 align-items-center"><div class="d-flex gap-6 align-items-center">
            <div class="avatar-parent">
            <img src="https://devblogs.microsoft.com/devops/wp-content/uploads/sites/6/2019/02/dan-128x.png" style="width: 20px; height: 20px;" class="avatar-20 rounded-pill a" alt="Dan Hellem">
        </div>
        <span class="fs-14">Dan Hellem</span>
    </div></div>
</div>
</article><article>
  <div class="box bg-white p-12 rounded shadow mb-24 position-relative border-1" style="max-width: 334px;">
      <div class="fs-14 mb-16 fw-light">November 19, 2024</div>
      <h3 class="fs-16 mb-16"><a class="single-click" data-bi-area="sidebar_right_read_next" data-bi-id="post_page_sidebar_right_read_next_singleclick" data-bi-name="Getting the most out of Azure DevOps and GitHub" href="https://devblogs.microsoft.com/devops/getting-the-most-out-of-azure-devops-and-github/">Getting the most out of Azure DevOps and GitHub</a></h3>
      <div class="d-flex gap-6 align-items-center"><div class="d-flex gap-6 align-items-center">
            <div class="avatar-parent">
            <img src="https://devblogs.microsoft.com/devops/wp-content/uploads/sites/6/2018/10/pioneer-image.png" style="width: 20px; height: 20px;" class="avatar-20 rounded-pill a" alt="Aaron Hallberg">
        </div>
        <span class="fs-14">Aaron Hallberg</span>
    </div></div>
</div>
</article>            </div>
                    </div></div>
      <!-- Stay Informed Section -->
      <style>
    @media (min-width:1212px) {
        .stay-informed.p-16 {
            padding: 40px;
        }

        .single .newsletter-form {
            padding-right: 40px;
            border-right: 1px solid var(--clr-border);
        }

        .single .follow-blog {
            padding-left: 40px;
        }
    }

    @media (max-width:1211px) {
        .single .newsletter-form {
            padding-bottom: 24px;
            border-bottom: 1px solid var(--clr-border);
            margin-bottom: 24px;
        }
    }    
</style>
<div class="stay-informed d-flex align-items-stretch flex-column flex-lg-row border-2 border-r-8 p-16">
    <div class="newsletter-form w-100" id="subscribe_form" data-bi-area="body_newsletter" data-bi-id="post_page_body_newsletter">
        <h2 id="stayInformed" class="fs-20 fw-600 mb-8">Stay informed</h2>
        <div class="fs-14 pb-16">Get notified when new posts are published.</div>
        <form method="post" action="https://devblogs.microsoft.com/devops?na=s" onsubmit="return newsletter_check(this)">
        <input type="hidden" name="nlang" value="">
		<div class="d-flex flex-row align-items-center gap-12 mb-12">
        <div class="d-flex align-items-center justify-content-start flex-md-grow-1 bg-white" style="align-self: stretch; height: 32px; border-radius: 4px; overflow: hidden; border: 1px solid var(--clr-border); width: 90%;"> <input class="x-hidden-focus bg-white" style="flex: 1 1 0; align-self: stretch; border: none; padding: 4px 10px; font-family: Segoe UI; color: var(--clr-body);" type="email" name="ne" aria-labelledby="stayInformed" placeholder="Enter your email" required=""></div><div class="d-flex align-items-center justify-content-center">
        
        <button class="tnp-submit btn-primary" type="submit" value="Subscribe">Subscribe</button>
		</div>
		</div>
        <div class="tnp-privacy-field" style="font-size: 10px; line-height: 14px; word-wrap: break-word"><label>By subscribing you agree to our <a style="color: var(--clr-body-link); text-decoration: underline;" href="https://docs.microsoft.com/en-us/collaborate/terms-of-use" target="_blank">Terms of Use</a> and <a style="color: var(--clr-body-link); text-decoration: underline;" href="https://go.microsoft.com/fwlink/?LinkId=521839" target="_blank">Privacy</a></label></div>
        </form>
        </div>        <div class="follow-blog w-100">
        <div class="fs-20 fw-600 mb-16">Follow this blog</div>
        <div class="d-inline-flex justify-content-start align-items-center flex-wrap gap-24" data-bi-area="body_blog_follow">
            <a style="width: 24px; height: 24px; position: relative;" title="facebook" data-bi-id="post_page_body_blog_follow" data-bi-name="Azure DevOps Blog-facebook" aria-label="Follow Us on Facebook" target="_blank" href="https://www.facebook.com/AzureDevOps/"><img src="https://devblogs.microsoft.com/devops/wp-content/themes/devblogs-evo/images/social-icons/facebook.svg" alt="facebook"></a><a style="width: 24px; height: 24px; position: relative;" title="twitter" data-bi-id="post_page_body_blog_follow" data-bi-name="Azure DevOps Blog-twitter" aria-label="Follow Us on Twitter" target="_blank" href="https://twitter.com/AzureDevOps"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path class="dark-theme" d="M14.4821 10.6218L21.0389 3H19.4852L13.7919 9.61788L9.24467 3H4L10.8763 13.0074L4 21H5.55384L11.5661 14.0113L16.3683 21H21.613L14.4817 10.6218H14.4821ZM12.3539 13.0956L11.6572 12.0991L6.11372 4.16971H8.50033L12.974 10.5689L13.6707 11.5655L19.4859 19.8835H17.0993L12.3539 13.096V13.0956Z"></path></svg></a><a style="width: 24px; height: 24px; position: relative;" title="youtube" data-bi-id="post_page_body_blog_follow" data-bi-name="Azure DevOps Blog-youtube" aria-label="Follow Us on YouTube" target="_blank" href="https://www.youtube.com/azuredevops"><img src="https://devblogs.microsoft.com/devops/wp-content/themes/devblogs-evo/images/social-icons/youtube.svg" alt="youtube"></a><a style="width: 24px; height: 24px; position: relative;" title="RSS Feed" data-bi-id="post_page_body_blog_follow" data-bi-name="Azure DevOps Blog-rss-feed" aria-label="Subscribe to Our RSS Feed" target="_blank" href="https://devblogs.microsoft.com/devops/feed/"><svg xmlns="http://www.w3.org/2000/svg" class="dark-theme-rss" width="24" height="24" viewBox="0 0 24 24" fill="none"><path class="dark-theme" d="M6.25 3C4.45507 3 3 4.45507 3 6.25V17.75C3 19.5449 4.45507 21 6.25 21H17.75C19.5449 21 21 19.5449 21 17.75V6.25C21 4.45507 19.5449 3 17.75 3H6.25ZM6.75 7.5C6.34494 7.5 6 7.18276 6 6.7777V6.7233C6 6.33021 6.30507 6.00189 6.69816 6.00012L6.75 6C12.9632 6 18 11.0368 18 17.25L17.9999 17.3018C17.9981 17.6949 17.6698 18 17.2767 18H17.2223C16.8172 18 16.5 17.6551 16.5 17.25C16.5 11.8652 12.1348 7.5 6.75 7.5ZM13.294 18H13.2036C12.805 18 12.5 17.6486 12.5 17.25C12.5 14.0744 9.92564 11.5 6.75 11.5C6.35135 11.5 6 11.195 6 10.7964V10.706C6 10.3267 6.2871 10.0048 6.66639 10.0005C6.69422 10.0002 6.72209 10 6.75 10C10.7541 10 14 13.2459 14 17.25C14 17.2779 13.9998 17.3058 13.9995 17.3336C13.9952 17.7129 13.6733 18 13.294 18ZM7.5 18C6.67157 18 6 17.3284 6 16.5C6 15.6716 6.67157 15 7.5 15C8.32843 15 9 15.6716 9 16.5C9 17.3284 8.32843 18 7.5 18Z" fill="#DA3B01"></path></svg></a>        </div>
    </div>
</div>
    </div><!-- end max-width bottom section -->
  </div><!-- end comments bottom full-width section -->
</div>

<!-- Comment icon loader model / popup -->
<div class="modal fade bd-example-modal-sm" id="dev-cm-error-msg" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
  <div class="modal-dialog modal-sm modal-dialog-centered" style="margin: 0 auto;">
    <div class="modal-content">
      <div class="modal-body" style="text-align:center;">
      </div>
    </div>
  </div>
</div>

<!-- Comment icon cofirm model / popup -->
<div class="modal fade dev-cm-icon-modal" tabindex="-1" role="dialog" aria-labelledby="commentModalLabel" aria-hidden="true" id="mi-modal">
  <div class="modal-dialog modal-dialog-centered" style="margin: 0 auto; max-width:370px;">
    <div class="modal-content">
      <div class="modal-header" style="border-bottom: none;">
        <div class="modal-title" id="myModalLabel" style="font-size: 16px;">Are you sure you wish to delete this
          comment?</div>
        <!-- <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> -->
      </div>
      <div class="modal-footer" style="border-top: none;">
        <button type="button" class="btn btn-primary" id="modal-btn-si">OK</button>
        <button type="button" class="btn btn-secondary" id="modal-btn-no">Cancel</button>
      </div>
    </div>
  </div>
</div>
<!-- Code Header for Post detail pages and Code to append a click to copy button -->
  <script>
    let codeblocks = document.querySelectorAll("pre");

    // Create the SVG icon element
    const svgCodeIcon = `
                                              <svg xmlns="http://www.w3.org/2000/svg" class="dark-theme-copybtn" width="20" height="20" viewBox="0 0 20 20" fill="none"><path d="M8 2C6.89543 2 6 2.89543 6 4V14C6 15.1046 6.89543 16 8 16H14C15.1046 16 16 15.1046 16 14V4C16 2.89543 15.1046 2 14 2H8ZM7 4C7 3.44772 7.44772 3 8 3H14C14.5523 3 15 3.44772 15 4V14C15 14.5523 14.5523 15 14 15H8C7.44772 15 7 14.5523 7 14V4ZM4 6.00001C4 5.25973 4.4022 4.61339 5 4.26758V14.5C5 15.8807 6.11929 17 7.5 17H13.7324C13.3866 17.5978 12.7403 18 12 18H7.5C5.567 18 4 16.433 4 14.5V6.00001Z" fill="#616161"/></svg>
                                        `;

    codeblocks.forEach((block) => {
      if (navigator.clipboard) {
        let codeheader = document.createElement("div");
        codeheader.className = 'evo-codeheader';
        codeheader.innerHTML = '<div class="code-header d-flex align-items-center justify-content-end gap-4"><span class="language"></span><button class="copy-button d-flex align-items-center gap-4 fs-14 fw-600"> ' + svgCodeIcon + ' Copy</button></div>';

        block.insertAdjacentElement('beforebegin', codeheader);

        let button = codeheader.querySelector('.copy-button');
        button.addEventListener("click", async () => {
          let blockToCopy = block;
          await copyCode(blockToCopy, button);
        });
      }
    });
    async function copyCode(blockToCopy, button) {
      let code = blockToCopy.querySelector("code");
      let text = '';

      if (code) {
        text = code.innerText;
      } else {
        text = blockToCopy.innerText;
      }

      try {
        await navigator.clipboard.writeText(text);
      } catch (err) {
        console.error('Failed to copy:', err);
      }

      button.innerText = "Copied";

      setTimeout(() => {
        button.innerHTML = '' + svgCodeIcon + ' Copy';
      }, 1400);
    }
  </script>
<!-- End -->

<script type="text/javascript">
  jQuery(document).ready(function() {
      jQuery('.post-like a.like-button').on('focus', function() {
          jQuery('a.like-button').tooltip('show');
      });
      jQuery('.post-like a.like-button').on('focusout', function() {
          jQuery('a.like-button').tooltip('hide');
      });
  });
</script>

</div><!-- end .wrapper -->
</main><!-- end #main -->

<!-- Add a hidden dark theme button to trigger the toggle function -->
<div style="display:none;">
        
    </div>    <script>
        // Get iframe youtube video length
        var iframes = jQuery('iframe[src^="https://www.youtube.com/embed/"], iframe[src^="//www.youtube.com/embed/"], iframe[src^="http://www.youtube.com/embed/"], iframe[src^="www.youtube.com/embed/"], iframe[src^="youtube.com/embed/"], iframe[src^="https://www.youtube.com/"]');
        var i, len;
        len = iframes.length;

        // Country JSON data
        function funJSONData(countryData) {
            if (countryData.Country == 'CN') {
                if (len > 0) {
                    for (var i = 0; i < len; ++i) {
                        var el = iframes[i];
                        el.parentNode.removeChild(el);
                    }
                }
            }
        }
        jQuery(document).ready(function () {
            // Remove youtube videos from page
                    });
    </script>
    <link rel="stylesheet" id="buttons-css" href="https://devblogs.microsoft.com/devops/wp-includes/css/buttons.min.css" type="text/css" media="all">
<script type="text/javascript" id="commentsvote-js-extra">
/* <![CDATA[ */
var votecommentajax = {"ajaxurl":"https:\/\/devblogs.microsoft.com\/devops\/wp-admin\/admin-ajax.php"};
/* ]]> */
</script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-content/plugins/devblogs-comments-evo/admin/js/commentsvote.js?ver=1.1" id="commentsvote-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-content/plugins/metronet-profile-picture/js/mpp-frontend.js?ver=2.6.3" id="mpp_gutenberg_tabs-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-content/plugins/devblogs-evo-breadcrumbs/assets/breadcrumbs.min.js?ver=1.7" id="evo-breadcrumb-script-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-content/plugins/devblogs-evo-breadcrumbs/assets/breadcrumbs-schema.js?ver=1733860699" id="evo-breadcrumb-schema-script-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-content/plugins/shortcode-toc/assets/vendor/js/anchorific.js?ver=1.0.3" id="anchorific-js"></script>
<script type="text/javascript" id="code-prettify-js-before">
/* <![CDATA[ */
var codePrettifyLoaderBaseUrl = "https:\/\/devblogs.microsoft.com\/devops\/wp-content\/plugins\/code-prettify\/prettify";
/* ]]> */
</script>

<script type="text/javascript" id="devblogs-evo-scripts-js-extra">
/* <![CDATA[ */
var devblog_url = {"siteurl":"https:\/\/devblogs.microsoft.com\/devops"};
var devblogs_ajax = {"ajaxurl":"https:\/\/devblogs.microsoft.com\/devops\/wp-admin\/admin-ajax.php"};
var ajax_object = {"is_single":"1"};
var devblogs_ajax2 = {"ajaxurl":"https:\/\/devblogs.microsoft.com\/devops\/wp-admin\/admin-ajax.php"};
var devblogs_ajax_evo = {"ajaxurl":"https:\/\/devblogs.microsoft.com\/devops\/wp-admin\/admin-ajax.php"};
/* ]]> */
</script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-content/themes/devblogs-evo/js/theme.min.js?ver=1.2.0.1729015445" id="devblogs-evo-scripts-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-content/themes/devblogs-evo/js/custom-theme.min.js?ver=1.1" id="custom-theme-js-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-includes/js/comment-reply.min.js" id="comment-reply-js" async="async" data-wp-strategy="async"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-content/themes/devblogs-evo/js/single/toc.js?ver=1731451917" id="toc-script-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-content/themes/devblogs-evo/js/single/add-likes.js?ver=1722361033" id="like-script-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-content/themes/devblogs-evo/js/single/social-sidebar.js?ver=1725380830" id="social-sidebar-script-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-content/themes/devblogs-evo/js/single/read-more.js?ver=1725986573" id="read-more-script-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-content/themes/devblogs-evo/js/single/heading-links.js?ver=1725380830" id="heading-links-script-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-content/themes/devblogs-evo/js/theme-picker.min.js?ver=1731007193" id="theme-picker-script-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-content/themes/devblogs-evo/js/dropdown-menu.min.js?ver=1729185945" id="dropdown-menu-script-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-content/themes/devblogs-evo/js/accordion-toggle.min.js?ver=1727281833" id="accordion-toggle-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-content/themes/devblogs-evo/js/gifffer.min.js?ver=1.1" id="gifffer-js-js"></script>
<script type="text/javascript" id="dev-comments-evo-js-extra">
/* <![CDATA[ */
var siteurl = {"devblogsiteurl":"https:\/\/devblogs.microsoft.com\/devops"};
var devblogsajax = {"ajaxurl":"https:\/\/devblogs.microsoft.com\/devops\/wp-admin\/admin-ajax.php"};
var devblogsPost = {"ID":"69894"};
/* ]]> */
</script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-content/plugins/devblogs-comments-evo/admin/js/simplecomments.min.js?ver=4.38" id="dev-comments-evo-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-includes/js/clipboard.min.js?ver=2.0.11" id="clipboard-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-content/plugins/wp-featherlight/js/wpFeatherlight.pkgd.min.js?ver=1.3.4" id="wp-featherlight-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-content/plugins/devblogs-blocks/assets/highlight.js" id="highlight-script-js"></script>
<script type="text/javascript" id="utils-js-extra">
/* <![CDATA[ */
var userSettings = {"url":"\/","uid":"0","time":"1733941478","secure":"1"};
/* ]]> */
</script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-includes/js/utils.min.js" id="utils-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-admin/js/editor.min.js" id="editor-js"></script>
<script type="text/javascript" id="editor-js-after">
/* <![CDATA[ */
window.wp.oldEditor = window.wp.editor;
/* ]]> */
</script>
<script type="text/javascript" id="quicktags-js-extra">
/* <![CDATA[ */
var quicktagsL10n = {"closeAllOpenTags":"Close all open tags","closeTags":"close tags","enterURL":"Enter the URL","enterImageURL":"Enter the URL of the image","enterImageDescription":"Enter a description of the image","textdirection":"text direction","toggleTextdirection":"Toggle Editor Text Direction","dfw":"Distraction-free writing mode","strong":"Bold","strongClose":"Close bold tag","em":"Italic","emClose":"Close italic tag","link":"Insert link","blockquote":"Blockquote","blockquoteClose":"Close blockquote tag","del":"Deleted text (strikethrough)","delClose":"Close deleted text tag","ins":"Inserted text","insClose":"Close inserted text tag","image":"Insert image","ul":"Bulleted list","ulClose":"Close bulleted list tag","ol":"Numbered list","olClose":"Close numbered list tag","li":"List item","liClose":"Close list item tag","code":"Code","codeClose":"Close code tag","more":"Insert Read More tag"};
/* ]]> */
</script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-includes/js/quicktags.min.js" id="quicktags-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-includes/js/hoverIntent.min.js?ver=1.10.2" id="hoverIntent-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-includes/js/dist/dom-ready.min.js?ver=f77871ff7694fffea381" id="wp-dom-ready-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-includes/js/dist/hooks.min.js?ver=4d63a3d491d11ffd8ac6" id="wp-hooks-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-includes/js/dist/i18n.min.js?ver=5e580eb46a90c2b997e6" id="wp-i18n-js"></script>
<script type="text/javascript" id="wp-i18n-js-after">
/* <![CDATA[ */
wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
/* ]]> */
</script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-includes/js/dist/a11y.min.js?ver=3156534cc54473497e14" id="wp-a11y-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-admin/js/common.min.js" id="common-js"></script>
<script type="text/javascript" id="wplink-js-extra">
/* <![CDATA[ */
var wpLinkL10n = {"title":"Insert\/edit link","update":"Update","save":"Add Link","noTitle":"(no title)","noMatchesFound":"No results found.","linkSelected":"Link selected.","linkInserted":"Link inserted.","minInputLength":"3"};
/* ]]> */
</script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-includes/js/wplink.min.js" id="wplink-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-includes/js/jquery/ui/core.min.js?ver=1.13.3" id="jquery-ui-core-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-includes/js/jquery/ui/menu.min.js?ver=1.13.3" id="jquery-ui-menu-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-includes/js/jquery/ui/autocomplete.min.js?ver=1.13.3" id="jquery-ui-autocomplete-js"></script>

		<script type="text/javascript">
		tinyMCEPreInit = {
			baseURL: "https://devblogs.microsoft.com/devops/wp-includes/js/tinymce",
			suffix: ".min",
						mceInit: {'comment':{theme:"modern",skin:"lightgray",language:"en",formats:{alignleft: [{selector: "p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li", styles: {textAlign:"left"}},{selector: "img,table,dl.wp-caption", classes: "alignleft"}],aligncenter: [{selector: "p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li", styles: {textAlign:"center"}},{selector: "img,table,dl.wp-caption", classes: "aligncenter"}],alignright: [{selector: "p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li", styles: {textAlign:"right"}},{selector: "img,table,dl.wp-caption", classes: "alignright"}],strikethrough: {inline: "del"}},relative_urls:false,remove_script_host:false,convert_urls:false,browser_spellcheck:true,fix_list_elements:true,entities:"38,amp,60,lt,62,gt",entity_encoding:"raw",keep_styles:false,cache_suffix:"wp-mce-49110-20201110-tadv-5900",resize:"vertical",menubar:true,branding:false,preview_styles:"font-family font-size font-weight font-style text-decoration text-transform",end_container_on_empty_block:true,wpeditimage_html5_captions:true,wp_lang_attr:"en-US",wp_shortcut_labels:{"Heading 1":"access1","Heading 2":"access2","Heading 3":"access3","Heading 4":"access4","Heading 5":"access5","Heading 6":"access6","Paragraph":"access7","Blockquote":"accessQ","Underline":"metaU","Strikethrough":"accessD","Bold":"metaB","Italic":"metaI","Code":"accessX","Align center":"accessC","Align right":"accessR","Align left":"accessL","Justify":"accessJ","Cut":"metaX","Copy":"metaC","Paste":"metaV","Select all":"metaA","Undo":"metaZ","Redo":"metaY","Bullet list":"accessU","Numbered list":"accessO","Insert\/edit image":"accessM","Insert\/edit link":"metaK","Remove link":"accessS","Toolbar Toggle":"accessZ","Insert Read More tag":"accessT","Insert Page Break tag":"accessP","Distraction-free writing mode":"accessW","Add Media":"accessM","Keyboard Shortcuts":"accessH"},content_css:"https://devblogs.microsoft.com/devops/wp-includes/css/dashicons.min.css?ver=6.7.1,https://devblogs.microsoft.com/devops/wp-includes/js/tinymce/skins/wordpress/wp-content.css?ver=6.7.1",plugins:"charmap,colorpicker,hr,lists,media,paste,tabfocus,textcolor,fullscreen,wordpress,wpautoresize,wpeditimage,wpemoji,wpgallery,wplink,wpdialogs,wptextpattern,wpview,image",external_plugins:{"insertdatetime":"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/plugins\/tinymce-advanced\/mce\/insertdatetime\/plugin.min.js","table":"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/plugins\/tinymce-advanced\/mce\/table\/plugin.min.js","advlist":"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/plugins\/tinymce-advanced\/mce\/advlist\/plugin.min.js","wptadv":"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/plugins\/tinymce-advanced\/mce\/wptadv\/plugin.min.js","anchor":"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/plugins\/tinymce-advanced\/mce\/anchor\/plugin.min.js","code":"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/plugins\/tinymce-advanced\/mce\/code\/plugin.min.js","nonbreaking":"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/plugins\/tinymce-advanced\/mce\/nonbreaking\/plugin.min.js","print":"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/plugins\/tinymce-advanced\/mce\/print\/plugin.min.js","searchreplace":"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/plugins\/tinymce-advanced\/mce\/searchreplace\/plugin.min.js","visualblocks":"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/plugins\/tinymce-advanced\/mce\/visualblocks\/plugin.min.js","visualchars":"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/plugins\/tinymce-advanced\/mce\/visualchars\/plugin.min.js"},selector:"#comment",wpautop:true,indent:false,toolbar1:"formatselect,bold,italic,blockquote,bullist,numlist,alignleft,aligncenter,alignright,alignjustify,link,unlink,undo,redo,wp_code,spellchecker",toolbar2:"fontsizeselect,outdent,indent,pastetext,removeformat,charmap,wp_more,subscript,superscript,strikethrough,insertdatetime,forecolor,table,wp_help",toolbar3:"",toolbar4:"",tabfocus_elements:":prev,:next",body_class:"comment post-type-post post-status-publish post-format-standard page-template-default locale-en-us",image_advtab:true,rel_list:[{text: "None", value: ""}, {text: "Nofollow", value: "nofollow noreferrer"}],removed_menuitems:"newdocument",wordpress_adv_hidden:false,table_toolbar:false,table_responsive_width:true,table_default_attributes:{},block_formats:"Paragraph=p;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6;Preformatted=pre;"}},
			qtInit: {'comment':{id:"comment",buttons:"strong,em,del,link"},'comment_reply_content':{id:"comment_reply_content",buttons:"strong,em,del,link,crayon"}},
			ref: {plugins:"charmap,colorpicker,hr,lists,media,paste,tabfocus,textcolor,fullscreen,wordpress,wpautoresize,wpeditimage,wpemoji,wpgallery,wplink,wpdialogs,wptextpattern,wpview,image",theme:"modern",language:"en"},
			load_ext: function(url,lang){var sl=tinymce.ScriptLoader;sl.markDone(url+'/langs/'+lang+'.js');sl.markDone(url+'/langs/'+lang+'_dlg.js');}
		};
		</script>
		<script type="text/javascript">
            window._nslDOMReady = function (callback) {
                if ( document.readyState === "complete" || document.readyState === "interactive" ) {
                    callback();
                } else {
                    document.addEventListener( "DOMContentLoaded", callback );
                }
            };
            </script><script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-includes/js/tinymce/tinymce.min.js?ver=49110-20201110" id="wp-tinymce-root-js"></script>
<script type="text/javascript" src="https://devblogs.microsoft.com/devops/wp-includes/js/tinymce/plugins/compat3x/plugin.min.js?ver=49110-20201110" id="wp-tinymce-js"></script>
<script type="text/javascript">
tinymce.addI18n( 'en', {"Ok":"OK","Bullet list":"Bulleted list","Insert\/Edit code sample":"Insert\/edit code sample","Url":"URL","Spellcheck":"Check Spelling","Row properties":"Table row properties","Cell properties":"Table cell properties","Cols":"Columns","Paste row before":"Paste table row before","Paste row after":"Paste table row after","Cut row":"Cut table row","Copy row":"Copy table row","Merge cells":"Merge table cells","Split cell":"Split table cell","Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.":"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.\n\nIf you are looking to paste rich content from Microsoft Word, try turning this option off. The editor will clean up text pasted from Word automatically.","Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help":"Rich Text Area. Press Alt-Shift-H for help.","You have unsaved changes are you sure you want to navigate away?":"The changes you made will be lost if you navigate away from this page.","Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.":"Your browser does not support direct access to the clipboard. Please use keyboard shortcuts or your browser\u2019s edit menu instead.","Edit|button":"Edit"});
tinymce.ScriptLoader.markDone( 'https://devblogs.microsoft.com/devops/wp-includes/js/tinymce/langs/en.js' );
</script>
		<script type="text/javascript">
		var ajaxurl = "/devops/wp-admin/admin-ajax.php";
		( function() {
			var initialized = [];
			var initialize  = function() {
				var init, id, inPostbox, $wrap;
				var readyState = document.readyState;

				if ( readyState !== 'complete' && readyState !== 'interactive' ) {
					return;
				}

				for ( id in tinyMCEPreInit.mceInit ) {
					if ( initialized.indexOf( id ) > -1 ) {
						continue;
					}

					init      = tinyMCEPreInit.mceInit[id];
					$wrap     = tinymce.$( '#wp-' + id + '-wrap' );
					inPostbox = $wrap.parents( '.postbox' ).length > 0;

					if (
						! init.wp_skip_init &&
						( $wrap.hasClass( 'tmce-active' ) || ! tinyMCEPreInit.qtInit.hasOwnProperty( id ) ) &&
						( readyState === 'complete' || ( ! inPostbox && readyState === 'interactive' ) )
					) {
						tinymce.init( init );
						initialized.push( id );

						if ( ! window.wpActiveEditor ) {
							window.wpActiveEditor = id;
						}
					}
				}
			}

			if ( typeof tinymce !== 'undefined' ) {
				if ( tinymce.Env.ie && tinymce.Env.ie < 11 ) {
					tinymce.$( '.wp-editor-wrap ' ).removeClass( 'tmce-active' ).addClass( 'html-active' );
				} else {
					if ( document.readyState === 'complete' ) {
						initialize();
					} else {
						document.addEventListener( 'readystatechange', initialize );
					}
				}
			}

			if ( typeof quicktags !== 'undefined' ) {
				for ( id in tinyMCEPreInit.qtInit ) {
					quicktags( tinyMCEPreInit.qtInit[id] );

					if ( ! window.wpActiveEditor ) {
						window.wpActiveEditor = id;
					}
				}
			}
		}());
		</script>
				<div id="wp-link-backdrop" style="display: none"></div>
		<div id="wp-link-wrap" class="wp-core-ui" style="display: none" role="dialog" aria-modal="true" aria-labelledby="link-modal-title">
		<form id="wp-link" tabindex="-1">
		<input type="hidden" id="_ajax_linking_nonce" name="_ajax_linking_nonce" value="eb581f4b1a">		<h1 id="link-modal-title">Insert/edit link</h1>
		<button type="button" id="wp-link-close"><span class="screen-reader-text">
			Close		</span></button>
		<div id="link-selector">
			<div id="link-options">
				<p class="howto" id="wplink-enter-url">Enter the destination URL</p>
				<div>
					<label><span>URL</span>
					<input id="wp-link-url" type="text" aria-describedby="wplink-enter-url"></label>
				</div>
				<div class="wp-link-text-field">
					<label><span>Link Text</span>
					<input id="wp-link-text" type="text"></label>
				</div>
				<div class="link-target">
					<label><span></span>
					<input type="checkbox" id="wp-link-target"> Open link in a new tab</label>
				</div>
			</div>
			<p class="howto" id="wplink-link-existing-content">Or link to existing content</p>
			<div id="search-panel">
				<div class="link-search-wrapper">
					<label>
						<span class="search-label">Search</span>
						<input type="search" id="wp-link-search" class="link-search-field" autocomplete="off" aria-describedby="wplink-link-existing-content">
						<span class="spinner"></span>
					</label>
				</div>
				<div id="search-results" class="query-results" tabindex="0">
					<ul></ul>
					<div class="river-waiting">
						<span class="spinner"></span>
					</div>
				</div>
				<div id="most-recent-results" class="query-results" tabindex="0">
					<div class="query-notice" id="query-notice-message">
						<em class="query-notice-default">No search term specified. Showing recent items.</em>
						<em class="query-notice-hint screen-reader-text">
							Search or use up and down arrow keys to select an item.						</em>
					</div>
					<ul></ul>
					<div class="river-waiting">
						<span class="spinner"></span>
					</div>
				</div>
			</div>
		</div>
		<div class="submitbox">
			<div id="wp-link-cancel">
				<button type="button" class="button">Cancel</button>
			</div>
			<div id="wp-link-update">
				<input type="submit" value="Add Link" class="button button-primary" id="wp-link-submit" name="wp-link-submit">
			</div>
		</div>
		</form>
		</div>
		    <script type="text/javascript">
        jQuery(document).ready(function ($) {
            // Link popup checkbox checked
            $('#wp-link .link-target input').prop('checked', true);

            // Comment anchor href open in new tab
            // $("#comments a").filter(function () {
            //     return this.indexOf('http://') > -1 || this.indexOf('https://') > -1
            // }).attr("target","_blank");
        });
    </script>
    		<script type="text/javascript">
			var tinyMCE_object = {"button_name":"CTA Button","button_title":"CTA Button Settings"};
		</script><script type="text/javascript">(function (undefined) {let scriptOptions={"_localizedStrings":{"redirect_overlay_title":"Hold On","redirect_overlay_text":"You are being redirected to another page,<br>it may take a few seconds.","webview_notification_text":"The selected provider doesn't support embedded browsers!"},"_targetWindow":"prefer-popup","_redirectOverlay":"overlay-with-spinner-and-message","_unsupportedWebviewBehavior":""};
/**
 * Used when Cross-Origin-Opener-Policy blocked the access to the opener. We can't have a reference of the opened windows, so we should attempt to refresh only the windows that has opened popups.
 */
window._nslHasOpenedPopup = false;
window._nslWebViewNoticeElement = null;

window.NSLPopup = function (url, title, w, h) {
    const userAgent = navigator.userAgent,
        mobile = function () {
            return /\b(iPhone|iP[ao]d)/.test(userAgent) ||
                /\b(iP[ao]d)/.test(userAgent) ||
                /Android/i.test(userAgent) ||
                /Mobile/i.test(userAgent);
        },
        screenX = window.screenX !== undefined ? window.screenX : window.screenLeft,
        screenY = window.screenY !== undefined ? window.screenY : window.screenTop,
        outerWidth = window.outerWidth !== undefined ? window.outerWidth : document.documentElement.clientWidth,
        outerHeight = window.outerHeight !== undefined ? window.outerHeight : document.documentElement.clientHeight - 22,
        targetWidth = mobile() ? null : w,
        targetHeight = mobile() ? null : h,
        left = parseInt(screenX + (outerWidth - targetWidth) / 2, 10),
        right = parseInt(screenY + (outerHeight - targetHeight) / 2.5, 10),
        features = [];
    if (targetWidth !== null) {
        features.push('width=' + targetWidth);
    }
    if (targetHeight !== null) {
        features.push('height=' + targetHeight);
    }
    features.push('left=' + left);
    features.push('top=' + right);
    features.push('scrollbars=1');

    const newWindow = window.open(url, title, features.join(','));

    if (window.focus) {
        newWindow.focus();
    }

    window._nslHasOpenedPopup = true;

    return newWindow;
};

let isWebView = null;

function checkWebView() {
    if (isWebView === null) {
        function _detectOS(ua) {
            if (/Android/.test(ua)) {
                return "Android";
            } else if (/iPhone|iPad|iPod/.test(ua)) {
                return "iOS";
            } else if (/Windows/.test(ua)) {
                return "Windows";
            } else if (/Mac OS X/.test(ua)) {
                return "Mac";
            } else if (/CrOS/.test(ua)) {
                return "Chrome OS";
            } else if (/Firefox/.test(ua)) {
                return "Firefox OS";
            }
            return "";
        }

        function _detectBrowser(ua) {
            let android = /Android/.test(ua);

            if (/Opera Mini/.test(ua) || / OPR/.test(ua) || / OPT/.test(ua)) {
                return "Opera";
            } else if (/CriOS/.test(ua)) {
                return "Chrome for iOS";
            } else if (/Edge/.test(ua)) {
                return "Edge";
            } else if (android && /Silk\//.test(ua)) {
                return "Silk";
            } else if (/Chrome/.test(ua)) {
                return "Chrome";
            } else if (/Firefox/.test(ua)) {
                return "Firefox";
            } else if (android) {
                return "AOSP";
            } else if (/MSIE|Trident/.test(ua)) {
                return "IE";
            } else if (/Safari\//.test(ua)) {
                return "Safari";
            } else if (/AppleWebKit/.test(ua)) {
                return "WebKit";
            }
            return "";
        }

        function _detectBrowserVersion(ua, browser) {
            if (browser === "Opera") {
                return /Opera Mini/.test(ua) ? _getVersion(ua, "Opera Mini/") :
                    / OPR/.test(ua) ? _getVersion(ua, " OPR/") :
                        _getVersion(ua, " OPT/");
            } else if (browser === "Chrome for iOS") {
                return _getVersion(ua, "CriOS/");
            } else if (browser === "Edge") {
                return _getVersion(ua, "Edge/");
            } else if (browser === "Chrome") {
                return _getVersion(ua, "Chrome/");
            } else if (browser === "Firefox") {
                return _getVersion(ua, "Firefox/");
            } else if (browser === "Silk") {
                return _getVersion(ua, "Silk/");
            } else if (browser === "AOSP") {
                return _getVersion(ua, "Version/");
            } else if (browser === "IE") {
                return /IEMobile/.test(ua) ? _getVersion(ua, "IEMobile/") :
                    /MSIE/.test(ua) ? _getVersion(ua, "MSIE ")
                        :
                        _getVersion(ua, "rv:");
            } else if (browser === "Safari") {
                return _getVersion(ua, "Version/");
            } else if (browser === "WebKit") {
                return _getVersion(ua, "WebKit/");
            }
            return "0.0.0";
        }

        function _getVersion(ua, token) {
            try {
                return _normalizeSemverString(ua.split(token)[1].trim().split(/[^\w\.]/)[0]);
            } catch (o_O) {
            }
            return "0.0.0";
        }

        function _normalizeSemverString(version) {
            const ary = version.split(/[\._]/);
            return (parseInt(ary[0], 10) || 0) + "." +
                (parseInt(ary[1], 10) || 0) + "." +
                (parseInt(ary[2], 10) || 0);
        }

        function _isWebView(ua, os, browser, version, options) {
            switch (os + browser) {
                case "iOSSafari":
                    return false;
                case "iOSWebKit":
                    return _isWebView_iOS(options);
                case "AndroidAOSP":
                    return false;
                case "AndroidChrome":
                    return parseFloat(version) >= 42 ? /; wv/.test(ua) : /\d{2}\.0\.0/.test(version) ? true : _isWebView_Android(options);
            }
            return false;
        }

        function _isWebView_iOS(options) {
            const document = (window["document"] || {});

            if ("WEB_VIEW" in options) {
                return options["WEB_VIEW"];
            }
            return !("fullscreenEnabled" in document || "webkitFullscreenEnabled" in document || false);
        }

        function _isWebView_Android(options) {
            if ("WEB_VIEW" in options) {
                return options["WEB_VIEW"];
            }
            return !("requestFileSystem" in window || "webkitRequestFileSystem" in window || false);
        }

        const options = {},
            nav = window.navigator || {},
            ua = nav.userAgent || "",
            os = _detectOS(ua),
            browser = _detectBrowser(ua),
            browserVersion = _detectBrowserVersion(ua, browser);

        isWebView = _isWebView(ua, os, browser, browserVersion, options);
    }

    return isWebView;
}

function isAllowedWebViewForUserAgent(provider) {
    const facebookAllowedWebViews = [
        'Instagram',
        'FBAV',
        'FBAN'
    ];
    let whitelist = [];

    if (provider && provider === 'facebook') {
        whitelist = facebookAllowedWebViews;
    }

    const nav = window.navigator || {},
        ua = nav.userAgent || "";

    if (whitelist.length && ua.match(new RegExp(whitelist.join('|')))) {
        return true;
    }

    return false;
}

function disableButtonInWebView(providerButtonElement) {
    if (providerButtonElement) {
        providerButtonElement.classList.add('nsl-disabled-provider');
        providerButtonElement.setAttribute('href', '#');

        providerButtonElement.addEventListener('pointerdown', (e) => {
            if (!window._nslWebViewNoticeElement) {
                window._nslWebViewNoticeElement = document.createElement('div');
                window._nslWebViewNoticeElement.id = "nsl-notices-fallback";
                window._nslWebViewNoticeElement.addEventListener('pointerdown', function (e) {
                    this.parentNode.removeChild(this);
                    window._nslWebViewNoticeElement = null;
                });
                const webviewNoticeHTML = '<div class="error"><p>' + scriptOptions._localizedStrings.webview_notification_text + '</p></div>';

                window._nslWebViewNoticeElement.insertAdjacentHTML("afterbegin", webviewNoticeHTML);
                document.body.appendChild(window._nslWebViewNoticeElement);
            }
        });
    }

}

window._nslDOMReady(function () {

    window.nslRedirect = function (url) {
        if (scriptOptions._redirectOverlay) {
            const overlay = document.createElement('div');
            overlay.id = "nsl-redirect-overlay";
            let overlayHTML = '';
            const overlayContainer = "<div id='nsl-redirect-overlay-container'>",
                overlayContainerClose = "</div>",
                overlaySpinner = "<div id='nsl-redirect-overlay-spinner'></div>",
                overlayTitle = "<p id='nsl-redirect-overlay-title'>" + scriptOptions._localizedStrings.redirect_overlay_title + "</p>",
                overlayText = "<p id='nsl-redirect-overlay-text'>" + scriptOptions._localizedStrings.redirect_overlay_text + "</p>";

            switch (scriptOptions._redirectOverlay) {
                case "overlay-only":
                    break;
                case "overlay-with-spinner":
                    overlayHTML = overlayContainer + overlaySpinner + overlayContainerClose;
                    break;
                default:
                    overlayHTML = overlayContainer + overlaySpinner + overlayTitle + overlayText + overlayContainerClose;
                    break;
            }

            overlay.insertAdjacentHTML("afterbegin", overlayHTML);
            document.body.appendChild(overlay);
        }

        window.location = url;
    };

    let targetWindow = scriptOptions._targetWindow || 'prefer-popup',
        lastPopup = false;


    const buttonLinks = document.querySelectorAll(' a[data-plugin="nsl"][data-action="connect"], a[data-plugin="nsl"][data-action="link"]');
    buttonLinks.forEach(function (buttonLink) {
        buttonLink.addEventListener('click', function (e) {
            if (lastPopup && !lastPopup.closed) {
                e.preventDefault();
                lastPopup.focus();
            } else {

                let href = this.href,
                    success = false;
                if (href.indexOf('?') !== -1) {
                    href += '&';
                } else {
                    href += '?';
                }

                const redirectTo = this.dataset.redirect;
                if (redirectTo === 'current') {
                    href += 'redirect=' + encodeURIComponent(window.location.href) + '&';
                } else if (redirectTo && redirectTo !== '') {
                    href += 'redirect=' + encodeURIComponent(redirectTo) + '&';
                }

                if (targetWindow !== 'prefer-same-window' && checkWebView()) {
                    targetWindow = 'prefer-same-window';
                }

                if (targetWindow === 'prefer-popup') {
                    lastPopup = NSLPopup(href + 'display=popup', 'nsl-social-connect', this.dataset.popupwidth, this.dataset.popupheight);
                    if (lastPopup) {
                        success = true;
                        e.preventDefault();
                    }
                } else if (targetWindow === 'prefer-new-tab') {
                    const newTab = window.open(href + 'display=popup', '_blank');
                    if (newTab) {
                        if (window.focus) {
                            newTab.focus();
                        }
                        success = true;
                        window._nslHasOpenedPopup = true;
                        e.preventDefault();
                    }
                }

                if (!success) {
                    window.location = href;
                    e.preventDefault();
                }
            }
        });
    });

    let buttonCountChanged = false;

    const googleLoginButtons = document.querySelectorAll(' a[data-plugin="nsl"][data-provider="google"]');
    if (googleLoginButtons.length && checkWebView()) {
        googleLoginButtons.forEach(function (googleLoginButton) {
            if (scriptOptions._unsupportedWebviewBehavior === 'disable-button') {
                disableButtonInWebView(googleLoginButton);
            } else {
                googleLoginButton.remove();
                buttonCountChanged = true;
            }
        });
    }

    const facebookLoginButtons = document.querySelectorAll(' a[data-plugin="nsl"][data-provider="facebook"]');
    if (facebookLoginButtons.length && checkWebView() && /Android/.test(window.navigator.userAgent) && !isAllowedWebViewForUserAgent('facebook')) {
        facebookLoginButtons.forEach(function (facebookLoginButton) {
            if (scriptOptions._unsupportedWebviewBehavior === 'disable-button') {
                disableButtonInWebView(facebookLoginButton);
            } else {
                facebookLoginButton.remove();
                buttonCountChanged = true;
            }
        });
    }

    const separators = document.querySelectorAll('div.nsl-separator');
    if (buttonCountChanged && separators.length) {
        separators.forEach(function (separator) {
            const separatorParentNode = separator.parentNode;
            if (separatorParentNode) {
                const separatorButtonContainer = separatorParentNode.querySelector('div.nsl-container-buttons');
                if (separatorButtonContainer && !separatorButtonContainer.hasChildNodes()) {
                    separator.remove();
                }
            }
        })
    }
});

/**
 * Cross-Origin-Opener-Policy blocked the access to the opener
 */
if (typeof BroadcastChannel === "function") {
    const _nslLoginBroadCastChannel = new BroadcastChannel('nsl_login_broadcast_channel');
    _nslLoginBroadCastChannel.onmessage = (event) => {
        if (window?._nslHasOpenedPopup && event.data?.action === 'redirect') {
            window._nslHasOpenedPopup = false;

            const url = event.data?.href;
            _nslLoginBroadCastChannel.close();
            if (typeof window.nslRedirect === 'function') {
                window.nslRedirect(url);
            } else {
                window.opener.location = url;
            }
        }
    };
}})();</script>		<script type="text/javascript">
			QTags.addButton( 'customcode', 'code', add_code,'','','',110);
			// call back function
			function add_code() {
				jQuery("#code-text").val("");
				jQuery('#codeModal').modal('show');
				// Model textarea focus
				jQuery('#codeModal').on('shown.bs.modal', function () {
					jQuery(this).find('#code-text').focus();
				});
			}

			// Code form add
			function myCodeFunction() {
				jQuery("myForm").submit();
				var codeVal = jQuery("#code-text").val();
				if ( codeVal ) {
					jQuery('#codeModal').modal('hide');
					QTags.insertContent('<pre class="prettyprint">'+ codeVal +'</pre>');
				}
			}
			function myCodeCancelFunction() {
				jQuery('#codeModal').modal('hide');
				jQuery('[id$=customcode]').focus();
			}
		</script>
		<!-- Model form for code insert  -->
	<div class="modal fade" id="codeModal" tabindex="-1" role="dialog" aria-labelledby="codeModalLabel" aria-hidden="true">
	<div class="modal-dialog modal-dialog-centered" role="document">
		<div class="modal-content">
		<div class="modal-header">
			<h5 class="modal-title" id="codeModalLabel">Code Block</h5>
			<button type="button" class="close" onclick="myCodeCancelFunction()" data-dismiss="modal" aria-label="Close">
			<span aria-hidden="true">×</span>
			</button>
		</div>
		<form id="myForm" action="#">
			<div class="modal-body">
				<div class="form-group">
					<label for="code-text">Paste your code snippet</label>
					<textarea class="form-control" id="code-text" style="height: 150px;"></textarea>
				</div>
			</div>
			<div class="modal-footer">
				<button type="button" onclick="myCodeFunction()" class="btn btn-primary">Ok</button>
				<button type="button" name="Cancel" onclick="myCodeCancelFunction()" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
			</div>
		</form>
		</div>
	</div>
	</div>

<div class="back-comment-buttons" data-bi-area="sidebar">
  <style>
    .evo-right-sidebar {
        position: fixed !important;
        right: 10px;
        bottom: 188px;
    }

    .evo-sidebar-button {
        display: none;
        visibility: hidden;
        padding: 0;        
        z-index: 99999;
        border-radius: 50%;
        margin-bottom: 1rem;
    }

    .evo-sidebar-button:hover {
        text-decoration: none;
    }

    .evo-sidebar-button.active {
        display: flex;
        visibility: visible;
    }

    .evo-sidebar-button-inner {
        padding: 5px 8.5px;
        border-radius: 50%;
        background: var(--clr-card-bg);
        box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.14), 0px 0px 2px 0px rgba(0, 0, 0, 0.12);
        color: var(--clr-landing-navbar);
    }

    .evo-sidebar-button-inner i,
    .evo-sidebar-button-inner i::before {
        color: var(--clr-landing-navbar);
    }
</style>

<div class="evo-right-sidebar">
    <a data-bi-id="click back to top of page" data-bi-name="Back to top" href="#page" title="Back to top" aria-label="click back to top of page" class="evo-sidebar-button back-to-top">
        <span class="evo-sidebar-button-inner">
            <svg width="30" height="30" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M39.5607 32.0607C38.9749 32.6464 38.0251 32.6464 37.4393 32.0607L24 18.6213L10.5607 32.0607C9.97487 32.6464 9.02513 32.6464 8.43934 32.0607C7.85355 31.4749 7.85355 30.5251 8.43934 29.9393L22.9393 15.4393C23.5251 14.8536 24.4749 14.8536 25.0607 15.4393L39.5607 29.9393C40.1464 30.5251 40.1464 31.4749 39.5607 32.0607Z" fill="currentColor"></path>
            </svg>
        </span>
    </a>
</div>
</div>

<!-- Usabilla feedback button -->
<div id="usabilla-button" class="vscom-usabilla-button">
  <a tabindex="0" id="usbl-integrated-button" data-bi-area="sidebar" data-bi-id="Usabilla feedback button" data-bi-name="Usabilla feedback button" href="javascript:" class="vscom-usabilla-link" role="button" onkeypress="if(event.keyCode==32||event.keyCode==13){event.preventDefault();var bt = document.getElementById('usbl-integrated-button');bt.click(event);};">
    <p class="vscom-usabilla-text">
      Feedback    </p>
  </a>
</div>
<script type="text/javascript">
  /*{literal}<![CDATA[*/
  window.lightningjs || function (c) { function g(b, d) { d && (d += (/\?/.test(d) ? "&" : "?") + "lv=1"); c[b] || function () { var i = window, h = document, j = b, g = h.location.protocol, l = "load", k = 0; (function () { function b() { a.P(l); a.w = 1; c[j]("_load") } c[j] = function () { function m() { m.id = e; return c[j].apply(m, arguments) } var b, e = ++k; b = this && this != i ? this.id || 0 : 0; (a.s = a.s || []).push([e, b, arguments]); m.then = function (b, c, h) { var d = a.fh[e] = a.fh[e] || [], j = a.eh[e] = a.eh[e] || [], f = a.ph[e] = a.ph[e] || []; b && d.push(b); c && j.push(c); h && f.push(h); return m }; return m }; var a = c[j]._ = {}; a.fh = {}; a.eh = {}; a.ph = {}; a.l = d ? d.replace(/^\/\//, (g == "https:" ? g : "http:") + "//") : d; a.p = { 0: +new Date }; a.P = function (b) { a.p[b] = new Date - a.p[0] }; a.w && b(); i.addEventListener ? i.addEventListener(l, b, !1) : i.attachEvent("on" + l, b); var q = function () { function b() { return ["<head></head><", c, ' onload="var d=', n, ";d.getElementsByTagName('head')[0].", d, "(d.", g, "('script')).", i, "='", a.l, "'\"></", c, ">"].join("") } var c = "body", e = h[c]; if (!e) return setTimeout(q, 100); a.P(1); var d = "appendChild", g = "createElement", i = "src", k = h[g]("div"), l = k[d](h[g]("div")), f = h[g]("iframe"), n = "document", p; k.style.display = "none"; e.insertBefore(k, e.firstChild).id = o + "-" + j; f.frameBorder = "0"; f.id = o + "-frame-" + j; /MSIE[ ]+6/.test(navigator.userAgent) && (f[i] = "javascript:false"); f.allowTransparency = "true"; l[d](f); try { f.contentWindow[n].open() } catch (s) { a.domain = h.domain, p = "javascript:var d=" + n + ".open();d.domain='" + h.domain + "';", f[i] = p + "void(0);" } try { var r = f.contentWindow[n]; r.write(b()); r.close() } catch (t) { f[i] = p + 'd.write("' + b().replace(/"/g, String.fromCharCode(92) + '"') + '");d.close();' } a.P(2) }; a.l && setTimeout(q, 0) })() }(); c[b].lv = "1"; return c[b] } var o = "lightningjs", k = window[o] = g(o); k.require = g; k.modules = c }({});
  if (!navigator.userAgent.match(/Android|BlackBerry|BB10|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) { window.usabilla_live = lightningjs.require("usabilla_live", "//w.usabilla.com/2a41eea4c9e1.js"); } else { window.usabilla_live = lightningjs.require("usabilla_live", "//w.usabilla.com/29d0684d6043.js"); }
  window.usabilla_live("hide");
  document.getElementById("usbl-integrated-button").addEventListener("click", function () {
    window.usabilla_live("click");
  });
  /*]]>{/literal}*/

  // Store the element that triggered the modal
  let triggerElement;

  jQuery(document).ready(function () {
    // Hook into Featherlight's beforeOpen event to capture the trigger element
    jQuery(document).on('click', '[data-featherlight]', function (event) {
      // Save the element that triggered the Featherlight modal
      triggerElement = jQuery(this);
    });

    // Hook into the afterClose event to return focus to the trigger element
    jQuery.featherlight.defaults.afterClose = function () {
      if (triggerElement) {
        triggerElement.focus(); // Return focus to the element that triggered the modal
      }
    };
  });

</script>

<!-- UHF footer -->
<div id="footerArea" class="uhf" data-m="{&quot;cN&quot;:&quot;footerArea&quot;,&quot;cT&quot;:&quot;Area_coreuiArea&quot;,&quot;id&quot;:&quot;a2Body&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;Body&quot;}">
                <div id="footerRegion" data-region-key="footerregion" data-m="{&quot;cN&quot;:&quot;footerRegion&quot;,&quot;cT&quot;:&quot;Region_coreui-region&quot;,&quot;id&quot;:&quot;r1a2&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;a2&quot;}">

    <div id="footerUniversalFooter" data-m="{&quot;cN&quot;:&quot;footerUniversalFooter&quot;,&quot;cT&quot;:&quot;Module_coreui-universalfooter&quot;,&quot;id&quot;:&quot;m1r1a2&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;r1a2&quot;}" data-module-id="Category|footerRegion|coreui-region|footerUniversalFooter|coreui-universalfooter">
        



<footer id="uhf-footer" class="c-uhff context-uhf" data-uhf-mscc-rq="false" data-footer-footprint="/DEV_Blogs/DEV_BlogsFooter, fromService: True" data-m="{&quot;cN&quot;:&quot;Uhf footer_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c1m1r1a2&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;m1r1a2&quot;}">
        <nav class="c-uhff-nav" aria-label="Footer Resource links" data-m="{&quot;cN&quot;:&quot;Footer nav_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c1c1m1r1a2&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c1m1r1a2&quot;}">
            
                <div class="c-uhff-nav-row">
                    <div class="c-uhff-nav-group" data-m="{&quot;cN&quot;:&quot;footerNavColumn1_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c1c1c1m1r1a2&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c1c1m1r1a2&quot;}">
                        <div class="c-heading-4" role="heading" aria-level="2">What's new</div>
                        <ul class="c-list f-bare">
                            <li>
                                <a aria-label="Surface Pro What's new" class="c-uhff-link" href="https://www.microsoft.com/en-us/surface/devices/surface-pro-11th-edition" data-m="{&quot;cN&quot;:&quot;Footer_WhatsNew_NewSurfacePro_nav&quot;,&quot;id&quot;:&quot;n1c1c1c1m1r1a2&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c1c1c1m1r1a2&quot;}" target="_blank">Surface Pro</a>
                            </li>
                            <li>
                                <a aria-label="Surface Laptop What's new" class="c-uhff-link" href="https://www.microsoft.com/en-us/surface/devices/surface-laptop-7th-edition" data-m="{&quot;cN&quot;:&quot;Footer_WhatsNew_SurfaceLaptop_nav&quot;,&quot;id&quot;:&quot;n2c1c1c1m1r1a2&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c1c1c1m1r1a2&quot;}" target="_blank">Surface Laptop</a>
                            </li>
                            <li>
                                <a aria-label="Surface Laptop Studio 2 What's new" class="c-uhff-link" href="https://www.microsoft.com/en-us/d/Surface-Laptop-Studio-2/8rqr54krf1dz" data-m="{&quot;cN&quot;:&quot;Footer_WhatsNew_SurfaceLaptopStudio2_nav&quot;,&quot;id&quot;:&quot;n3c1c1c1m1r1a2&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c1c1c1m1r1a2&quot;}" target="_blank">Surface Laptop Studio 2</a>
                            </li>
                            <li>
                                <a aria-label="Surface Laptop Go 3 What's new" class="c-uhff-link" href="https://www.microsoft.com/en-us/d/Surface-Laptop-Go-3/8p0wwgj6c6l2" data-m="{&quot;cN&quot;:&quot;Footer_WhatsNew_SurfaceLaptopGo3_nav&quot;,&quot;id&quot;:&quot;n4c1c1c1m1r1a2&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c1c1c1m1r1a2&quot;}" target="_blank">Surface Laptop Go 3</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft Copilot What's new" class="c-uhff-link" href="https://www.microsoft.com/en-us/microsoft-copilot" data-m="{&quot;cN&quot;:&quot;Footer_WhatsNew_CopilotMicrosoft_nav&quot;,&quot;id&quot;:&quot;n5c1c1c1m1r1a2&quot;,&quot;sN&quot;:5,&quot;aN&quot;:&quot;c1c1c1m1r1a2&quot;}" target="_blank">Microsoft Copilot</a>
                            </li>
                            <li>
                                <a aria-label="AI in Windows What's new" class="c-uhff-link" href="https://www.microsoft.com/en-us/windows/copilot-ai-features" data-m="{&quot;cN&quot;:&quot;Whatsnew_AIinWindows_nav&quot;,&quot;id&quot;:&quot;n6c1c1c1m1r1a2&quot;,&quot;sN&quot;:6,&quot;aN&quot;:&quot;c1c1c1m1r1a2&quot;}" target="_blank">AI in Windows</a>
                            </li>
                            <li>
                                <a aria-label="Explore Microsoft products What's new" class="c-uhff-link" href="https://www.microsoft.com/en-us/microsoft-products-and-apps" data-m="{&quot;cN&quot;:&quot;Footer_WhatsNew_ExploreMicrosoftProducts_nav&quot;,&quot;id&quot;:&quot;n7c1c1c1m1r1a2&quot;,&quot;sN&quot;:7,&quot;aN&quot;:&quot;c1c1c1m1r1a2&quot;}" target="_blank">Explore Microsoft products</a>
                            </li>
                            <li>
                                <a aria-label="Windows 11 apps What's new" class="c-uhff-link" href="https://www.microsoft.com/windows/windows-11-apps" data-m="{&quot;cN&quot;:&quot;Footer_WhatsNew_Windows_11_apps_nav&quot;,&quot;id&quot;:&quot;n8c1c1c1m1r1a2&quot;,&quot;sN&quot;:8,&quot;aN&quot;:&quot;c1c1c1m1r1a2&quot;}" target="_blank">Windows 11 apps</a>
                            </li>

                        </ul>
                        
                    </div>
                    <div class="c-uhff-nav-group" data-m="{&quot;cN&quot;:&quot;footerNavColumn2_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c2c1c1m1r1a2&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c1c1m1r1a2&quot;}">
                        <div class="c-heading-4" role="heading" aria-level="2">Microsoft Store</div>
                        <ul class="c-list f-bare">
                            <li>
                                <a aria-label="Account profile Microsoft Store" class="c-uhff-link" href="https://account.microsoft.com/" data-m="{&quot;cN&quot;:&quot;Footer_StoreandSupport_AccountProfile_nav&quot;,&quot;id&quot;:&quot;n1c2c1c1m1r1a2&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c2c1c1m1r1a2&quot;}" target="_blank">Account profile</a>
                            </li>
                            <li>
                                <a aria-label="Download Center Microsoft Store" class="c-uhff-link" href="https://www.microsoft.com/en-us/download" data-m="{&quot;cN&quot;:&quot;Footer_StoreandSupport_DownloadCenter_nav&quot;,&quot;id&quot;:&quot;n2c2c1c1m1r1a2&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c2c1c1m1r1a2&quot;}" target="_blank">Download Center</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft Store support Microsoft Store" class="c-uhff-link" href="https://go.microsoft.com/fwlink/?linkid=2139749" data-m="{&quot;cN&quot;:&quot;Footer_StoreandSupport_SalesAndSupport_nav&quot;,&quot;id&quot;:&quot;n3c2c1c1m1r1a2&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c2c1c1m1r1a2&quot;}" target="_blank">Microsoft Store support</a>
                            </li>
                            <li>
                                <a aria-label="Returns Microsoft Store" class="c-uhff-link" href="https://www.microsoft.com/en-us/store/b/returns" data-m="{&quot;cN&quot;:&quot;Footer_StoreandSupport_Returns_nav&quot;,&quot;id&quot;:&quot;n4c2c1c1m1r1a2&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c2c1c1m1r1a2&quot;}" target="_blank">Returns</a>
                            </li>
                            <li>
                                <a aria-label="Order tracking Microsoft Store" class="c-uhff-link" href="https://www.microsoft.com/en-us/store/b/order-tracking" data-m="{&quot;cN&quot;:&quot;Footer_StoreandSupport_OrderTracking_nav&quot;,&quot;id&quot;:&quot;n5c2c1c1m1r1a2&quot;,&quot;sN&quot;:5,&quot;aN&quot;:&quot;c2c1c1m1r1a2&quot;}" target="_blank">Order tracking</a>
                            </li>
                            <li>
                                <a aria-label="Certified Refurbished Microsoft Store" class="c-uhff-link" href="https://www.microsoft.com/en-us/store/b/certified-refurbished-products" data-m="{&quot;cN&quot;:&quot;Footer_StoreandSupport_StoreLocations_nav&quot;,&quot;id&quot;:&quot;n6c2c1c1m1r1a2&quot;,&quot;sN&quot;:6,&quot;aN&quot;:&quot;c2c1c1m1r1a2&quot;}" target="_blank">Certified Refurbished</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft Store Promise Microsoft Store" class="c-uhff-link" href="https://www.microsoft.com/en-us/store/b/why-microsoft-store?icid=footer_why-msft-store_7102020" data-m="{&quot;cN&quot;:&quot;Footer_StoreandSupport_MicrosoftPromise_nav&quot;,&quot;id&quot;:&quot;n7c2c1c1m1r1a2&quot;,&quot;sN&quot;:7,&quot;aN&quot;:&quot;c2c1c1m1r1a2&quot;}" target="_blank">Microsoft Store Promise</a>
                            </li>
                            <li>
                                <a aria-label="Flexible Payments Microsoft Store" class="c-uhff-link" href="https://www.microsoft.com/en-us/store/b/payment-financing-options?icid=footer_financing_vcc" data-m="{&quot;cN&quot;:&quot;Footer_StoreandSupport_Financing_nav&quot;,&quot;id&quot;:&quot;n8c2c1c1m1r1a2&quot;,&quot;sN&quot;:8,&quot;aN&quot;:&quot;c2c1c1m1r1a2&quot;}" target="_blank">Flexible Payments</a>
                            </li>

                        </ul>
                        
                    </div>
                    <div class="c-uhff-nav-group" data-m="{&quot;cN&quot;:&quot;footerNavColumn3_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c3c1c1m1r1a2&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c1c1m1r1a2&quot;}">
                        <div class="c-heading-4" role="heading" aria-level="2">Education</div>
                        <ul class="c-list f-bare">
                            <li>
                                <a aria-label="Microsoft in education Education" class="c-uhff-link" href="https://www.microsoft.com/en-us/education" data-m="{&quot;cN&quot;:&quot;Footer_Education_MicrosoftInEducation_nav&quot;,&quot;id&quot;:&quot;n1c3c1c1m1r1a2&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c3c1c1m1r1a2&quot;}" target="_blank">Microsoft in education</a>
                            </li>
                            <li>
                                <a aria-label="Devices for education Education" class="c-uhff-link" href="https://www.microsoft.com/en-us/education/devices/overview" data-m="{&quot;cN&quot;:&quot;Footer_Education_DevicesforEducation_nav&quot;,&quot;id&quot;:&quot;n2c3c1c1m1r1a2&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c3c1c1m1r1a2&quot;}" target="_blank">Devices for education</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft Teams for Education Education" class="c-uhff-link" href="https://www.microsoft.com/en-us/education/products/teams" data-m="{&quot;cN&quot;:&quot;Footer_Education_MicrosoftTeamsforEducation_nav&quot;,&quot;id&quot;:&quot;n3c3c1c1m1r1a2&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c3c1c1m1r1a2&quot;}" target="_blank">Microsoft Teams for Education</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft 365 Education Education" class="c-uhff-link" href="https://www.microsoft.com/en-us/education/products/microsoft-365" data-m="{&quot;cN&quot;:&quot;Footer_Education_Microsoft365Education_nav&quot;,&quot;id&quot;:&quot;n4c3c1c1m1r1a2&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c3c1c1m1r1a2&quot;}" target="_blank">Microsoft 365 Education</a>
                            </li>
                            <li>
                                <a aria-label="How to buy for your school Education" class="c-uhff-link" href="https://www.microsoft.com/education/how-to-buy" data-m="{&quot;cN&quot;:&quot;Footer_Howtobuyforyourschool_nav&quot;,&quot;id&quot;:&quot;n5c3c1c1m1r1a2&quot;,&quot;sN&quot;:5,&quot;aN&quot;:&quot;c3c1c1m1r1a2&quot;}" target="_blank">How to buy for your school</a>
                            </li>
                            <li>
                                <a aria-label="Educator training and development Education" class="c-uhff-link" href="https://education.microsoft.com/" data-m="{&quot;cN&quot;:&quot;Footer_Education_EducatorTrainingDevelopment_nav&quot;,&quot;id&quot;:&quot;n6c3c1c1m1r1a2&quot;,&quot;sN&quot;:6,&quot;aN&quot;:&quot;c3c1c1m1r1a2&quot;}" target="_blank">Educator training and development</a>
                            </li>
                            <li>
                                <a aria-label="Deals for students and parents Education" class="c-uhff-link" href="https://www.microsoft.com/en-us/store/b/education" data-m="{&quot;cN&quot;:&quot;Footer_Education_DealsForStudentsandParents_nav&quot;,&quot;id&quot;:&quot;n7c3c1c1m1r1a2&quot;,&quot;sN&quot;:7,&quot;aN&quot;:&quot;c3c1c1m1r1a2&quot;}" target="_blank">Deals for students and parents</a>
                            </li>
                            <li>
                                <a aria-label="Azure for students Education" class="c-uhff-link" href="https://azure.microsoft.com/en-us/free/students/" data-m="{&quot;cN&quot;:&quot;Footer_Education_Azureforstudents_nav&quot;,&quot;id&quot;:&quot;n8c3c1c1m1r1a2&quot;,&quot;sN&quot;:8,&quot;aN&quot;:&quot;c3c1c1m1r1a2&quot;}" target="_blank">Azure for students</a>
                            </li>

                        </ul>
                        
                    </div>
                </div>
                <div class="c-uhff-nav-row">
                    <div class="c-uhff-nav-group" data-m="{&quot;cN&quot;:&quot;footerNavColumn4_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c4c1c1m1r1a2&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c1c1m1r1a2&quot;}">
                        <div class="c-heading-4" role="heading" aria-level="2">Business</div>
                        <ul class="c-list f-bare">
                            <li>
                                <a aria-label="Microsoft Cloud Business" class="c-uhff-link" href="https://www.microsoft.com/en-us/microsoft-cloud" data-m="{&quot;cN&quot;:&quot;Footer_Business_Microsoft_Cloud_nav&quot;,&quot;id&quot;:&quot;n1c4c1c1m1r1a2&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c4c1c1m1r1a2&quot;}" target="_blank">Microsoft Cloud</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft Security Business" class="c-uhff-link" href="https://www.microsoft.com/en-us/security" data-m="{&quot;cN&quot;:&quot;Footer_Business_Microsoft Security_nav&quot;,&quot;id&quot;:&quot;n2c4c1c1m1r1a2&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c4c1c1m1r1a2&quot;}" target="_blank">Microsoft Security</a>
                            </li>
                            <li>
                                <a aria-label="Dynamics 365 Business" class="c-uhff-link" href="https://www.microsoft.com/en-us/dynamics-365" data-m="{&quot;cN&quot;:&quot;Footer_Business_MicrosoftDynamics365_nav&quot;,&quot;id&quot;:&quot;n3c4c1c1m1r1a2&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c4c1c1m1r1a2&quot;}" target="_blank">Dynamics 365</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft 365 Business" class="c-uhff-link" href="https://www.microsoft.com/en-us/microsoft-365/business" data-m="{&quot;cN&quot;:&quot;Footer_Business_M365_nav&quot;,&quot;id&quot;:&quot;n4c4c1c1m1r1a2&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c4c1c1m1r1a2&quot;}" target="_blank">Microsoft 365</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft Power Platform Business" class="c-uhff-link" href="https://www.microsoft.com/en-us/power-platform" data-m="{&quot;cN&quot;:&quot;Footer_DeveloperAndIT_Power Platform_nav&quot;,&quot;id&quot;:&quot;n5c4c1c1m1r1a2&quot;,&quot;sN&quot;:5,&quot;aN&quot;:&quot;c4c1c1m1r1a2&quot;}" target="_blank">Microsoft Power Platform</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft Teams Business" class="c-uhff-link" href="https://www.microsoft.com/en-us/microsoft-teams/group-chat-software" data-m="{&quot;cN&quot;:&quot;Footer_Business_Microsoft365_nav&quot;,&quot;id&quot;:&quot;n6c4c1c1m1r1a2&quot;,&quot;sN&quot;:6,&quot;aN&quot;:&quot;c4c1c1m1r1a2&quot;}" target="_blank">Microsoft Teams</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft 365 Copilot Business" class="c-uhff-link" href="https://www.microsoft.com/en-us/microsoft-365/copilot/copilot-for-work" data-m="{&quot;cN&quot;:&quot;Footer_CopilotMicrosoft365_nav&quot;,&quot;id&quot;:&quot;n7c4c1c1m1r1a2&quot;,&quot;sN&quot;:7,&quot;aN&quot;:&quot;c4c1c1m1r1a2&quot;}" target="_blank">Microsoft 365 Copilot</a>
                            </li>
                            <li>
                                <a aria-label="Small Business Business" class="c-uhff-link" href="https://www.microsoft.com/en-us/store/b/business?icid=CNavBusinessStore" data-m="{&quot;cN&quot;:&quot;Footer_Business-SmallBusiness_nav&quot;,&quot;id&quot;:&quot;n8c4c1c1m1r1a2&quot;,&quot;sN&quot;:8,&quot;aN&quot;:&quot;c4c1c1m1r1a2&quot;}" target="_blank">Small Business</a>
                            </li>

                        </ul>
                        
                    </div>
                    <div class="c-uhff-nav-group" data-m="{&quot;cN&quot;:&quot;footerNavColumn5_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c5c1c1m1r1a2&quot;,&quot;sN&quot;:5,&quot;aN&quot;:&quot;c1c1m1r1a2&quot;}">
                        <div class="c-heading-4" role="heading" aria-level="2">Developer &amp; IT</div>
                        <ul class="c-list f-bare">
                            <li>
                                <a aria-label="Azure Developer &amp; IT" class="c-uhff-link" href="https://azure.microsoft.com/en-us/" data-m="{&quot;cN&quot;:&quot;Footer_DeveloperAndIT_MicrosoftAzure_nav&quot;,&quot;id&quot;:&quot;n1c5c1c1m1r1a2&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c5c1c1m1r1a2&quot;}" target="_blank">Azure</a>
                            </li>
                            <li>
                                <a aria-label="Developer Center Developer &amp; IT" class="c-uhff-link" href="https://developer.microsoft.com/en-us/" data-m="{&quot;cN&quot;:&quot;Footer_DeveloperAndIT_DeveloperCenter_nav&quot;,&quot;id&quot;:&quot;n2c5c1c1m1r1a2&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c5c1c1m1r1a2&quot;}" target="_blank">Developer Center</a>
                            </li>
                            <li>
                                <a aria-label="Documentation Developer &amp; IT" class="c-uhff-link" href="https://learn.microsoft.com/docs/" data-m="{&quot;cN&quot;:&quot;Footer_DeveloperAndIT_Documentation_nav&quot;,&quot;id&quot;:&quot;n3c5c1c1m1r1a2&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c5c1c1m1r1a2&quot;}" target="_blank">Documentation</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft Learn Developer &amp; IT" class="c-uhff-link" href="https://learn.microsoft.com/" data-m="{&quot;cN&quot;:&quot;Footer_DeveloperAndIT_MicrosoftLearn_nav&quot;,&quot;id&quot;:&quot;n4c5c1c1m1r1a2&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c5c1c1m1r1a2&quot;}" target="_blank">Microsoft Learn</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft Tech Community Developer &amp; IT" class="c-uhff-link" href="https://techcommunity.microsoft.com/" data-m="{&quot;cN&quot;:&quot;Footer_DeveloperAndIT_MicrosoftTechCommunity_nav&quot;,&quot;id&quot;:&quot;n5c5c1c1m1r1a2&quot;,&quot;sN&quot;:5,&quot;aN&quot;:&quot;c5c1c1m1r1a2&quot;}" target="_blank">Microsoft Tech Community</a>
                            </li>
                            <li>
                                <a aria-label="Azure Marketplace Developer &amp; IT" class="c-uhff-link" href="https://azuremarketplace.microsoft.com/en-us/" data-m="{&quot;cN&quot;:&quot;Footer_DeveloperAndIT_AzureMarketplace_nav&quot;,&quot;id&quot;:&quot;n6c5c1c1m1r1a2&quot;,&quot;sN&quot;:6,&quot;aN&quot;:&quot;c5c1c1m1r1a2&quot;}" target="_blank">Azure Marketplace</a>
                            </li>
                            <li>
                                <a aria-label="AppSource Developer &amp; IT" class="c-uhff-link" href="https://appsource.microsoft.com/en-us/" data-m="{&quot;cN&quot;:&quot;Footer_DeveloperAndIT_AppSource_nav&quot;,&quot;id&quot;:&quot;n7c5c1c1m1r1a2&quot;,&quot;sN&quot;:7,&quot;aN&quot;:&quot;c5c1c1m1r1a2&quot;}" target="_blank">AppSource</a>
                            </li>
                            <li>
                                <a aria-label="Visual Studio Developer &amp; IT" class="c-uhff-link" href="https://visualstudio.microsoft.com/" data-m="{&quot;cN&quot;:&quot;Footer_DeveloperAndIT_MicrosoftVisualStudio_nav&quot;,&quot;id&quot;:&quot;n8c5c1c1m1r1a2&quot;,&quot;sN&quot;:8,&quot;aN&quot;:&quot;c5c1c1m1r1a2&quot;}" target="_blank">Visual Studio</a>
                            </li>

                        </ul>
                        
                    </div>
                    <div class="c-uhff-nav-group" data-m="{&quot;cN&quot;:&quot;footerNavColumn6_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c6c1c1m1r1a2&quot;,&quot;sN&quot;:6,&quot;aN&quot;:&quot;c1c1m1r1a2&quot;}">
                        <div class="c-heading-4" role="heading" aria-level="2">Company</div>
                        <ul class="c-list f-bare">
                            <li>
                                <a aria-label="Careers Company" class="c-uhff-link" href="https://careers.microsoft.com/" data-m="{&quot;cN&quot;:&quot;Footer_Company_Careers_nav&quot;,&quot;id&quot;:&quot;n1c6c1c1m1r1a2&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c6c1c1m1r1a2&quot;}" target="_blank">Careers</a>
                            </li>
                            <li>
                                <a aria-label="About Microsoft Company" class="c-uhff-link" href="https://www.microsoft.com/about" data-m="{&quot;cN&quot;:&quot;Footer_Company_AboutMicrosoft_nav&quot;,&quot;id&quot;:&quot;n2c6c1c1m1r1a2&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c6c1c1m1r1a2&quot;}" target="_blank">About Microsoft</a>
                            </li>
                            <li>
                                <a aria-label="Company news Company" class="c-uhff-link" href="https://news.microsoft.com/" data-m="{&quot;cN&quot;:&quot;Footer_Company_CompanyNews_nav&quot;,&quot;id&quot;:&quot;n3c6c1c1m1r1a2&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c6c1c1m1r1a2&quot;}" target="_blank">Company news</a>
                            </li>
                            <li>
                                <a aria-label="Privacy at Microsoft Company" class="c-uhff-link" href="https://privacy.microsoft.com/en-us" data-m="{&quot;cN&quot;:&quot;Footer_Company_PrivacyAtMicrosoft_nav&quot;,&quot;id&quot;:&quot;n4c6c1c1m1r1a2&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c6c1c1m1r1a2&quot;}" target="_blank">Privacy at Microsoft</a>
                            </li>
                            <li>
                                <a aria-label="Investors Company" class="c-uhff-link" href="https://www.microsoft.com/investor/default.aspx" data-m="{&quot;cN&quot;:&quot;Footer_Company_Investors_nav&quot;,&quot;id&quot;:&quot;n5c6c1c1m1r1a2&quot;,&quot;sN&quot;:5,&quot;aN&quot;:&quot;c6c1c1m1r1a2&quot;}" target="_blank">Investors</a>
                            </li>
                            <li>
                                <a aria-label="Diversity and inclusion Company" class="c-uhff-link" href="https://www.microsoft.com/en-us/diversity/" data-m="{&quot;cN&quot;:&quot;Footer_Company_DiversityAndInclusion_nav&quot;,&quot;id&quot;:&quot;n6c6c1c1m1r1a2&quot;,&quot;sN&quot;:6,&quot;aN&quot;:&quot;c6c1c1m1r1a2&quot;}" target="_blank">Diversity and inclusion</a>
                            </li>
                            <li>
                                <a aria-label="Accessibility Company" class="c-uhff-link" href="https://www.microsoft.com/en-us/accessibility" data-m="{&quot;cN&quot;:&quot;Footer_Company_Accessibility_nav&quot;,&quot;id&quot;:&quot;n7c6c1c1m1r1a2&quot;,&quot;sN&quot;:7,&quot;aN&quot;:&quot;c6c1c1m1r1a2&quot;}" target="_blank">Accessibility</a>
                            </li>
                            <li>
                                <a aria-label="Sustainability Company" class="c-uhff-link" href="https://www.microsoft.com/en-us/sustainability/" data-m="{&quot;cN&quot;:&quot;Footer_Company_Sustainability_nav&quot;,&quot;id&quot;:&quot;n8c6c1c1m1r1a2&quot;,&quot;sN&quot;:8,&quot;aN&quot;:&quot;c6c1c1m1r1a2&quot;}" target="_blank">Sustainability</a>
                            </li>

                        </ul>
                        
                    </div>
                </div>
        </nav>
    <div class="c-uhff-base">
        
            <a data-m="{&quot;id&quot;:&quot;n7c1c1m1r1a2&quot;,&quot;sN&quot;:7,&quot;aN&quot;:&quot;c1c1m1r1a2&quot;}" href="https://aka.ms/yourcaliforniaprivacychoices" class="c-uhff-link c-uhff-ccpa" target="_blank">
        <svg role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 14" xml:space="preserve" height="16" width="43">
            <title>Your Privacy Choices Opt-Out Icon</title>
            <path d="M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#fff"></path>
            <path d="M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7zm-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#06f"></path>
            <path d="M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8-.2.2-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0z" style="fill:#fff"></path>
            <path d="M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0z" style="fill:#06f"></path>
        </svg>
        <span>Your Privacy Choices</span>
    </a>

        <noscript>
                <a data-m='{"id":"n8c1c1m1r1a2","sN":8,"aN":"c1c1m1r1a2"}' href="https://aka.ms/yourcaliforniaprivacychoices" class='c-uhff-link c-uhff-ccpa'>
        <svg role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 14" xml:space="preserve" height="16" width="43">
            <title>Your Privacy Choices Opt-Out Icon</title>
            <path d="M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#fff"/>
            <path d="M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7zm-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#06f"/>
            <path d="M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8-.2.2-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0z" style="fill:#fff"/>
            <path d="M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0z" style="fill:#06f"/>
        </svg>
        <span>Your Privacy Choices</span>
    </a>

        </noscript>
            <a data-m="{&quot;id&quot;:&quot;n9c1c1m1r1a2&quot;,&quot;sN&quot;:9,&quot;aN&quot;:&quot;c1c1m1r1a2&quot;}" href="https://go.microsoft.com/fwlink/?linkid=2259814" class="c-uhff-link c-uhff-consumer" target="_blank">
        <span>Consumer Health Privacy</span>
    </a>

        <nav aria-label="Microsoft corporate links">
            <ul class="c-list f-bare" data-m="{&quot;cN&quot;:&quot;Corp links_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c10c1c1m1r1a2&quot;,&quot;sN&quot;:10,&quot;aN&quot;:&quot;c1c1m1r1a2&quot;}">
                                <li id="c-uhff-footer_sitemap">
                    <a class="c-uhff-link" href="https://www.microsoft.com/en-us/sitemap1.aspx" data-mscc-ic="false" data-m="{&quot;cN&quot;:&quot;Footer_Sitemap_nav&quot;,&quot;id&quot;:&quot;n1c10c1c1m1r1a2&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c10c1c1m1r1a2&quot;}" target="_blank">Sitemap</a>
                </li>
                <li id="c-uhff-footer_contactus">
                    <a class="c-uhff-link" href="https://support.microsoft.com/contactus" data-mscc-ic="false" data-m="{&quot;cN&quot;:&quot;Footer_ContactUs_nav&quot;,&quot;id&quot;:&quot;n2c10c1c1m1r1a2&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c10c1c1m1r1a2&quot;}" target="_blank">Contact Microsoft</a>
                </li>
                <li id="c-uhff-footer_privacyandcookies">
                    <a class="c-uhff-link" href="https://go.microsoft.com/fwlink/?LinkId=521839" data-mscc-ic="false" data-m="{&quot;cN&quot;:&quot;Footer_PrivacyandCookies_nav&quot;,&quot;id&quot;:&quot;n3c10c1c1m1r1a2&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c10c1c1m1r1a2&quot;}" target="_blank">Privacy </a>
                </li>
                <li class=" x-hidden" id="c-uhff-footer_managecookies">
                    <a class="c-uhff-link" href="#" data-mscc-ic="false" data-m="{&quot;cN&quot;:&quot;Footer_ManageCookies_nav&quot;,&quot;id&quot;:&quot;n4c10c1c1m1r1a2&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c10c1c1m1r1a2&quot;}">Manage cookies</a>
                </li>
                <li id="c-uhff-footer_termsofuse">
                    <a class="c-uhff-link" href="https://go.microsoft.com/fwlink/?LinkID=206977" data-mscc-ic="false" data-m="{&quot;cN&quot;:&quot;Footer_TermsOfUse_nav&quot;,&quot;id&quot;:&quot;n5c10c1c1m1r1a2&quot;,&quot;sN&quot;:5,&quot;aN&quot;:&quot;c10c1c1m1r1a2&quot;}" target="_blank">Terms of use</a>
                </li>
                <li id="c-uhff-footer_trademarks">
                    <a class="c-uhff-link" href="https://go.microsoft.com/fwlink/?linkid=2196228" data-mscc-ic="false" data-m="{&quot;cN&quot;:&quot;Footer_Trademarks_nav&quot;,&quot;id&quot;:&quot;n6c10c1c1m1r1a2&quot;,&quot;sN&quot;:6,&quot;aN&quot;:&quot;c10c1c1m1r1a2&quot;}" target="_blank">Trademarks</a>
                </li>
                <li id="c-uhff-footer_safetyandeco">
                    <a class="c-uhff-link" href="https://go.microsoft.com/fwlink/?linkid=2196227" data-mscc-ic="false" data-m="{&quot;cN&quot;:&quot;Footer_SafetyAndEco_nav&quot;,&quot;id&quot;:&quot;n7c10c1c1m1r1a2&quot;,&quot;sN&quot;:7,&quot;aN&quot;:&quot;c10c1c1m1r1a2&quot;}" target="_blank">Safety &amp; eco</a>
                </li>
                <li id="c-uhff-recycling">
                    <a class="c-uhff-link" href="https://www.microsoft.com/en-us/legal/compliance/recycling" data-mscc-ic="false" data-m="{&quot;cN&quot;:&quot;Recycling_nav&quot;,&quot;id&quot;:&quot;n8c10c1c1m1r1a2&quot;,&quot;sN&quot;:8,&quot;aN&quot;:&quot;c10c1c1m1r1a2&quot;}" target="_blank">Recycling</a>
                </li>
                <li id="c-uhff-footer_aboutourads">
                    <a class="c-uhff-link" href="https://choice.microsoft.com" data-mscc-ic="false" data-m="{&quot;cN&quot;:&quot;Footer_AboutourAds_nav&quot;,&quot;id&quot;:&quot;n9c10c1c1m1r1a2&quot;,&quot;sN&quot;:9,&quot;aN&quot;:&quot;c10c1c1m1r1a2&quot;}" target="_blank">About our ads</a>
                </li>

                <li>© Microsoft 2024</li>
                
            </ul>
        </nav>
    </div>
    
</footer>

<script id="uhf-footer-ccpa">
    const globalPrivacyControlEnabled = navigator.globalPrivacyControl;

    const GPC_DataSharingOptIn = (globalPrivacyControlEnabled) ? false : checkThirdPartyAdsOptOutCookie();

    function checkThirdPartyAdsOptOutCookie() {
        try {
            const ThirdPartyAdsOptOutCookieName = '3PAdsOptOut';
            var cookieValue = getCookie(ThirdPartyAdsOptOutCookieName);
            return cookieValue != 1;
        } catch {
            return true;
        }
    }

    function getCookie(cookieName) {
        var cookieValue = document.cookie.match('(^|;)\\s*' + cookieName + '\\s*=\\s*([^;]+)');
        return (cookieValue) ? cookieValue[2] : '';
    }
</script>






    </div>
        </div>

    </div><!--/ UHF footer -->

<!-- UHF search functionality query parameter append for all pages excluding landing page -->
  <script type="text/javascript">
    var serachHtml = '<input type="hidden" name="blog" value="/devops/" data-m="{&quot;cN&quot;:&quot;HiddenInput_nav&quot;,&quot;id&quot;:&quot;n2c1c9c3m1r1a1&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c1c9c3m1r1a1&quot;}" style="overflow-x: visible;">';
    jQuery(".c-uhfh-actions #searchForm").append(serachHtml);
  </script>



<p id="a11y-speak-intro-text" class="a11y-speak-intro-text" style="position: absolute;margin: -1px;padding: 0;height: 1px;width: 1px;overflow: hidden;clip: rect(1px, 1px, 1px, 1px);-webkit-clip-path: inset(50%);clip-path: inset(50%);border: 0;word-wrap: normal !important;" hidden="hidden">Notifications</p><div id="a11y-speak-assertive" class="a11y-speak-region" style="position: absolute;margin: -1px;padding: 0;height: 1px;width: 1px;overflow: hidden;clip: rect(1px, 1px, 1px, 1px);-webkit-clip-path: inset(50%);clip-path: inset(50%);border: 0;word-wrap: normal !important;" aria-live="assertive" aria-relevant="additions text" aria-atomic="true"></div><div id="a11y-speak-polite" class="a11y-speak-region" style="position: absolute;margin: -1px;padding: 0;height: 1px;width: 1px;overflow: hidden;clip: rect(1px, 1px, 1px, 1px);-webkit-clip-path: inset(50%);clip-path: inset(50%);border: 0;word-wrap: normal !important;" aria-live="polite" aria-relevant="additions text" aria-atomic="true"></div><div class="usabilla_live_button_container" id="usabilla_live_button_container_341131530" role="button" tabindex="0" aria-label="Usabilla Feedback Button" style="display: none;"><style type="text/css" nonce="">div.usabilla_live_button_container#usabilla_live_button_container_341131530[role="button"] {top:auto !important;margin-top:-65px;bottom:10%;width:40px;height:130px;position:fixed;z-index:999999;right:0}</style><iframe src="" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" data-tags="right" title="Usabilla Feedback Button" class="usabilla-live-button" id="usabilla_live_button_container_iframe972316662"></iframe></div></body></html>