CINXE.COM
ndThread
<!doctype html> <html> <head> <title>ndThread</title> <meta charset="utf-8"> <base href="./"> <meta name="viewport" content="initial-scale=1,maximum-scale=1,width=device-width,height=device-height,viewport-fit=cover,user-scalable=0"> <meta content="default-src *.netdocuments.com *.netvoyage.com *.netdocuments.us; connect-src *; script-src statics.teams.cdn.office.net 'sha256-oxj779sHw8i6OAiU3n2JgnjV+G1cWlvuDJDQwFLvKnE=' *.netdocuments.com *.netvoyage.com *.netdocuments.us 'sha256-UShQQPSiIEyZaEHGTBx/Soi2PtqN4nO8WifNo8ChLCk=' 'sha256-dwgXw/xf7zGr8t+ihOjsVWutLW0tyv+0pNa5kCxbYcY=' 'sha256-PdnxgCny3pWqTRsopXgF7jlK0KO9bVtWqcoxPxkIqq0=' 'sha256-roOdtr5e3T5ITcIfWhoA1wNkbMQTMozHsyl6HpJndIU=';style-src-elem * 'unsafe-inline'; img-src 'self' *.netdocuments.com *.netvoyage.com *.netdocuments.us; style-src * 'unsafe-inline'; font-src fonts.gstatic.com ndthread-qa.netdocuments.com *.netdocuments.com *.netvoyage.com *.netdocuments.us;" http-equiv="Content-Security-Policy"> <meta http-equiv="X-UA-Compatible" content="IE=Edge"> <link rel="icon" type="image/x-icon" href="favicon.ico"> <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400i,600,600i,700,700i" rel="stylesheet"> <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> <script> if (global === undefined) { var global = window; } </script> <script src="settings.js"></script> <script> function removeURLParameter(url, parameter) { //prefer to use l.search if you have a location/link object var urlparts= url.split('?'); if (urlparts.length>=2) { var prefix= encodeURIComponent(parameter)+'='; var pars= urlparts[1].split(/[&;]/g); //reverse iteration as may be destructive for (var i= pars.length; i-- > 0;) { //idiom for string.startsWith if (pars[i].lastIndexOf(prefix, 0) !== -1) { pars.splice(i, 1); } } url= urlparts[0] + (pars.length > 0 ? '?' + pars.join('&') : ""); return url; } else { return url; } } // this is the custom listener added to have the token passed to it after successfully authenticating from // pop up window. This way we don't have to use any local or session storage or cookies document.addEventListener('authTokenSet', function (event) { var token = event.detail.authToken; if (token) { window.localStorage.setItem('token', token); } }); function removeParams(key) { if (history.pushState) { var currentUrl = window.location.href; var currentUrl = removeURLParameter(currentUrl, key); var newurl = currentUrl; window.history.pushState( { path: newurl }, '', newurl); } } function getParameterByName(name) { var url = window.location.href; name = name.replace(/[\[\]]/g, "\\$&"); var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), results = regex.exec(url); if (!results) return null; if (!results[2]) return ''; return decodeURIComponent(results[2].replace(/\+/g, " ")); } function getCookie(name) { var re = new RegExp(name + "=([^;]+)"); var value = re.exec(document.cookie); return (value != null) ? unescape(value[1]) : null; } var sd = getParameterByName('selected_domain') || getCookie('selected_domain'); if (sd) { window.localStorage.setItem('tkmUrl', sd); } var mobile = getParameterByName('mobile'); if (mobile) window.localStorage.setItem('tkmMobile', true); var embed = getParameterByName('embed') if (embed) { sessionStorage.setItem('embed', embed); removeParams('embed'); } var iframe = getParameterByName('iframe') if (iframe) { sessionStorage.setItem('iframe', iframe); removeParams('iframe'); } var teams = getParameterByName('teams') if (teams) { sessionStorage.setItem('teams', teams); removeParams('teams'); } else { sessionStorage.removeItem('teams'); } // fallback for embedded mode to treat login using popup if (embed === 'true' && !iframe && !teams) { sessionStorage.setItem('iframe', 'true'); } </script> <link rel="stylesheet" href="styles.92a57f7453f8a9a6792a.css"></head> <body class="tkm-body" ondragstart="return false"> <script> // frameless var frameless = getParameterByName('frameless') || localStorage.getItem('frameless'); if (frameless === 'off') { localStorage.removeItem('frameless'); removeParams('frameless'); } else if (frameless) { if (document.body) document.body.classList.add('frameless-'+frameless); localStorage.setItem('frameless', frameless); removeParams('frameless'); } // darkmode var darkMode = getParameterByName('dark-mode') || localStorage.getItem('dark-mode'); var embedded = getParameterByName('embed') || sessionStorage.getItem('embed'); if (darkMode === 'true' && embedded !== 'true') { localStorage.setItem('dark-mode', 'true'); if (document.body) document.body.classList.add('dark'); removeParams('dark-mode'); } else if (darkMode === 'false') { localStorage.setItem('dark-mode', 'false'); if (document.body) document.body.classList.remove('dark'); removeParams('dark-mode'); } // scrollbars function scrollBarWidth() { // Creating invisible container var outer = document.createElement('div'); outer.style.visibility = 'hidden'; outer.style.overflow = 'scroll'; // forcing scrollbar to appear outer.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps document.body.appendChild(outer); // Creating inner element and placing it in the container var inner = document.createElement('div'); outer.appendChild(inner); // Calculating difference between container's full width and the child width var width = (outer.offsetWidth - inner.offsetWidth); // Removing temporary elements from the DOM outer.parentNode.removeChild(outer); return width; } if (document.body && scrollBarWidth()) document.body.classList.add('scrollbars'); </script> <link href="style.css" rel="stylesheet"> <tkm-app style="height:100%;"> <div class="spinner"> <div class="sk-cube1 sk-cube"></div> <div class="sk-cube2 sk-cube"></div> <div class="sk-cube4 sk-cube"></div> <div class="sk-cube3 sk-cube"></div> </div> </tkm-app> <script src="runtime-es2015.1eba213af0b233498d9d.js" type="module"></script><script src="runtime-es5.1eba213af0b233498d9d.js" nomodule defer></script><script src="polyfills-es5.710c1172fef9ef797fba.js" nomodule defer></script><script src="polyfills-es2015.910208ce0f93b52085cf.js" type="module"></script><script src="scripts.75bd6ee8491e2cf747f0.js" defer></script><script src="main-es2015.bbe1b9842ca0a899f946.js" type="module"></script><script src="main-es5.bbe1b9842ca0a899f946.js" nomodule defer></script></body> <script src="assets/js/clipboard.js"></script> <script> var clipboard = new ClipboardJS('.btn'); </script> </html>