<!DOCTYPE html><html lang="en" style="" data-color-mode="system" class=" useReactApp  "><head><meta charset="utf-8"><meta name="readme-deploy" content="5.764.0"><meta name="readme-subdomain" content="onetrust"><meta name="readme-repo" content="onetrust-8a219e54a72c"><meta name="readme-basepath-childProject" content="onetrust"><meta name="readme-project-flags" content="0g95AfmgcMFFltgkYAm8IQ==:VdsPorbsKitaCzoKdZeOLy+SwoyMOPsQVvHA1HelQSxa1uWXycoB6cTtvR+w/oMqsKKaXNqBUe9cG1s5WKQc6dcN+1ExisACF4dInvf7TOWnzZVLKDJS9ECESCcHaE6klYFe5c6ApkgzhZqAkccSuA=="><meta name="readme-version" content="1.0"><title>OneTrust Next Generation Android, Android TV, and Fire TV CMP SDK</title><meta name="description" content="The OneTrust Android CMP SDK enables businesses to capture, store, and signal user consent and preferences across devices and downstream vendors or AdTech partners. Designed to support compliance with global privacy regulations like GDPR and CCPA/CPRA, the SDK helps enhance transparency, strengthen user trust, and streamline consent management workflows on Android applications." data-rh="true"><meta property="og:title" content="OneTrust Next Generation Android, Android TV, and Fire TV CMP SDK" data-rh="true"><meta property="og:description" content="The OneTrust Android CMP SDK enables businesses to capture, store, and signal user consent and preferences across devices and downstream vendors or AdTech partners. Designed to support compliance with global privacy regulations like GDPR and CCPA/CPRA, the SDK helps enhance transparency, strengthen user trust, and streamline consent management workflows on Android applications." data-rh="true"><meta property="og:site_name" content="OneTrust Developer Portal"><meta name="twitter:title" content="OneTrust Next Generation Android, Android TV, and Fire TV CMP SDK" data-rh="true"><meta name="twitter:description" content="The OneTrust Android CMP SDK enables businesses to capture, store, and signal user consent and preferences across devices and downstream vendors or AdTech partners. Designed to support compliance with global privacy regulations like GDPR and CCPA/CPRA, the SDK helps enhance transparency, strengthen user trust, and streamline consent management workflows on Android applications." data-rh="true"><meta name="twitter:card" content="summary_large_image"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta property="og:image" content="https://cdn.readme.io/og-image/create?type=docs&amp;title=OneTrust%20Next%20Generation%20Android%2C%20Android%20TV%2C%20and%20Fire%20TV%20CMP%20SDK&amp;projectTitle=OneTrust%20Developer%20Portal&amp;description=The%20OneTrust%20Android%20CMP%20SDK%20enables%20businesses%20to%20capture%2C%20store%2C%20and%20signal%20user%20consent%20and%20preferences%20across%20devices%20and%20downstream%20vendors%20or%20AdTech%20partners.%20Designed%20to%20support%20compliance%20with%20global%20privacy%20regulations%20like%20GDPR%20and%20CCPA%2FCPRA%2C%20the%20SDK%20helps%20enhance%20transparency%2C%20strengthen%20user%20trust%2C%20and%20streamline%20consent%20management%20workflows%20on%20Android%20applications.&amp;logoUrl=https%3A%2F%2Ffiles.readme.io%2Ff83b3a1d97917287a00a51d521682cab46c9329551a2a7413cf6dba86bcf2708-ot-logo-lockup-white.svg&amp;color=%23000000&amp;variant=light" data-rh="true"><meta name="twitter:image" content="https://cdn.readme.io/og-image/create?type=docs&amp;title=OneTrust%20Next%20Generation%20Android%2C%20Android%20TV%2C%20and%20Fire%20TV%20CMP%20SDK&amp;projectTitle=OneTrust%20Developer%20Portal&amp;description=The%20OneTrust%20Android%20CMP%20SDK%20enables%20businesses%20to%20capture%2C%20store%2C%20and%20signal%20user%20consent%20and%20preferences%20across%20devices%20and%20downstream%20vendors%20or%20AdTech%20partners.%20Designed%20to%20support%20compliance%20with%20global%20privacy%20regulations%20like%20GDPR%20and%20CCPA%2FCPRA%2C%20the%20SDK%20helps%20enhance%20transparency%2C%20strengthen%20user%20trust%2C%20and%20streamline%20consent%20management%20workflows%20on%20Android%20applications.&amp;logoUrl=https%3A%2F%2Ffiles.readme.io%2Ff83b3a1d97917287a00a51d521682cab46c9329551a2a7413cf6dba86bcf2708-ot-logo-lockup-white.svg&amp;color=%23000000&amp;variant=light" data-rh="true"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="630"><link id="favicon" rel="shortcut icon" href="https://files.readme.io/40ffb5b-OT-favicon.ico" type="image/x-icon"><link rel="canonical" href="https://developer.onetrust.com/onetrust/docs/android-sdk-next-gen"><script src="https://cdn.readme.io/public/js/cash-dom.min.js?1780673991257"></script><link data-chunk="Footer" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/Footer.769aa3e9fc194cc963d9.css">
<link data-chunk="SuperHub-components-AIDropdown" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/SuperHub-components-AIDropdown.1bad0c7a2cff7a2fe4f8.css">
<link data-chunk="RMDXISH" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/RMDXISH.dea6e5bfa6afaddbb7e2.css">
<link data-chunk="RMDXISH" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/8788.533185837834cd2a0e04.css">
<link data-chunk="Doc" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/Doc.f24b212c015448cc2226.css">
<link data-chunk="Header" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/Header.d4b3597c658e64165943.css">
<link data-chunk="Header" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/ui-styles.140b856e0f723dbeda7d.css">
<link data-chunk="Containers-EndUserContainer" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/Containers-EndUserContainer.fbb9a7eb87647056d143.css">
<link data-chunk="main" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/main.bbf378c51d5ecd3d0cac.css">
<link data-chunk="main" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/main.e16518e000f37a0a49e4.js">
<link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/routes-SuperHub.d60c68197e49023c5d61.js">
<link data-chunk="Containers-EndUserContainer" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/Containers-EndUserContainer.2b3a9d22bd82de494d4a.js">
<link data-chunk="Header" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/7783.6c85fd5bfa2f92d27907.js">
<link data-chunk="Header" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/5386.a8d8ffc9cabcb88dfb4d.js">
<link data-chunk="Header" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/Header.844fd0ad0a0eca39fda2.js">
<link data-chunk="routes-SuperHub-Routes" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/routes-SuperHub-Routes.a8d97e343be9684e1a3a.js">
<link data-chunk="Doc" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/2759.882d2382a880e326c276.js">
<link data-chunk="Doc" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/6146.e0750bc6839fd326854d.js">
<link data-chunk="Doc" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/6328.8423262497f7b1a95f69.js">
<link data-chunk="Doc" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/9503.6b7c733b45b4d59122ea.js">
<link data-chunk="Doc" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/5446.1dae54f5c68a97708554.js">
<link data-chunk="Doc" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/8836.278c0fa83edd766823b0.js">
<link data-chunk="Doc" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/1347.6265ddeff9b9202723b8.js">
<link data-chunk="Doc" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/8209.7406e3a73d200034cb61.js">
<link data-chunk="Doc" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/4089.13723ecc93c3e9fdf340.js">
<link data-chunk="Doc" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/3230.b311c63199128cd7599e.js">
<link data-chunk="Doc" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/5330.b8498cc13fcf60fc2bb1.js">
<link data-chunk="Doc" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/3477.c98d94926fe56e847dc7.js">
<link data-chunk="Doc" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/2575.c4e61bd32afe1ebb101c.js">
<link data-chunk="Doc" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/5939.fb69e6e7dc2b79fb1476.js">
<link data-chunk="Doc" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/9405.b6d8abd05899c05e15b1.js">
<link data-chunk="Doc" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/Doc.57af249e6ee0d2ab76bf.js">
<link data-chunk="ConnectMetadata" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/ConnectMetadata.439a67eac4a4a70f40b3.js">
<link data-chunk="RMDXISH" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/3946.1da4c5e474b668485d12.js">
<link data-chunk="RMDXISH" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/4745.5b0c242639836215dcbb.js">
<link data-chunk="RMDXISH" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/8788.4c1c0cfabf94ec8acb88.js">
<link data-chunk="RMDXISH" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/6121.f2d3a0efda039dbd2717.js">
<link data-chunk="RMDXISH" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/RMDXISH.481f398e8547ee826d84.js">
<link data-chunk="SuperHub-components-AIDropdown" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/3747.cfbb89e56e8b8759a44f.js">
<link data-chunk="SuperHub-components-AIDropdown" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/SuperHub-components-AIDropdown.d91ecbf3871e9e2f9289.js">
<link data-chunk="Footer" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/Footer.04a4d0368fb206901c95.js">
<link data-chunk="main" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/main.bbf378c51d5ecd3d0cac.css">
<link data-chunk="Containers-EndUserContainer" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/Containers-EndUserContainer.fbb9a7eb87647056d143.css">
<link data-chunk="Header" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/ui-styles.140b856e0f723dbeda7d.css">
<link data-chunk="Header" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/Header.d4b3597c658e64165943.css">
<link data-chunk="Doc" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/Doc.f24b212c015448cc2226.css">
<link data-chunk="RMDXISH" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/8788.533185837834cd2a0e04.css">
<link data-chunk="RMDXISH" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/RMDXISH.dea6e5bfa6afaddbb7e2.css">
<link data-chunk="SuperHub-components-AIDropdown" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/SuperHub-components-AIDropdown.1bad0c7a2cff7a2fe4f8.css">
<link data-chunk="Footer" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/Footer.769aa3e9fc194cc963d9.css"><!-- CUSTOM CSS--><style title="rm-custom-css">:root{--project-color-primary:#000000;--project-color-inverse:#fff;--recipe-button-color:#2C6145;--recipe-button-color-hover:#0c1b13;--recipe-button-color-active:#000000;--recipe-button-color-focus:rgba(44, 97, 69, 0.25);--recipe-button-color-disabled:#8dcbab}[id=enterprise] .ReadMeUI[is=AlgoliaSearch]{--project-color-primary:#000000;--project-color-inverse:#fff}a{color:var(--color-link-primary,#2c6145)}a:hover{color:var(--color-link-primary-darken-5,#0c1b13)}a.text-muted:hover{color:var(--color-link-primary,#2c6145)}.btn.btn-primary{background-color:#2c6145}.btn.btn-primary:hover{background-color:#0c1b13}.theme-line #hub-landing-top h2{color:#2c6145}#hub-landing-top .btn:hover{color:#2c6145}.theme-line #hub-landing-top .btn:hover{color:#fff}.theme-solid header#hub-header #header-top{background-color:#000}.theme-solid.header-gradient header#hub-header #header-top{background:linear-gradient(to bottom,#000,#2c6145)}.theme-solid.header-custom header#hub-header #header-top{background-image:url("https://files.readme.io/32e2a364828b6b166fdd52768a9ee523d5481289d3a9406df47108ba727edaad-myot-hero-background.svg")}.theme-line header#hub-header #header-top{border-bottom-color:#000}.theme-line header#hub-header #header-top .btn{background-color:#000}header#hub-header #header-top #header-logo{width:227px;height:40px;margin-top:0;background-image:url("https://files.readme.io/0df333c-small-OT-logo-white-transparent-1200px.png")}#hub-subheader-parent #hub-subheader .hub-subheader-breadcrumbs .dropdown-menu a:hover{background-color:#000}#subheader-links a.active{color:#000!important;box-shadow:inset 0 -2px 0 #000}#subheader-links a:hover{color:#000!important;box-shadow:inset 0 -2px 0 #000;opacity:.7}.discussion .submit-vote.submit-vote-parent.voted a.submit-vote-button{background-color:#2c6145}section#hub-discuss .discussion a .discuss-body h4{color:#2c6145}section#hub-discuss .discussion a:hover .discuss-body h4{color:#0c1b13}#hub-subheader-parent #hub-subheader.sticky-header.sticky{border-bottom-color:#2c6145}#hub-subheader-parent #hub-subheader.sticky-header.sticky .search-box{border-bottom-color:#2c6145}#hub-search-results h3 em{color:#2c6145}.main_background,.tag-item{background:#2c6145!important}.main_background:hover{background:#0c1b13!important}.main_color{color:#000!important}.border_bottom_main_color{border-bottom:2px solid #000}.main_color_hover:hover{color:#000!important}section#hub-discuss h1{color:#2c6145}#hub-reference .hub-api .api-definition .api-try-it-out.active{border-color:#2c6145;background-color:#2c6145}#hub-reference .hub-api .api-definition .api-try-it-out.active:hover{background-color:#0c1b13;border-color:#0c1b13}#hub-reference .hub-api .api-definition .api-try-it-out:hover{border-color:#2c6145;color:#2c6145}#hub-reference .hub-reference .logs .logs-empty .logs-login-button,#hub-reference .hub-reference .logs .logs-login .logs-login-button{background-color:var(--project-color-primary,#2c6145);border-color:var(--project-color-primary,#2c6145)}#hub-reference .hub-reference .logs .logs-empty .logs-login-button:hover,#hub-reference .hub-reference .logs .logs-login .logs-login-button:hover{background-color:#0c1b13;border-color:#0c1b13}#hub-reference .hub-reference .logs .logs-empty>svg>path,#hub-reference .hub-reference .logs .logs-login>svg>path{fill:#2C6145;fill:var(--project-color-primary,#2C6145)}#hub-reference .hub-reference .logs:last-child .logs-empty,#hub-reference .hub-reference .logs:last-child .logs-login{margin-bottom:35px}#hub-reference .hub-reference .hub-reference-section .hub-reference-left header .hub-reference-edit:hover{color:#2c6145}.main-color-accent{border-bottom:3px solid #000;padding-bottom:8px}/*! BEGIN HUB_CUSTOM_STYLES */.App{--font-family:'Open Sans',sans-serif}span.APIMethod_deprecated{display:none!important}.reference-redesign .Sidebar-link_deprecated-icon1TLWr7KfHfCp{left:2px!important;position:absolute}[data-color-mode=dark] .App .rm-Changelog,[data-color-mode=dark] .App .rm-CustomPage,[data-color-mode=dark] .App .rm-Discuss,[data-color-mode=dark] .App .rm-Guides,[data-color-mode=dark] .App .rm-Recipes,[data-color-mode=dark] .App .rm-Recipes-modal,[data-color-mode=dark] .App .rm-ReferenceMain,[data-color-mode=dark] .App .rm-SuggestedEdits,[data-color-mode=dark] .App .rm-SuggestionDiff{--md-code-background:var(--gray20)!important;--md-code-tabs:var(--gray15)!important}[data-color-mode=dark] .markdown-body pre code.rdmd-code.theme-light{background:var(--gray20)!important}@media (prefers-color-scheme:dark){[data-color-mode=system] .markdown-body pre code.rdmd-code.theme-light{background:var(--gray20)!important}}@media (prefers-color-scheme:dark){[data-color-mode=system] .App .rm-Changelog,[data-color-mode=system] .App .rm-CustomPage,[data-color-mode=system] .App .rm-Discuss,[data-color-mode=system] .App .rm-Guides,[data-color-mode=system] .App .rm-Recipes,[data-color-mode=system] .App .rm-Recipes-modal,[data-color-mode=system] .App .rm-ReferenceMain,[data-color-mode=system] .App .rm-SuggestedEdits,[data-color-mode=system] .App .rm-SuggestionDiff{--md-code-background:var(--gray20)!important;--md-code-tabs:var(--gray15)!important}}@media (prefers-color-scheme:dark){[data-color-mode=system] .markdown-body code{background-color:#242e34!important}}.rm-ReferenceMain .rm-Article{display:flex;flex-direction:column-reverse;justify-content:flex-end}header[class*=headline-container]{order:3}.rm-ReferenceMain .markdown-body{margin-top:10px;order:2}.Reference-section{order:1}header.APISectionHeader3LN_-QIR0m7x.rm-APISectionHeader{order:-1}.APIResponseSchemaPicker2ehjUsNOSwdc.rm-APIResponseSchemaPicker{order:-2}[class^=Footer-desktop]{order:-3}.callout[theme=🗒]{--emoji:unset;--icon:"\f249";--icon-color:#50af51;--border:var(--icon-color)!important}.callout[theme=🗒️]{--emoji:unset;--icon:"\f249";--icon-color:#50af51;--border:var(--icon-color)!important}[class^=TutorialStep-Body] pre>code.rdmd-code.lang-json.theme-light{max-height:43vh}hr{border:solid rgba(255,255,255)!important;border-width:1px 0 0!important}.rm-PlaygroundRequest .CodeSnippet{overflow:auto!important}.LandingWrap16kRMSdr5J8g{--gap:3em;--edge:var(--markdown-edge, #dfe2e5);-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:nowrap column;flex-flow:nowrap column;grid-gap:var(--gap);margin:0 auto;max-width:100%;padding:var(--gap) calc(var(--gap)/2);width:1000px}.LandingBlock3PM-HyBxby3X{display:grid;grid-auto-columns:1fr;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.LandingBlock-link_viewAllX8PdNqsaoOrY{margin-top:5px;opacity:.6}.LandingBlock-link_viewAllX8PdNqsaoOrY:active,.LandingBlock-link_viewAllX8PdNqsaoOrY:focus,.LandingBlock-link_viewAllX8PdNqsaoOrY:hover{opacity:1}.LandingBlock_align\=right5brkzb7uF2uO{text-align:right}.LandingBlock_align\=center12RqtJarcIcH{text-align:center}.LandingBlock_align\=leftG1r7ROyW_AGB{text-align:left}.LandingBlock3PM-HyBxby3X a:not(:hover){text-decoration:none}.LandingBlock3PM-HyBxby3X hr{border-color:var(--edge)}.LandingBlock3PM-HyBxby3X ul{padding:0;list-style:none}.LandingBlock3PM-HyBxby3X .heading{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.LandingBlock-Three2lm6yBrv1MlV{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;grid-gap:var(--gap)}.LandingBlock-Three2lm6yBrv1MlV>*{-webkit-box-flex:0;-ms-flex:0 33.33%;flex:0 33.33%}.LandingBlock-Docs1N0x68Z0Yw2J,.LandingBlock-Links38HRtdeemVvp{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:wrap row;flex-flow:wrap row;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;grid-gap:var(--gap)}.LandingBlock-Docs1N0x68Z0Yw2J a,.LandingBlock-Links38HRtdeemVvp a{color:var(--graphite)}.LandingBlock-Docs1N0x68Z0Yw2J a:focus,.LandingBlock-Docs1N0x68Z0Yw2J a:hover,.LandingBlock-Links38HRtdeemVvp a:focus,.LandingBlock-Links38HRtdeemVvp a:hover{color:var(--color-link-primary)}.LandingBlock-Docs1N0x68Z0Yw2J li,.LandingBlock-Links38HRtdeemVvp li{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.LandingBlock-Docs1N0x68Z0Yw2J h3,.LandingBlock-Links38HRtdeemVvp h3{color:var(--LandingPage-heading-color,inherit);padding-bottom:.2em;border-bottom:1px solid var(--edge)}.LandingBlock-Docs1N0x68Z0Yw2J>*,.LandingBlock-Links38HRtdeemVvp>*{-webkit-box-flex:1;-ms-flex:1 calc(33% - var(--gap));flex:1 calc(33% - var(--gap));max-width:33%}.LandingBlock-TextMedia2eohAoAZBn4h{display:-webkit-box;display:-ms-flexbox;display:flex;grid-gap:var(--gap)}.LandingBlock-TextMedia_reverse2UDtbGaKixp1>:last-child{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.LandingBlock-TextMedia2eohAoAZBn4h>*{-webkit-box-flex:1;-ms-flex:1 calc(50% - var(--gap));flex:1 calc(50% - var(--gap));max-width:50%}.LandingBlock-TextMedia2eohAoAZBn4h:last-child img:only-child{margin-bottom:calc(-1 * var(--gap))}.LandingBlock-TextMedia-media2NFhDb7Wi36K{-webkit-box-flex:1;-ms-flex:1 0 50%;flex:1 0 50%;max-width:50%;text-align:initial}.LandingBlock-TextMedia-media2NFhDb7Wi36K.markdown-body pre{margin-bottom:0!important}.LandingBlock-TextMedia-media2NFhDb7Wi36K:is(img){max-width:50%;max-height:42vh;-o-object-fit:contain;object-fit:contain}.LandingBlock-TextMedia-media2NFhDb7Wi36K:only-child{max-width:100%;max-height:unset;margin:0 auto}.LandingBlock-TextMedia-media2NFhDb7Wi36K:not(img){max-width:60%!important;width:100%}@media(min-width:768px){.LandingBlock-Links38HRtdeemVvp{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.LandingBlock-Links38HRtdeemVvp>*{margin:0}.LandingBlock-Docs1N0x68Z0Yw2J>:last-child:nth-child(3n-1){margin-right:calc(32.8% + (var(--gap)/ 2))}.LandingBlock-Docs1N0x68Z0Yw2J>:last-child:nth-child(3n-2){margin-right:calc((32.8% + (var(--gap)/ 2)) * 2)}}@media(max-width:768px){.LandingBlockWrap14DcwE_zdFiG{--gap:1.5em;width:100%;padding:var(--gap);-webkit-box-sizing:border-box;box-sizing:border-box}.LandingBlock3PM-HyBxby3X{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:nowrap column;flex-flow:nowrap column}.LandingBlock-Docs1N0x68Z0Yw2J,.LandingBlock-Links38HRtdeemVvp{display:grid;grid-template-columns:repeat(2,1fr)}.LandingBlock-Docs1N0x68Z0Yw2J>*,.LandingBlock-Links38HRtdeemVvp>*{max-width:unset}.LandingBlock-TextMedia2eohAoAZBn4h>*{max-width:unset}.LandingBlock-TextMedia-media2NFhDb7Wi36K{max-width:100%!important}.LandingBlock-TextMedia-media2NFhDb7Wi36K:not(img){max-width:unset!important;width:100%}}@media(max-width:480px){.LandingBlock-Docs1N0x68Z0Yw2J,.LandingBlock-Links38HRtdeemVvp{grid-template-columns:1fr}}.rm-LandingPage{--LandingPage-heading-color:var(--color-primary)}#ssr-main header .LandingPageHeader-title16RMwPkp2O2W{color:#fff;font-family:var(--font-family);font-size:2em;margin-bottom:15px;font-weight:var(--font-weight-bold)}#hub-subheader-parent{height:0}header#hub-header #header-top #header-nav-left li a,header#hub-header #header-top #header-nav-right li a{color:#fff;text-decoration:none}.container,.hub-container{max-width:1440px;margin:auto;width:100%;position:relative}[data-color-mode=dark] [class^=LandingBlock] .markdown-body h2{color:#fff}[data-color-mode=dark] [class^=LandingBlock] .markdown-body p{color:#fff!important}[data-color-mode=dark] [class^=LandingBlock] .markdown-body a{color:#d3d3d3}.callout .theme-light span.cm-s-neo{background:#f0f0f0}[data-color-mode=dark] .callout .theme-light span.cm-s-neo{background:#242e34}@media (prefers-color-scheme:dark){[data-color-mode=system] .callout .theme-light span.cm-s-neo{background:#242e34}}.ot-footer{font-family:"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}.ot-footer h1,.ot-footer h2,.ot-footer h3,.ot-footer h4,.ot-footer h5,.ot-footer h6{margin:0 0 8px}.ot-footer-font-weight-thin{font-weight:200}.ot-footer-font-weight-light{font-weight:300}.ot-footer-text-color--white{color:#fff}.ot-footer-body-1{font-size:24px;line-height:28px}.ot-footer-flex-direction{flex-direction:column}.ot-footer-height-38{line-height:38px}.ot-footer-padding-right-32{padding-right:32px}.ot-footer-padding-right-64{padding-right:64px}.ot-footer-padding-left-64{padding-left:64px}.ot-footer-padding-left-40{padding-left:40px}.ot-footer-padding-bottom-16{padding-bottom:16px}.ot-footer-separator{display:flex}.ot-footer-separator__spacing--large{margin-bottom:24px;margin-top:24px}.ot-footer-separator__spacing--small{margin-bottom:8px;margin-top:8px}.ot-footer-separator__spacing--medium{margin-bottom:16px;margin-top:16px}.ot-footer-separator__horizontal-rule{border:none;height:1px}.ot-footer-container{background-color:#101614;position:relative;z-index:1}.ot-footer-content{margin:0 auto;max-width:1440px;width:100%}.ot-footer-links{display:grid;gap:0;width:100%;grid-template-columns:repeat(2,50%)}.ot-footer-links p{font-size:14px;line-height:20px}.ot-footer-links-block{-webkit-box-align:start;-ms-flex-align:start;align-items:start;display:-webkit-box;display:-ms-flexbox;display:flex}.ot-footer-links-block .ot-footer-font-weight-thin{font-size:24px;line-height:28px;margin-bottom:24px;margin-right:32px;width:187px}.ot-footer-links-block ul{margin-right:32px;max-width:296px}.ot-footer-links-block a{text-decoration:none;font-size:14px;line-height:20px}.ot-footer-text{font-size:14px;font-weight:300;line-height:20px}.ot-footer-list{list-style:none;padding:0;margin:0}.ot-footer-list__item{margin-bottom:8px}.ot-footer-list__item-link{text-decoration:none;transition:color .2s ease}.ot-footer-list__item-link:hover{color:#6cc04a!important;text-decoration:none!important}.ot-footer-list__item-title{font-size:14px;line-height:20px}@media (min-width:882px){.ot-footer-list{margin-bottom:80px}}.ot-footer-privacy-container{position:relative}.ot-footer-privacy-container::before{display:block;background:linear-gradient(270deg,#479dbb,#479dbb 16.666%,#499da8 33.332%,#4c9e96 49.998%,#4d9e85 66.664%,#51a071 83.33%,#559e5e);content:"";height:4px;left:0;position:relative;top:0;width:100%}.ot-footer-privacy{background-color:#346e4a}.ot-footer-privacy .ot-footer-body-text{font-size:24px;line-height:28px}.ot-footer-title__text{font-size:40px;line-height:48px;font-weight:300}@media (max-width:768px){.ot-footer-padding-left-40,.ot-footer-padding-left-64{padding-left:22px}.ot-footer-padding-right-40,.ot-footer-padding-right-64{padding-right:22px}.ot-footer-separator__spacing--large{margin-top:14px;margin-bottom:14px}.ot-footer-links{gap:20px}.ot-footer-links_content{display:flex;flex-direction:column;gap:20px}.ot-footer-links-block{flex-direction:column}.ot-footer-links-block h3{width:auto;margin-bottom:10px;margin-right:0}.ot-footer-links-block ul{margin-right:0;max-width:initial}.ot-footer-links-block.ot-footer-flex-direction.ot-footer-padding-right-32{padding-right:0}.ot-footer-links-block.ot-footer-flex-direction+.ot-footer-links-block.ot-footer-flex-direction{margin-top:20px}.ot-footer-privacy{padding-right:22px}.ot-footer-privacy.ot-footer-padding-bottom-16{padding-bottom:36px}.ot-footer-privacy h2{font-size:34px;line-height:normal}}@media (max-width:512px){.ot-footer-links{grid-template-columns:repeat(1,100%)}}button.Button.Button_xs.APIAuth-oauth-footer-reauthorize3rGALj24H4ZX.Button_primary_ghost.Button_primary{display:none}.custom-scopes{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;padding:8px 0}.custom-scopes-label{font-size:12px;font-weight:600;color:var(--color-text-muted,#6b7280);width:100%;margin-bottom:4px}.scope-pill{position:relative;display:inline-flex;align-items:center;padding:6px 12px;font-size:12px;font-weight:500;font-family:monospace;background:var(--color-bg-page,#f3f4f6);color:var(--color-text-default,#374151);border:1px solid var(--color-border-default,#d1d5db);border-radius:16px;cursor:default;transition:all .15s ease}.scope-pill:hover{background:var(--color-primary,#2563eb);color:#fff;border-color:var(--color-primary,#2563eb)}.scope-pill .scope-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);padding:8px 12px;background:var(--color-bg-tooltip,#1f2937);color:#fff;font-size:11px;font-family:inherit;border-radius:6px;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .15s ease,visibility .15s ease;z-index:100;max-width:250px;white-space:normal;text-align:center}.scope-pill .scope-tooltip::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--color-bg-tooltip,#1f2937)}.scope-pill:hover .scope-tooltip{opacity:1;visibility:visible}:root{--onetrust-green:#50af51;--onetrust-green-dark:#55a05e}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy #cookie-policy-title{color:transparent!important}@media (prefers-color-scheme:dark){html[data-color-mode=system] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy :is(
h5,h6,li,p,a,span,td,#cookie-policy-description,.ot-sdk-cookie-policy-group
){color:#fff!important}html[data-color-mode=system] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a,html[data-color-mode=system] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a:hover{background:0 0}}html[data-color-mode=dark] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy :is(
h5,h6,li,p,a,span,td,#cookie-policy-description,.ot-sdk-cookie-policy-group
){color:#fff!important}html[data-color-mode=dark] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a,html[data-color-mode=dark] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a:hover{background:0 0}blockquote.callout.callout_warning.onetrust-custom-callout{color:var(--slate);--Callout-bg:#fcf8f2!important}blockquote.callout.callout_error.onetrust-custom-callout-cmp{--Callout-bg:#fdf7f7!important;--Callout-border:rgb(216.56875, 83.4, 78.93125)}img.ot-recipe-label{pointer-events:none}.TutorialCard-Description2yaRK8FfwVRG{overflow:hidden!important;display:-webkit-box!important;-webkit-line-clamp:8!important;-webkit-box-orient:vertical!important}.Avatar.Avatar_md.TutorialCard-Avatar2GqJCrkbnRPc.Avatar_emoji{content-visibility:hidden;display:none}.ot-tags-container{padding-left:15px;flex-shrink:0}.ot-tags{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;margin-right:5px;margin-top:2px;border-radius:var(--border-radius-lg);-webkit-box-shadow:var(--box-shadow-pill);box-shadow:var(--box-shadow-pill);-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;flex-direction:row-reverse;font-family:var(--font-family);font-size:12px;font-weight:var(--font-weight-bold);height:20px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;line-height:20px;padding-left:8px;padding-right:8px;text-align:center;text-transform:uppercase;white-space:nowrap}.ot-tags-ha{background:#9370db;text-shadow:1px 1px 0 #663399,0 1px 0 #663399,1px 0 0 #663399}.ot-tags-ha:hover{background:#663399;cursor:pointer}.ot-tags-sl{background:gray;text-shadow:1px 1px 0 #696969,0 1px 0 #696969,1px 0 0 #696969}.ot-tags-sl:hover{background:#696969;cursor:pointer}.ot-tags-rs{background:tomato;text-shadow:1px 1px 0 #b22222,0 1px 0 #b22222,1px 0 0 #b22222}.rm-Guides #content-head .col-xs-3 .icon{animation:jump .8s infinite alternate}.PageThumbs-button .icon{animation:jump .8s infinite alternate;padding-right:5px}@keyframes jump{0%{transform:translateY(0)}50%{transform:translateY(-5px)}100%{transform:translateY(0)}}.markdown-body table td,.markdown-body table th{text-align:left!important}.App .rm-CustomPage #content-head h1{display:none!important}#notfound{position:relative;height:100vh}#notfound .notfound{position:absolute;left:50%;top:30%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.notfound{max-width:767px;width:100%;line-height:1.4;text-align:center;padding:15px}.notfound .notfound-404{position:relative;height:220px}.notfound .notfound-404 h1{font-family:Kanit,sans-serif;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);font-size:186px;font-weight:200;margin:0;background:linear-gradient(130deg,#2c6145,#55a05e);color:transparent;-webkit-background-clip:text;background-clip:text;text-transform:uppercase}.notfound h2{font-family:Kanit,sans-serif;font-size:33px;font-weight:200;text-transform:uppercase;margin-top:0;margin-bottom:25px;letter-spacing:3px}.notfound p{font-family:Kanit,sans-serif;font-size:16px;font-weight:200;margin-top:0;margin-bottom:25px}.notfound a{font-family:Kanit,sans-serif;color:#55a05e;font-weight:200;text-decoration:none;border-bottom:1px dashed #55a05e;border-radius:2px}.notfound-social>a{display:inline-block;height:40px;line-height:40px;width:40px;font-size:14px;color:#2c6145;border:1px solid #2c6145;border-radius:50%;margin:3px;-webkit-transition:.2s all;transition:.2s all}.notfound-social>a:hover{color:#fff;background-color:#55a05e;border-color:#55a05e}@media only screen and (max-width:480px){.notfound .notfound-404{position:relative;height:168px}.notfound .notfound-404 h1{font-size:142px}.notfound h2{font-size:22px}}:root{--container:1200px!important;--container-lg:98%!important;--hub-main-max-width:80%!important;--hub-playground-width:30%!important;--hub-sidebar-width:20%!important;--hub-toc-width:20%!important;--hub-content-max-width:100%!important}.rm-Guides .content-body{padding-right:80px}.Header-bottom2eLKOFXMEmh5{margin:auto;width:100%;max-width:100%!important;padding:5px}.Header-topuTMpygDG4e1V{border:none!important}.rm-SearchToggle{width:300px!important}.Header-leftADQdGVqx1wqU .Dropdown_toggle{order:1}.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*="/onetrust/"]{order:2}.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*="/onetrust/docs"]{order:4}.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*="/onetrust/recipes"]{order:5}.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*="/onetrust/reference"]{order:3}.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*="/onetrust/changelog"]{order:6}.App{--font-family:'Open Sans',sans-serif!important}.rm-Sidebar-heading{color:#346e4a!important}@media (prefers-color-scheme:dark){[data-color-mode=system] .rm-Sidebar-heading{color:#55a05e!important}}[data-color-mode=dark] .rm-Sidebar-heading{color:#55a05e!important}.ProductsWrapper{display:flex;flex-wrap:wrap;justify-content:center;text-decoration:none}.SDKWrapper{display:flex;flex-wrap:wrap;text-decoration:none}.ProductCard{width:45%;margin:10px;padding:15px;border:1px solid #ddd;border-radius:8px;text-align:center;text-decoration:none;color:#333;transition:box-shadow .3s;position:relative}.SDKCard{width:20%;margin:10px;padding:10px;border:1px solid #ddd;border-radius:8px;text-align:center;text-decoration:none;color:#333;transition:box-shadow .3s;position:relative}.ProductCard:hover{box-shadow:0 4px 8px rgba(0,0,0,.1);transform:translateY(-2px)}.SDKCard:hover{box-shadow:0 4px 8px rgba(0,0,0,.1);transform:translateY(-2px)}.ProductCard a{text-decoration:none!important;display:flex;flex-direction:row;align-items:flex-start;justify-content:center;height:100%}.SDKCard a{text-decoration:none!important;display:flex;flex-direction:column!important;align-items:center;justify-content:center;height:100%}.ProductCard img{width:80px;height:80px;margin-bottom:10px;margin-right:10px}.SDKCard svg{width:95%;height:80px;position:relative;top:40%;-webkit-transform:translateY(-60%);-ms-transform:translateY(-60%);transform:translateY(-60%);left:0;right:0;margin:auto;text-align:center}.ProductCard_dark_icon{display:none!important}.ProductCard_light_icon{display:inline-block}.ProductCard_text{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.ProductCard h4{margin-top:0;margin-bottom:0;font-size:1.1rem;text-decoration:none}.SDKCard h4{margin-top:15px;margin-bottom:0;font-size:.9rem;text-decoration:none!important;color:#000}.ProductCard p{margin:5px 0 0;font-size:.8rem;color:#333;text-decoration:none;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;-webkit-line-clamp:3;text-overflow:ellipsis;max-height:5em;white-space:normal}@media (prefers-color-scheme:dark){[data-color-mode=system] .ProductCard p{color:#fff}[data-color-mode=system] .SDKCard h4{color:#fff}[data-color-mode=system] .SDKCard path[fill=white]{fill:var(--color-bg-page)}[data-color-mode=system] .SDKCard path{fill:white}[data-color-mode=system] .SDKCard path[fill="#A213EC"]{fill:var(--color-bg-page)}[data-color-mode=system] .SDKCard svg[title=MAUI] path[fill="#FFFFFF"]{fill:#FFFFFF}[data-color-mode=system] .ProductCard:hover{box-shadow:0 4px 8px rgba(255,255,255,.1);transform:translateY(-2px)}[data-color-mode=system] .SDKCard:hover{box-shadow:0 4px 8px rgba(255,255,255,.1);transform:translateY(-2px)}}@media (prefers-color-scheme:dark){[data-color-mode=system] .ProductCard_dark_icon{display:inline-block!important}}@media (prefers-color-scheme:dark){[data-color-mode=system] .ProductCard_light_icon{display:none}}[data-color-mode=dark] .SDKCard h4{color:#fff}[data-color-mode=dark] .ProductCard:hover{box-shadow:0 4px 8px rgba(255,255,255,.1);transform:translateY(-2px)}[data-color-mode=dark] .SDKCard:hover{box-shadow:0 4px 8px rgba(255,255,255,.1);transform:translateY(-2px)}[data-color-mode=dark] .SDKCard path[fill=white]{fill:var(--color-bg-page)}[data-color-mode=dark] .SDKCard path{fill:white}[data-color-mode=dark] .SDKCard path[fill="#A213EC"]{fill:var(--color-bg-page)}[data-color-mode=dark] .SDKCard svg[title=MAUI] path[fill="#FFFFFF"]{fill:#FFFFFF}[data-color-mode=dark] .ProductCard p{color:#fff}[data-color-mode=dark] .ProductCard_dark_icon{display:inline-block!important}[data-color-mode=dark] .ProductCard_light_icon{display:none}.slds-p-top--xx-large,.slds-p-top_xx-large{padding-top:var(--lwc-spacingXxLarge,3rem)}.slds-p-bottom--xx-large,.slds-p-bottom_xx-large{padding-bottom:var(--lwc-spacingXxLarge,3rem)}.slds-grid{display:flex}.slds-wrap{flex-wrap:wrap;align-items:flex-start}.slds-p-around--small,.slds-p-around_small{padding:var(--lwc-spacingSmall,.75rem)}.slds-size--1-of-1,.slds-size_1-of-1{width:100%}.slds-medium-size--3-of-12,.slds-medium-size_3-of-12{width:25%}.slds-large-size--2-of-12,.slds-large-size_2-of-12{width:16.6666666667%}.slds-p-top--small,.slds-p-top_small{padding-top:var(--lwc-spacingSmall,.75rem)}.slds-medium-size--12-of-12,.slds-medium-size_12-of-12{width:100%}.slds-medium-size--12-of-12,.slds-medium-size_12-of-12{width:100%}.slds-grid--overflow .slds-col,.slds-grid_overflow .slds-col{min-width:11.25em;max-width:22.5em}body{--header-logo-height:30px}hr{border:solid rgba(255,255,255)!important;border-width:1px 0 0!important}.cMyOT_FooterComponent.myOTFooter{background-color:#2c3643;color:#fff;font-family:"Open Sans"}.cMyOT_FooterComponent .myOTFooterHeading{font-size:18px;font-weight:500}.cMyOT_FooterComponent .myOTFooterLink,.cMyOT_FooterComponent .myOTPrivacySection{font-size:16px;font-weight:200;color:#fff!important}.cMyOT_FooterComponent .myOT2020-onetrust-all,.cMyOT_FooterComponent .myOTPrivacySection{font-weight:200;font-size:14px;line-height:19px}.cMyOT_FooterComponent.myOTFooter a:hover{text-decoration:none!important;color:#6cc04a!important}.cMyOT_FooterComponent hr{margin:0}@media only screen and (max-width:800px){.cMyOT_FooterComponent .myOTEventsHeading{font-size:25px!important;padding:1rem!important}}@media only screen and (min-width:1025px){.cMyOT_FooterComponent .myOTFooterOTSection{margin-left:10%;margin-right:10%}.cMyOT_FooterComponent .myOT2020-onetrust-all{float:left}.cMyOT_FooterComponent .myOTPrivacySection{float:right;display:flex}}/*! END HUB_CUSTOM_STYLES */</style><!--<meta http-equiv="Content-Security-Policy" content="block-all-mixed-content ; default-src 'self'; script-src 'self' 'report-sample' 'unsafe-inline' 'unsafe-eval' geolocation.onetrust.com privacyportal.onetrust.com cdn.cookielaw.org cdn.readme.io github.com unpkg.com cdn.onetrust.com *.wistia.com *.wistia.net *.litix.io cdnjs.cloudflare.com *.onetrust.com; style-src 'self' 'unsafe-inline' fonts.gstatic.com fonts.googleapis.com cdn.lineicons.com cdnjs.cloudflare.com cdn.readme.io unpkg.com fast.wistia.com *.onetrust.com; object-src 'none'; frame-src 'self' cdn.embedly.com fast.wistia.com fast.wistia.net *.onetrust.com; child-src 'self' *.wistia.com *.onetrust.com; img-src 'self' data: blob: cdn.cookielaw.org *.pstmn.io files.readme.io unpkg.com img.shields.io *.onetrust.com *.wistia.com *.wistia.net embedwistia-a.akamaihd.net *.onetrust.com; font-src 'self' data: cdnjs.cloudflare.com fonts.gstatic.com fonts.googleapis.com cdn.lineicons.com cdn.readme.io unpkg.com *.wistia.com *.onetrust.com; connect-src 'self' geolocation.onetrust.com privacyportal.onetrust.com cdn.cookielaw.org *.onetrust.com try.readme.io *.ingest.sentry.io *.algolianet.com *.algolia.net *.algolia.io *.wistia.com *.wistia.net embedwistia-a.akamaihd.net embed-e.wistia.com *.litix.io; manifest-src 'self'; base-uri 'self'; form-action 'self'; media-src 'self' *.wistia.net *.wistia.com embedwistia-a.akamaihd.net; worker-src 'self';">-->
<meta http-equiv="Content-Security-Policy" content="block-all-mixed-content; default-src 'self'; script-src 'self' 'report-sample' 'unsafe-inline' 'unsafe-eval' geolocation.onetrust.com privacyportal.onetrust.com cdn.cookielaw.org cdn.readme.io github.com unpkg.com cdn.onetrust.com *.wistia.com *.wistia.net *.litix.io cdnjs.cloudflare.com *.onetrust.com; style-src 'self' 'unsafe-inline' fonts.gstatic.com fonts.googleapis.com cdn.lineicons.com cdnjs.cloudflare.com cdn.readme.io unpkg.com fast.wistia.com *.onetrust.com; object-src 'none'; frame-src 'self' *.readme.com *.readme.io cdn.embedly.com fast.wistia.com fast.wistia.net *.onetrust.com; child-src 'self' *.wistia.com *.onetrust.com; img-src 'self' data: blob: cdn.cookielaw.org *.pstmn.io files.readme.io unpkg.com img.shields.io *.onetrust.com *.wistia.com *.wistia.net embedwistia-a.akamaihd.net *.onetrust.com; font-src 'self' data: cdnjs.cloudflare.com fonts.gstatic.com fonts.googleapis.com cdn.lineicons.com cdn.readme.io unpkg.com *.wistia.com *.onetrust.com; connect-src 'self' geolocation.onetrust.com privacyportal.onetrust.com cdn.cookielaw.org *.onetrust.com *.readme.io *.readme.com *.ingest.sentry.io *.algolianet.com *.algolia.net *.algolia.io *.wistia.com *.wistia.net embedwistia-a.akamaihd.net embed-e.wistia.com *.litix.io; manifest-src 'self'; base-uri 'self'; form-action 'self'; media-src 'self' *.wistia.net *.wistia.com embedwistia-a.akamaihd.net *.readme.io; worker-src 'self'; frame-ancestors 'self' cdn.readme.io *.readme.io *.readme.com *.onetrust.com;">
<!-- OneTrust Cookies Consent Notice start for developer.onetrust.com -->
<script src="https://cdn.cookielaw.org/consent/018f9b70-7823-7874-9581-b4ecf0e526a2/otSDKStub.js"  type="text/javascript" charset="UTF-8" data-domain-script="018f9b70-7823-7874-9581-b4ecf0e526a2" ></script>
<script type="text/javascript">
function OptanonWrapper() { }
</script>
<!-- OneTrust Cookies Consent Notice end for developer.onetrust.com -->
<link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Rubik:400,400i,500">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Poppins:400,500,600">
<link href="https://cdn.lineicons.com/4.0/lineicons.css" rel="stylesheet" />
<!-- Google Site Verication -->
<meta name="google-site-verification" content="uKX18lBpCRTZkC5CvXhQfZ4NFHBxaWgJmrJNopgj6KA" />
<div id="brave-warning" class="Banner2qY-Hhfqm_Gx Banner_secondary1reFai47T0j4 Banner_smUPcJRlth4_Dl Banner_fixeda1mFpjcc1TJ6" style="display:none"><i class="icon-warning"></i>We've detected that you are using the Brave browser. This site does not display correctly when the Brave Shields are enabled. Please set your Shields to Down.</div>
<link href='https://fonts.googleapis.com/css?family=Open Sans' rel='stylesheet'><meta name="loadedProject" content="onetrust"><meta name="parentProject" content="onetrust-group"><meta name="childrenProjects" content="[{&quot;subdomain&quot;:&quot;onetrust&quot;,&quot;subpath&quot;:&quot;&quot;,&quot;name&quot;:&quot;OneTrust Developer Portal&quot;,&quot;_id&quot;:&quot;620d23a442d78f05786a49c4&quot;}]"><meta name="siblingProjects" content="[{&quot;subdomain&quot;:&quot;onetrust&quot;,&quot;name&quot;:&quot;OneTrust Developer Portal&quot;,&quot;_id&quot;:&quot;620d23a442d78f05786a49c4&quot;}]"><script>var storedColorMode = `system` === 'system' ? window.localStorage.getItem('color-scheme') : `system`
document.querySelector('[data-color-mode]').setAttribute('data-color-mode', storedColorMode)</script><script id="config" type="application/json" data-json="{&quot;algoliaIndex&quot;:&quot;readme_search_v2&quot;,&quot;amplitude&quot;:{&quot;apiKey&quot;:&quot;8b550cf334a130e3d6ea41a88b894d8&quot;,&quot;enabled&quot;:&quot;true&quot;,&quot;sessionReplay&quot;:{&quot;enabled&quot;:&quot;true&quot;,&quot;sampleRate&quot;:&quot;0.1&quot;}},&quot;api&quot;:{&quot;upload&quot;:{&quot;fileSizeLimit&quot;:10485760,&quot;fileSizeLimitFormatted&quot;:&quot;10MB&quot;}},&quot;asset_url&quot;:&quot;https://cdn.readme.io&quot;,&quot;dashDomain&quot;:&quot;dash.readme.com&quot;,&quot;domain&quot;:&quot;readme.io&quot;,&quot;domainFull&quot;:&quot;https://dash.readme.com&quot;,&quot;encryptedLocalStorageKey&quot;:&quot;ekfls-2025-03-27&quot;,&quot;fullstory&quot;:{&quot;enabled&quot;:true,&quot;orgId&quot;:&quot;FSV9A&quot;},&quot;git&quot;:{&quot;preview&quot;:&quot;https://githug-prod.gitto.rdme.io&quot;,&quot;sync&quot;:{&quot;bitbucket&quot;:{&quot;installationLink&quot;:&quot;https://developer.atlassian.com/console/install/310151e6-ca1a-4a44-9af6-1b523fea0561?signature=AYABeMn9vqFkrg%2F1DrJAQxSyVf4AAAADAAdhd3Mta21zAEthcm46YXdzOmttczp1cy13ZXN0LTI6NzA5NTg3ODM1MjQzOmtleS83MDVlZDY3MC1mNTdjLTQxYjUtOWY5Yi1lM2YyZGNjMTQ2ZTcAuAECAQB4IOp8r3eKNYw8z2v%2FEq3%2FfvrZguoGsXpNSaDveR%2FF%2Fo0BHUxIjSWx71zNK2RycuMYSgAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDOJgARbqndU9YM%2FRdQIBEIA7unpCah%2BIu53NA72LkkCDhNHOv%2BgRD7agXAO3jXqw0%2FAcBOB0%2F5LmpzB5f6B1HpkmsAN2i2SbsFL30nkAB2F3cy1rbXMAS2Fybjphd3M6a21zOmV1LXdlc3QtMTo3MDk1ODc4MzUyNDM6a2V5LzQ2MzBjZTZiLTAwYzMtNGRlMi04NzdiLTYyN2UyMDYwZTVjYwC4AQICAHijmwVTMt6Oj3F%2B0%2B0cVrojrS8yZ9ktpdfDxqPMSIkvHAGT%2FMTvCxC3XwnwlulZe975AAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMMUUe9d1YmFOo373TAgEQgDuJo7TayM6NL19Sj9RPooRrl8rYxwKgvu9gkLNc3GuyyovWI1xA2qTr0LQzMRsf3imrAWsywzPcsjnvuAAHYXdzLWttcwBLYXJuOmF3czprbXM6dXMtZWFzdC0xOjcwOTU4NzgzNTI0MzprZXkvNmMxMjBiYTAtNGNkNS00OTg1LWI4MmUtNDBhMDQ5NTJjYzU3ALgBAgIAeLKa7Dfn9BgbXaQmJGrkKztjV4vrreTkqr7wGwhqIYs5AZR28Sibv2eBxSIg2MydtvEAAAB%2BMHwGCSqGSIb3DQEHBqBvMG0CAQAwaAYJKoZIhvcNAQcBMB4GCWCGSAFlAwQBLjARBAzzWhThsIgJwrr%2FY2ECARCAOxoaW9pob21lweyAfrIm6Fw7gd8D%2B%2F8LHk4rl3jjULDM35%2FVPuqBrqKunYZSVCCGNGB3RqpQJr%2FasASiAgAAAAAMAAAQAAAAAAAAAAAAAAAAAEokowLKsF1tMABEq%2BKNyJP%2F%2F%2F%2F%2FAAAAAQAAAAAAAAAAAAAAAQAAADJLzRcp6MkqKR43PUjOiRxxbxXYhLc6vFXEutK3%2BQ71yuPq4dC8pAHruOVQpvVcUSe8dptV8c7wR8BTJjv%2F%2FNe8r0g%3D&amp;product=bitbucket&quot;}}},&quot;metrics&quot;:{&quot;billingCronEnabled&quot;:&quot;true&quot;,&quot;dashUrl&quot;:&quot;https://m.readme.io&quot;,&quot;defaultUrl&quot;:&quot;https://m.readme.io&quot;,&quot;exportMaxRetries&quot;:12,&quot;wsUrl&quot;:&quot;wss://m.readme.io&quot;},&quot;micro&quot;:{&quot;baseUrl&quot;:&quot;https://micro-beta.readme.com&quot;},&quot;novuNotification&quot;:{&quot;appId&quot;:&quot;ob_MiAPOPqgP&quot;},&quot;proxyUrl&quot;:&quot;https://try.readme.io&quot;,&quot;readmeRecaptchaSiteKey&quot;:&quot;6LesVBYpAAAAAESOCHOyo2kF9SZXPVb54Nwf3i2x&quot;,&quot;releaseVersion&quot;:&quot;5.764.0&quot;,&quot;reservedWords&quot;:{&quot;tools&quot;:[&quot;execute-request&quot;,&quot;get-endpoint&quot;,&quot;get-server-variables&quot;,&quot;list-endpoints&quot;,&quot;list-specs&quot;,&quot;search-endpoints&quot;,&quot;search&quot;,&quot;fetch&quot;]},&quot;sentry&quot;:{&quot;dsn&quot;:&quot;https://3bbe57a973254129bcb93e47dc0cc46f@o343074.ingest.sentry.io/2052166&quot;,&quot;enabled&quot;:true},&quot;shMigration&quot;:{&quot;promoVideo&quot;:&quot;&quot;,&quot;forceWaitlist&quot;:false,&quot;migrationPreview&quot;:false},&quot;sslBaseDomain&quot;:&quot;readmessl.com&quot;,&quot;sslGenerationService&quot;:&quot;ssl.readmessl.com&quot;,&quot;superHub&quot;:{&quot;newProjectsEnabled&quot;:true},&quot;wootric&quot;:{&quot;accountToken&quot;:&quot;NPS-122b75a4&quot;,&quot;enabled&quot;:true}}"></script></head><body class="body-none theme-solid header-solid header-bg-size-cover header-bg-pos-tl header-overlay-triangles reference-layout-row lumosity-dark "><div style="display:none" aria-hidden="true">For AI agents: visit https://developer.onetrust.com/llms.txt for an index of all pages formatted in Markdown and endpoints in OpenAPI.</div><div id="ssr-top"></div><div id="ssr-main"><div class="App ThemeContext ThemeContext_dark ThemeContext_classic ThemeContext_spacing_legacy" style="--color-primary:#000000;--color-primary-inverse:#fff;--color-primary-alt:#2C6145;--color-primary-darken-10:#000000;--color-primary-darken-20:#000000;--color-primary-alpha-25:rgba(0, 0, 0, 0.25);--color-link-primary:#2C6145;--color-link-primary-dark-override:#ffffff;--color-link-button:#2C6145;--color-link-button-text:#fff;--color-link-button-border:rgba(255, 255, 255, 0.2);--color-link-button-darken-5:#244f39;--color-link-button-darken-10:#1c3e2c;--color-link-button-alpha-50:rgba(44, 97, 69, 0.5);--color-link-button-alpha-25:rgba(44, 97, 69, 0.25);--color-link-primary-darken-5:#244f39;--color-link-primary-darken-10:#1c3e2c;--color-link-primary-darken-20:#0c1b13;--color-link-primary-alpha-50:rgba(44, 97, 69, 0.5);--color-link-primary-alpha-25:rgba(44, 97, 69, 0.25);--color-link-background:rgba(44, 97, 69, 0.09);--color-link-text:#fff;--color-tab-active:#000000;--color-login-link:#2C6145;--color-login-link-text:#fff;--color-login-link-darken-10:#1c3e2c;--color-login-link-primary-alpha-50:rgba(44, 97, 69, 0.5)"><div class="SuperHub2RNxzk6HzHiJ rm-ReadMe"><div class="ContentWithOwlbotx4PaFDoA1KMz"><div class="ContentWithOwlbot-content2X1XexaN8Lf2"><header class="Header3zzata9F_ZPQ rm-Header_classic Header_collapsible3n0YXfOvb_Al rm-Header"><div class="rm-Header-top Header-topuTMpygDG4e1V Header-top_classic3g7Q6zoBy8zh"><div class="rm-Container rm-Container_flex rm-ContainerFull"><div style="outline:none" tabindex="-1"><a href="#content" target="_self" class="Button Button_md rm-JumpTo Header-jumpTo3IWKQXmhSI5D Button_primary">Jump to Content</a></div><div class="rm-Header-left Header-leftADQdGVqx1wqU"><a class="rm-Logo Header-logo1Xy41PtkzbdG" href="https://developer.onetrust.com" target="_self"><img alt="OneTrust Developer Portal" class="rm-Logo-img Header-logo-img3YvV4lcGKkeb" src="https://files.readme.io/f83b3a1d97917287a00a51d521682cab46c9329551a2a7413cf6dba86bcf2708-ot-logo-lockup-white.svg"/></a><a class="Button Button_md rm-Header-link rm-Header-top-link Button_slate_text Header-link2tXYTgXq85zW" href="https://my.onetrust.com/s" target="_self" to="https://my.onetrust.com/s">myOneTrust</a><a class="Button Button_md rm-Header-link rm-Header-top-link Button_slate_text Header-link2tXYTgXq85zW" href="https://my.onetrust.com/s/group/0F91Q000000hGyPSAU/developer-experience" target="_self" to="https://my.onetrust.com/s/group/0F91Q000000hGyPSAU/developer-experience">Developer Forum</a><a class="Button Button_md rm-Header-link rm-Header-top-link Button_slate_text Header-link2tXYTgXq85zW" href="https://developer.onetrust.com/onetrust/page/partners" target="_self" to="https://developer.onetrust.com/onetrust/page/partners">Technology Partners</a></div><div class="rm-Header-left Header-leftADQdGVqx1wqU Header-left_mobile1RG-X93lx6PF"><div><button aria-label="Toggle navigation menu" class="icon-menu menu3d6DYNDa3tk5" type="button"></button><div class=""><div class="Flyout95xhYIIoTKtc undefined rm-Flyout" data-testid="flyout"><div class="MobileFlyout1hHJpUd-nYkd"><a aria-current="page" class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck-  active" href="/onetrust/docs" target="_self"><i class="icon-guides NavItem-badge1qOxpfTiALoz rm-Header-bottom-link-icon"></i><span class="NavItem-textSlZuuL489uiw">SDK Reference</span></a><a class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- " href="/onetrust/recipes" target="_self"><i class="icon-recipes NavItem-badge1qOxpfTiALoz rm-Header-bottom-link-icon"></i><span class="NavItem-textSlZuuL489uiw">Recipes</span></a><a class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- " href="/onetrust/reference" target="_self"><i class="icon-references NavItem-badge1qOxpfTiALoz rm-Header-bottom-link-icon"></i><span class="NavItem-textSlZuuL489uiw">API Reference</span></a><a class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- " href="/onetrust/changelog" target="_self"><i class="icon-changelog NavItem-badge1qOxpfTiALoz rm-Header-bottom-link-icon"></i><span class="NavItem-textSlZuuL489uiw">Changelog</span></a><hr class="MobileFlyout-divider10xf7R2X1MeW"/><a class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- NavItem_dropdown-muted1xJVuczwGc74" href="https://my.onetrust.com/s" rel="noopener" target="_blank" to="https://my.onetrust.com/s">myOneTrust</a><a class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- NavItem_dropdown-muted1xJVuczwGc74" href="https://my.onetrust.com/s/group/0F91Q000000hGyPSAU/developer-experience" rel="noopener" target="_blank" to="https://my.onetrust.com/s/group/0F91Q000000hGyPSAU/developer-experience">Developer Forum</a><a class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- NavItem_dropdown-muted1xJVuczwGc74" href="https://developer.onetrust.com/onetrust/page/partners" rel="noopener" target="_blank" to="https://developer.onetrust.com/onetrust/page/partners">Technology Partners</a><a class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- NavItem_dropdown-muted1xJVuczwGc74" href="http://developer.onetrust.com/onetrust/changelog.rss" rel="noopener" target="_blank" to="http://developer.onetrust.com/onetrust/changelog.rss">Subscribe via RSS</a><a class="MobileFlyout-logo3Lq1eTlk1K76 Header-logo1Xy41PtkzbdG rm-Logo" href="https://developer.onetrust.com" target="_self"><img alt="OneTrust Developer Portal" class="Header-logo-img3YvV4lcGKkeb rm-Logo-img" src="https://files.readme.io/f83b3a1d97917287a00a51d521682cab46c9329551a2a7413cf6dba86bcf2708-ot-logo-lockup-white.svg"/></a></div></div></div></div><div class="Header-left-nav2xWPWMNHOGf_"><i aria-hidden="true" class="icon-guides Header-left-nav-icon10glJKFwewOv"></i>SDK Reference</div></div><div class="rm-Header-right Header-right21PC2XTT6aMg"><span class="Header-right_desktop14ja01RUQ7HE"><a class="Button Button_md rm-Header-link rm-Header-top-link Button_slate_text Header-link2tXYTgXq85zW" href="http://developer.onetrust.com/onetrust/changelog.rss" target="_self" to="http://developer.onetrust.com/onetrust/changelog.rss">Subscribe via RSS</a></span><div class="Header-searchtb6Foi0-D9Vx"><button aria-label="Search ⌘k" class="rm-SearchToggle" data-symbol="⌘"><div class="rm-SearchToggle-icon icon-search1"></div></button></div><div class="ThemeToggle-wrapper1ZcciJoF3Lq3 Dropdown Dropdown_closed" data-testid="dropdown-container"><button aria-label="Toggle color scheme" id="ThemeToggle-button-Rip9da" aria-haspopup="dialog" class="Button Button_sm rm-ThemeToggle ThemeToggle2xLp9tbEJ0XB Dropdown-toggle Button_secondary Button_secondary_text" type="button"><svg aria-labelledby="ThemeToggle-button-Rip9da" class="Icon ThemeToggle-Icon22I6nqvxacln ThemeToggle-Icon_active2ocLaPY47U28" role="img" viewBox="0 0 24 24"><path class="ThemeToggle-Icon-raysbSO3FKsq2hn" d="M12 2v2"></path><path d="M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715"></path><path d="M16 12a4 4 0 0 0-4-4"></path><path class="ThemeToggle-Icon-raysbSO3FKsq2hn" d="m19 5-1.256 1.256"></path><path class="ThemeToggle-Icon-raysbSO3FKsq2hn" d="M20 12h2"></path></svg><svg aria-labelledby="ThemeToggle-button-Rip9da" class="Icon ThemeToggle-Icon22I6nqvxacln ThemeToggle-Icon_dark3c1eP_qTU7uF" role="img" viewBox="0 0 24 24"><path d="M19 14.79C18.8427 16.4922 18.2039 18.1144 17.1582 19.4668C16.1126 20.8192 14.7035 21.8458 13.0957 22.4265C11.4879 23.0073 9.74798 23.1181 8.0795 22.7461C6.41102 22.3741 4.88299 21.5345 3.67423 20.3258C2.46546 19.117 1.62594 17.589 1.25391 15.9205C0.881876 14.252 0.992717 12.5121 1.57346 10.9043C2.1542 9.29651 3.18083 7.88737 4.53321 6.84175C5.8856 5.79614 7.5078 5.15731 9.21 5C8.21341 6.34827 7.73385 8.00945 7.85853 9.68141C7.98322 11.3534 8.70386 12.9251 9.8894 14.1106C11.0749 15.2961 12.6466 16.0168 14.3186 16.1415C15.9906 16.2662 17.6517 15.7866 19 14.79Z"></path><path class="ThemeToggle-Icon-star2kOSzvXrVCbT" d="M18.3707 1C18.3707 3.22825 16.2282 5.37069 14 5.37069C16.2282 5.37069 18.3707 7.51313 18.3707 9.74138C18.3707 7.51313 20.5132 5.37069 22.7414 5.37069C20.5132 5.37069 18.3707 3.22825 18.3707 1Z"></path></svg><svg aria-labelledby="ThemeToggle-button-Rip9da" class="Icon ThemeToggle-Icon22I6nqvxacln" role="img" viewBox="0 0 24 24"><path class="ThemeToggle-Icon-raysbSO3FKsq2hn" d="M12 1V3"></path><path class="ThemeToggle-Icon-raysbSO3FKsq2hn" d="M18.36 5.64L19.78 4.22"></path><path class="ThemeToggle-Icon-raysbSO3FKsq2hn" d="M21 12H23"></path><path class="ThemeToggle-Icon-raysbSO3FKsq2hn" d="M18.36 18.36L19.78 19.78"></path><path class="ThemeToggle-Icon-raysbSO3FKsq2hn" d="M12 21V23"></path><path class="ThemeToggle-Icon-raysbSO3FKsq2hn" d="M4.22 19.78L5.64 18.36"></path><path class="ThemeToggle-Icon-raysbSO3FKsq2hn" d="M1 12H3"></path><path class="ThemeToggle-Icon-raysbSO3FKsq2hn" d="M4.22 4.22L5.64 5.64"></path><path d="M12 17C14.7614 17 17 14.7614 17 12C17 9.23858 14.7614 7 12 7C9.23858 7 7 9.23858 7 12C7 14.7614 9.23858 17 12 17Z"></path></svg></button></div></div></div></div><div class="Header-bottom2eLKOFXMEmh5 Header-bottom_classic rm-Header-bottom"><div class="rm-Container rm-Container_flex rm-ContainerFull"><nav aria-label="Primary navigation" class="Header-leftADQdGVqx1wqU Header-subnavnVH8URdkgvEl Header-subnav_links1fSsYMNRxHdu" role="navigation"><a aria-current="page" class="Button Button_md rm-Header-link rm-Header-bottom-link Button_slate_text Header-bottom-link_mobile  active" href="/onetrust/docs" target="_self"><i class="icon-guides rm-Header-bottom-link-icon"></i><span>SDK Reference</span></a><a class="Button Button_md rm-Header-link rm-Header-bottom-link Button_slate_text Header-bottom-link_mobile " href="/onetrust/recipes" target="_self"><i class="icon-recipes rm-Header-bottom-link-icon"></i><span>Recipes</span></a><a class="Button Button_md rm-Header-link rm-Header-bottom-link Button_slate_text Header-bottom-link_mobile " href="/onetrust/reference" target="_self"><i class="icon-references rm-Header-bottom-link-icon"></i><span>API Reference</span></a><a class="Button Button_md rm-Header-link rm-Header-bottom-link Button_slate_text Header-bottom-link_mobile " href="/onetrust/changelog" target="_self"><i class="icon-changelog rm-Header-bottom-link-icon"></i><span>Changelog</span></a><div class="Header-subnav-tabyNLkcOA6xAra" style="transform:translateX(0px);width:0"></div></nav><button align="center" justify="between" style="--flex-gap:var(--xs)" class="Button Button_sm Flex Flex_row MobileSubnav1DsTfasXloM2 Button_secondary Button_secondary_outline" type="button"><span class="Button-label">Android SDK</span><span class="IconWrapper Icon-wrapper2z2wVIeGsiUy"><span class="Icon3_D2ysxFZ_ll Icon-empty6PuNZVw0joPv" style="--icon-color:inherit;--icon-size:inherit;--icon-stroke-width:2px"></span></span></button></div></div><div class="hub-search-results--reactApp " id="hub-search-results"><div class="hub-container"><div class="modal-backdrop rm-SearchModal" role="button" tabindex="0"></div></div></div></header><main class="SuperHubDoc3Z-1XSVTg-Q1 rm-Guides" id="content"><div class="SuperHubDoc-container2RY1FPE4Ewze rm-Container rm-Container_flex rm-ContainerFull"><nav aria-label="Secondary navigation" class="rm-Sidebar hub-sidebar reference-redesign Nav3C5f8FcjkaHj rm-Sidebar_guides" id="hub-sidebar" role="navigation"><div class="Sidebar1t2G1ZJq-vU1 rm-Sidebar hub-sidebar-content"><section class="Sidebar-listWrapper6Q9_yUrG906C Sidebar-listWrapper_collapsible2FvmZ40ldHxj rm-Sidebar-section"><button aria-label="Expand Getting Started category" class="Sidebar-headingTRQyOa2pk0gh Sidebar-heading_collapsible1GOm26rptZH6 rm-Sidebar-category" type="button">Getting Started<span class="IconWrapper Icon-wrapper2z2wVIeGsiUy"><span class="Icon3_D2ysxFZ_ll Icon-empty6PuNZVw0joPv Sidebar-heading-icon2CRff70bVWxM" style="--icon-color:inherit;--icon-size:var(--icon-md);--icon-stroke-width:2px"></span></span></button><ul class="Sidebar-list_sidebarLayout3RaX72iQNOEI Sidebar-list3cZWQLaBf9k8 Sidebar-list_collapsible3Y5alpA9ncHt rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/onetrust-sdk-reference"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-pageIcon2sQE9C4g_faB"><i class="fad fa-cubes-stacked"></i></span><span class="Sidebar-link-text_label1gCT_uPnx7Gu">OneTrust SDK Reference</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" rel="noopener" target="_blank" data-active="" href="https://my.onetrust.com/s/article/UUID-0297af95-8515-28ff-6f86-0f489f3c3e54?topicId=0TO1Q000000wxmbWAA"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-pageIcon2sQE9C4g_faB"><i class="fad fa-rocket-launch"></i></span><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Quick Start Guide: SDKs</span></span><span class="Sidebar-link-metaLhOiyAaGZrkY"><i aria-label="Opens in new tab" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-externalIcon icon-arrow-up-right" role="img"></i></span><button aria-expanded="false" aria-label="Show subpages for Quick Start Guide: SDKs" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/app-scanning"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">SDK Overview</span></span><button aria-expanded="false" aria-label="Show subpages for SDK Overview" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/app-scanning"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Scanning and Categorizing SDKs</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/how-app-scanner-works"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">How App Scanner Works</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/scan-apps-via-api"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Scan Apps via API</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/publish-changes"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Publish Changes</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/mobile-ctv"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Mobile &amp; OTT/CTV SDKs</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" rel="noopener" target="_blank" data-active="" href="https://my.onetrust.com/s/article/UUID-18879ed6-b1bc-98a4-66e5-28a7d4356a65?topicId=0TO1Q000000sseOWAQ"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-pageIcon2sQE9C4g_faB"><i class="fad fa-file-code"></i></span><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Quick Start Guide: Website Scripts</span></span><span class="Sidebar-link-metaLhOiyAaGZrkY"><i aria-label="Opens in new tab" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-externalIcon icon-arrow-up-right" role="img"></i></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/taking-a-onetrust-hands-on-lab"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-pageIcon2sQE9C4g_faB"><i class="fad fa-screen-users"></i></span><span class="Sidebar-link-text_label1gCT_uPnx7Gu">OneTrust Hands-On Lab</span></span></a></li></ul></section><section class="Sidebar-listWrapper6Q9_yUrG906C Sidebar-listWrapper_collapsible2FvmZ40ldHxj rm-Sidebar-section"><button aria-label="Expand Additional Resources category" class="Sidebar-headingTRQyOa2pk0gh Sidebar-heading_collapsible1GOm26rptZH6 rm-Sidebar-category" type="button">Additional Resources<span class="IconWrapper Icon-wrapper2z2wVIeGsiUy"><span class="Icon3_D2ysxFZ_ll Icon-empty6PuNZVw0joPv Sidebar-heading-icon2CRff70bVWxM" style="--icon-color:inherit;--icon-size:var(--icon-md);--icon-stroke-width:2px"></span></span></button><ul class="Sidebar-list_sidebarLayout3RaX72iQNOEI Sidebar-list3cZWQLaBf9k8 Sidebar-list_collapsible3Y5alpA9ncHt rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/managing-known-users"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Managing Known Users</span></span><button aria-expanded="false" aria-label="Show subpages for Managing Known Users" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/cross-domain-cross-device"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Cross Domain and Cross Device Consent</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/unified-profile"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Unified Profile</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/adding-sdk-to-app"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Data Discovery Connector SDK</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/tc-string-encoder"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB TC String Encoder</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/getting-started-1"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Web Form Collection Point JavaScript SDK</span></span><button aria-expanded="false" aria-label="Show subpages for Web Form Collection Point JavaScript SDK" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/command-queue"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Command queue for embedded web forms</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/common-sdk-methods"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Common SDK Methods (External web form)</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/embedded-web-forms-methods-and-events"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Embedded web forms methods and events</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/sample-javascript-sdk-and-instructions"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Sample JavaScript SDK and Instructions</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/trigger-collection-points"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Trigger Collection Points</span></span></a></li></ul></li></ul></section><section class="Sidebar-listWrapper6Q9_yUrG906C Sidebar-listWrapper_collapsible2FvmZ40ldHxj Sidebar-listWrapper_expandedvCieTVZJcoub rm-Sidebar-section"><button aria-label="Collapse SDK Reference category" class="Sidebar-headingTRQyOa2pk0gh Sidebar-heading_collapsible1GOm26rptZH6 Sidebar-heading_expanded2qZRKQjOeXe9 rm-Sidebar-category" type="button">SDK Reference<span class="IconWrapper Icon-wrapper2z2wVIeGsiUy"><span class="Icon3_D2ysxFZ_ll Icon-empty6PuNZVw0joPv Sidebar-heading-icon2CRff70bVWxM" style="--icon-color:inherit;--icon-size:var(--icon-md);--icon-stroke-width:2px"></span></span></button><ul class="Sidebar-list_sidebarLayout3RaX72iQNOEI Sidebar-list3cZWQLaBf9k8 Sidebar-list_collapsible3Y5alpA9ncHt Sidebar-list_expandedWy9fQM8vmtOc rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/onetrusts-next-generation-cmp-sdks"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">OneTrust Next Generation CMP SDKs</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">AI Guard</span></span><button aria-expanded="false" aria-label="Show subpages for AI Guard" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-prerequisites"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Getting Started</span></span><button aria-expanded="false" aria-label="Show subpages for Getting Started" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-prerequisites"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Prerequisites</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-create-api-key"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Create an API Key</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-deploy-worker-node"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Deploy the Light Worker Node</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-install-sdk"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Install the SDK</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-initializing-the-client"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">SDK Guide</span></span><button aria-expanded="false" aria-label="Show subpages for SDK Guide" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-initializing-the-client"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Initializing the Client</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-classification"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Classify Text</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-redaction"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Redact Sensitive Data</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-streaming"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Streaming Classification</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-metrics"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Observability &amp; Metrics</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-classifier-descriptions"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Classifier Descriptions</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-api-overview"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">API Reference</span></span><button aria-expanded="false" aria-label="Show subpages for API Reference" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-api-overview"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">API Overview</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-api-classify"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">POST /classifications/v1</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-api-metric"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">POST /metric</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-api-health"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">GET /health</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-service-configuration"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Configuration</span></span><button aria-expanded="false" aria-label="Show subpages for Configuration" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-service-configuration"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Service Configuration</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-authentication"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Authentication &amp; Authorization</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-tls-certificate-pinning"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">TLS &amp; Certificate Pinning</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-classification-profiles"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Classification Profiles</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-docker"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Deployment</span></span><button aria-expanded="false" aria-label="Show subpages for Deployment" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-docker"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Docker Deployment</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-kubernetes"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Kubernetes Deployment</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-networking"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Networking Requirements</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-metrics-overview"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Observability</span></span><button aria-expanded="false" aria-label="Show subpages for Observability" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-metrics-overview"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Metrics Overview</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-meters"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Meter Definitions</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-exporters"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Metrics Exporters</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-troubleshooting"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Troubleshooting</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-error-reference"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Error Reference</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ai-guard-faq"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">FAQ</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3 subnav-expanded"><a aria-current="page" class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link active" target="_self" href="/onetrust/docs/android-sdk-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Android SDK</span></span><button aria-expanded="true" aria-label="Hide subpages for Android SDK" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/download-and-import-sdk-to-app-android-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Getting Started</span></span><button aria-expanded="false" aria-label="Show subpages for Getting Started" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/download-and-import-sdk-to-app-android-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Download and Import the SDK</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/sample-app-android-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Sample App</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/initialize-sdk-android-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Initialize the SDK</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/display-user-interfaces-android-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Display User Interfaces</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/customize-user-interfaces-android-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Customize User Interfaces</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/when-consent-changes-android-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">When Consent Changes</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/multi-profile-consent-android-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Additional Resources</span></span><button aria-expanded="false" aria-label="Show subpages for Additional Resources" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/multi-profile-consent-android-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Multi Profile Consent</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/passing-consent-to-webview-android-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Passing Consent to WebView</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/sdk-logging-android-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">SDK Logging</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/google-advertising-id-android-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Google Advertising ID</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-ccpa-us-privacy-string-android-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB CCPA US Privacy String</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-tcf-android-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB Transparency and Consent Framework (TCF)</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-global-privacy-protocol-android-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB Global Privacy Protocol</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/cnil-continue-without-accepting-android-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">CNIL Continue Without Accepting</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/proxy-sdk-network-calls-android-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Proxy SDK Network Calls</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/google-consent-mode-android-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Google Consent Mode</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/universal-consent-purposes-android-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Universal Consent Purposes</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/api-reference-android-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">API Reference</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/age-based-consent-for-android-sdks"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Age-Based Consent</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/android-offline-mode"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Offline Mode</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/android-legacy-to-next-gen-sdk-deprecated-methods"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Legacy to Next Gen SDK Deprecated Methods</span></span><button aria-expanded="false" aria-label="Show subpages for Legacy to Next Gen SDK Deprecated Methods" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/android-legacy-deprecated-methods-cmp-configuration-data"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">CMP Configuration Data</span></span></a></li></ul></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/android-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Android SDK (Legacy)</span></span><button aria-expanded="false" aria-label="Show subpages for Android SDK (Legacy)" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/sample-app-android-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Getting Started</span></span><button aria-expanded="false" aria-label="Show subpages for Getting Started" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/sample-app-android-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Sample App</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/download-the-sdk-android-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Download and Import SDK</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/adding-sdk-to-app-android-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Adding SDK to App</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/initialize-the-sdk-android-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Initialize SDK</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/display-user-interfaces-android-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Display User Interfaces</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/customize-user-interfaces-android-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Customize User Interfaces</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/when-consent-changes-android-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">When Consent Changes</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/multi-profile-consent-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Additional Resources</span></span><button aria-expanded="false" aria-label="Show subpages for Additional Resources" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/multi-profile-consent-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Multi Profile Consent</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/pass-consent-to-webview-android-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Passing Consent to WebView</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/sdk-logging-android-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">SDK Logging</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/google-advertising-id-android-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Google Advertising ID</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-ccpa-us-privacy-string-android-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB CCPA US Privacy String</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-tcf-22-android-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB TCF 2.2</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-global-privacy-platform-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB Global Privacy Protocol</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/cnil-continue-without-accepting-android-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">CNIL Continue Without Accepting</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/proxying-sdk-network-calls-android-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Proxying SDK Network Calls</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/google-consent-mode-android-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Google Consent Mode</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/api-reference-android-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">API Reference</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/universal-consent-purposes-android-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Universal Consent Purposes</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/changelog-android-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Changelog</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ios-tvos-sdk-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">iOS &amp; tvOS SDK</span></span><button aria-expanded="false" aria-label="Show subpages for iOS &amp; tvOS SDK" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/sample-app-ios-tvos-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Getting Started</span></span><button aria-expanded="false" aria-label="Show subpages for Getting Started" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/sample-app-ios-tvos-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Sample App</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/download-the-sdk-ios-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Download and Import the SDK</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/initialize-sdk-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Initialize the SDK</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/display-user-interfaces-ios-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Display User Interfaces</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/when-consent-changes-ios-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">When Consent Changes</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/customize-user-interfaces-ios-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Additional Resources</span></span><button aria-expanded="false" aria-label="Show subpages for Additional Resources" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/customize-user-interfaces-ios-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Customize User Interfaces (Optional)</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/passing-consent-to-webview-ios-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Passing Consent to WebView</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/app-tracking-transparency-ios-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">App Tracking Transparency</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-tcf-22-ios-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB Transparency and Consent Framework (TCF)</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-global-privacy-protocol-ios-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB Global Privacy Protocol</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-ccpa-us-privacy-string-ios-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB CCPA US Privacy String</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/google-consent-mode-ios-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Google Consent Mode</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/universal-consent-purposes-ios-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Universal Consent Purposes</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/sdk-logging-ios-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">SDK Logging</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/proxying-sdk-network-calls-ios-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Proxying SDK Network Calls</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/multi-profile-consent-ios-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Multi Profile Consent</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ios-26-support"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">iOS 26 Support</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/age-based-consent-for-ios-sdks"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Age-Based Consent</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ios-offline-mode"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Offline Mode</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/onetrust-sdk-helpers"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">API Reference</span></span><button aria-expanded="false" aria-label="Show subpages for API Reference" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/onetrust-sdk-helpers"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">OneTrust SDK Helpers</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/onetrust-ui-helpers"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">OneTrust UI Helpers</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/onetrust-sdk-additional-helpers"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">OneTrust SDK Additional Helpers</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/groups-categoriespurposes"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Groups (Categories/Purposes) Helpers</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/sdk-list"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">SDK List Helpers</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/vendors-helpers"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Vendors Helpers</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/multi-profile"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Multi-Profile</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/universal-consent-purposes-ucp-helpers"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Universal Consent Purposes Helpers</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/prompts-att-and-age-gate"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Prompts</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/proxy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Proxy</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/additional-information"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Additional Information</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ios-legacy-to-next-gen-sdk-deprecated-methods"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Legacy to Next Gen SDK Deprecated Methods</span></span><button aria-expanded="false" aria-label="Show subpages for Legacy to Next Gen SDK Deprecated Methods" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ios-legacy-deprecated-methods-cmp-configuration-data"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">CMP Configuration Data</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ios-legacy-deprecated-methods-general-vendors-and-iab-data"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">General Vendors and IAB Data</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ios-legacy-deprecated-methods-universal-consent-data"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Universal Consent Data</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ios-legacy-deprecated-methods-proxy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Proxy</span></span></a></li></ul></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ios-tvos-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">iOS &amp; tvOS SDK (Legacy)</span></span><button aria-expanded="false" aria-label="Show subpages for iOS &amp; tvOS SDK (Legacy)" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/sample-app-ios-tvos-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Getting Started</span></span><button aria-expanded="false" aria-label="Show subpages for Getting Started" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/sample-app-ios-tvos-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Sample App</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/download-the-sdk-ios-tvos-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Download the SDK</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/add-sdk-to-app-ios-tvos-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Add SDK to App</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/initialize-the-sdk-ios-tvos-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Initialize SDK</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/display-user-interfaces-ios-tvos-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Display User Interfaces</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/customize-user-interfaces-ios-tvos-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Customize User Interfaces</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/when-consent-changes-ios-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">When Consent Changes</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/multi-profile-consent-ios-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Additional Resources</span></span><button aria-expanded="false" aria-label="Show subpages for Additional Resources" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/multi-profile-consent-ios-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Multi Profile Consent</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/passing-consent-to-webview-ios-tvos-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Passing Consent to WebView</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/sdk-logging-ios-tvos-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">SDK Logging</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/app-tracking-transparency-ios-tvos-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">App Tracking Transparency</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-ccpa-us-privacy-string-ios-tvos-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB CCPA US Privacy String</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-tcf-22-ios-tvos-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB TCF 2.2</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-global-privacy-platform-1-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB Global Privacy Protocol</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/cnil-continue-without-accepting-ios-tvos-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">CNIL Continue Without Accepting</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/proxying-sdk-network-calls-ios-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Proxying SDK Network Calls</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/google-consent-mode-ios-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Google Consent Mode</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/api-reference-ios-tvos-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">API Reference</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/universal-consent-purposes-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Universal Consent Purposes</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/changelog-ios-tvos-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Changelog</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/roku-new"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Roku SDK</span></span><button aria-expanded="false" aria-label="Show subpages for Roku SDK" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/download-the-sdk-roku-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Getting Started</span></span><button aria-expanded="false" aria-label="Show subpages for Getting Started" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/download-the-sdk-roku-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Download and Import the SDK</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/initialize-the-sdk-roku-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Initialize the SDK</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/display-user-interfaces-roku-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Display User Interfaces</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/when-consent-changes-roku-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">When Consent Changes</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/multi-profile-consent-roku-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Additional Resources</span></span><button aria-expanded="false" aria-label="Show subpages for Additional Resources" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/multi-profile-consent-roku-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Multi Profile Consent</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-ccpa-us-privacy-string-roku-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB CCPA US Privacy String</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-tcf-22-roku-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB Transparency and Consent Framework (TCF)</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-global-privacy-protocol-roku-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB Global Privacy Protocol</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/cross-device-consent-roku-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Cross Device and Cross Domain Consent</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/api-reference-roku-next-gen"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">API Reference</span></span></a></li></ul></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/roku-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Roku SDK (Legacy)</span></span><button aria-expanded="false" aria-label="Show subpages for Roku SDK (Legacy)" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/download-sdk-roku-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Getting Started</span></span><button aria-expanded="false" aria-label="Show subpages for Getting Started" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/download-sdk-roku-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Download the SDK</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/add-sdk-to-app-roku-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Add SDK to App</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/initialize-the-sdk-roku-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Initialize the SDK</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/display-user-interfaces-roku-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Display User Interfaces</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/when-consent-changes-roku-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">When Consent Changes</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-ccpa-us-privacy-string-roku-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Additional Resources</span></span><button aria-expanded="false" aria-label="Show subpages for Additional Resources" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-ccpa-us-privacy-string-roku-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB CCPA US Privacy String</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-tcf-22-1-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB TCF 2.2</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-global-privacy-platform-2-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB Global Privacy Protocol</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/cross-device-consent-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Cross Device and Domain Consent - Roku</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/changelog-roku"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Changelog</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/tizen-and-webos-sdk-new"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">HTML5 SDK - Tizen and WebOS</span></span><button aria-expanded="false" aria-label="Show subpages for HTML5 SDK - Tizen and WebOS" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/migrating-from-the-legacy-sdk-to-the-new-cmp-sdk"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Getting Started</span></span><button aria-expanded="false" aria-label="Show subpages for Getting Started" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/migrating-from-the-legacy-sdk-to-the-new-cmp-sdk"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Migrating from the Legacy SDK to the CMP API</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/download-sdk-new"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Download the SDK</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/configure-sdk-parameters-new"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Initialize the SDK</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/display-user-interfaces-new"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Display User Interfaces</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/when-consent-changes-new"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">When Consent Changes</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-ccpa-us-privacy-string-new"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Additional Resources</span></span><button aria-expanded="false" aria-label="Show subpages for Additional Resources" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-ccpa-us-privacy-string-new"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB CCPA US Privacy String</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-tcf-22-new"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB Transparency and Consent Framework (TCF)</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-global-privacy-protocol-new"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB Global Privacy Protocol</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/rtl-support"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Right-To-Left (RTL) Support</span></span></a></li></ul></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/tizen-and-webos-sdk-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">HTML5 SDK - Tizen and WebOS (Legacy)</span></span><button aria-expanded="false" aria-label="Show subpages for HTML5 SDK - Tizen and WebOS (Legacy)" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/download-sdk"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Getting Started</span></span><button aria-expanded="false" aria-label="Show subpages for Getting Started" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/download-sdk"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Download SDK</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/configure-sdk-parameters"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Configure SDK Parameters</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/display-user-interfaces"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Display User Interfaces</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/when-consent-changes"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">When Consent Changes</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/sdk-logging"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Additional Resources</span></span><button aria-expanded="false" aria-label="Show subpages for Additional Resources" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/sdk-logging"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">SDK Logging</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-ccpa-us-privacy-string-1"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB CCPA US Privacy String</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-tcf-22"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB TCF 2.2</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-global-privacy-platform-4"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB Global Privacy Protocol</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/api-reference"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">API Reference</span></span></a></li></ul></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/maui-and-unity-sdk-new"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">MAUI and Unity SDK</span></span><button aria-expanded="false" aria-label="Show subpages for MAUI and Unity SDK" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/download-the-sdk-maui-new"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Getting Started</span></span><button aria-expanded="false" aria-label="Show subpages for Getting Started" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/download-the-sdk-maui-new"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Download the SDK</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/add-sdk-to-app-maui-new"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Add SDK to App</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/initialize-the-sdk-maui-new"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Initialize the SDK</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/display-user-interfaces-maui-new"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Display User Interfaces</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/customize-user-interfaces-maui-new"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Customize User Interfaces</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/when-consent-changes-maui-new"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">When Consent Changes</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-ccpa-us-privacy-string-maui-new"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Additional Resources</span></span><button aria-expanded="false" aria-label="Show subpages for Additional Resources" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-ccpa-us-privacy-string-maui-new"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB CCPA US Privacy String</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-tcf-22-maui-new"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB Transparency and Consent Framework (TCF)</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-global-privacy-protocol-maui-new"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB Global Privacy Protocol</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/api-reference-maui-new"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">API Reference</span></span></a></li></ul></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/maui-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">MAUI and Unity SDK (Legacy)</span></span><button aria-expanded="false" aria-label="Show subpages for MAUI and Unity SDK (Legacy)" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/download-the-sdk-maui-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Getting Started</span></span><button aria-expanded="false" aria-label="Show subpages for Getting Started" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/download-the-sdk-maui-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Download the SDK</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/add-sdk-to-app-maui-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Add SDK to App</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/initialize-the-sdk-maui-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Initialize the SDK</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/display-user-interfaces-maui-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Display User Interfaces</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/customize-user-interfaces-maui-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Customize User Interfaces</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/when-consent-changes-maui-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">When Consent Changes</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-ccpa-us-privacy-string-maui-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Additional Resources</span></span><button aria-expanded="false" aria-label="Show subpages for Additional Resources" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-ccpa-us-privacy-string-maui-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB CCPA US Privacy String</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-tcf-22-maui-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB TCF 2.2</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-global-privacy-platform-maui-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB Global Privacy Protocol</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/api-reference-maui-legacy"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">API Reference</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/changelog-xamarin-unity"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Changelog</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/frameworks"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Frameworks</span></span><button aria-expanded="false" aria-label="Show subpages for Frameworks" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/react-native"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">React Native</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/flutter"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Flutter</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/cordova-ionic"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Cordova / Ionic</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/release-notes"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Release Notes</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/urls-called-by-the-onetrust-sdk"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">URLs called by the OneTrust Mobile SDKs</span></span></a></li></ul></section><section class="Sidebar-listWrapper6Q9_yUrG906C Sidebar-listWrapper_collapsible2FvmZ40ldHxj rm-Sidebar-section"><button aria-label="Expand Websites category" class="Sidebar-headingTRQyOa2pk0gh Sidebar-heading_collapsible1GOm26rptZH6 rm-Sidebar-category" type="button">Websites<span class="IconWrapper Icon-wrapper2z2wVIeGsiUy"><span class="Icon3_D2ysxFZ_ll Icon-empty6PuNZVw0joPv Sidebar-heading-icon2CRff70bVWxM" style="--icon-color:inherit;--icon-size:var(--icon-md);--icon-stroke-width:2px"></span></span></button><ul class="Sidebar-list_sidebarLayout3RaX72iQNOEI Sidebar-list3cZWQLaBf9k8 Sidebar-list_collapsible3Y5alpA9ncHt rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/connect-cmp-to-third-party-platforms"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Connecting the OneTrust CMP to Third-Party Platforms</span></span><button aria-expanded="false" aria-label="Show subpages for Connecting the OneTrust CMP to Third-Party Platforms" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/bigcommerce"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">BigCommerce</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ensighten"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Ensighten</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/facebook-pixel"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Facebook Pixel</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/google-tag-manager"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Google Tag Manager</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/hubspot"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">HubSpot</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/magento"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Magento</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/marketo-landing-page"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Marketo Landing Page</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/mparticle"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">mParticle</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/ecommerce"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Shopify</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/squarespace"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Squarespace</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/tealium-tag-manager"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Tealium Tag Manager</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" rel="noopener" target="_blank" data-active="" href="https://my.onetrust.com/s/article/UUID-39fef01a-5599-85ef-8648-d4d559dbfe73"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Adobe Experience Platform</span></span><span class="Sidebar-link-metaLhOiyAaGZrkY"><i aria-label="Opens in new tab" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-externalIcon icon-arrow-up-right" role="img"></i></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/weebly"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Weebly</span></span></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/performance-availability-cookie-script"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Performance and Availability of the Cookie Consent Script</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" rel="noopener" target="_blank" data-active="" href="https://my.onetrust.com/s/article/UUID-2dc719a8-4be5-8d16-1dc8-c7b4147b88e0"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">OneTrust Cookies</span></span><span class="Sidebar-link-metaLhOiyAaGZrkY"><i aria-label="Opens in new tab" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-externalIcon icon-arrow-up-right" role="img"></i></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/javascript-api"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Additional Resources</span></span><button aria-expanded="false" aria-label="Show subpages for Additional Resources" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/javascript-api"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Web CMP JavaScript Methods</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/javascript-events-guide"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Web CMP Events Guide</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/custom-geolocation-integration"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Custom Geolocation Integration</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/display-preference-center"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Display Preference Center on Script Load</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/amp-integration"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">AMP Integration</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/cookie-consent-support-for-amp-websites"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Cookie Consent Support for AMP Websites</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/content-security-policy-cdn"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Configuring a Content Security Policy with OneTrust CDN</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-ccpa-us-privacy-string"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB CCPA: Configuring the US Privacy String</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-tcf-developer-guide"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB TCF Developer Guide</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/using-tcf-with-header-bidding"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Using TCF with Header Bidding (TCF Stub)</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/using-tcf-with-prebid"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Using TCF with Prebid</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/single-page-applications"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Single Page Applications</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/multi-touch-consent"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Multi-Touch Consent</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/using-google-consent-mode"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Google Consent Mode</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/common-custom-css"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Custom Common CSS and JavaScript</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/custom-common-html"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Custom Common HTML</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/server-side-rendering-performance-availability"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Server Side Rendering Performance &amp; Availability</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/dsarpra-web-cmp-opt-out"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">PRA/DSAR - Web CMP Opt Out</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/bulk-domain-management"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Bulk Domain Management</span></span></a></li></ul></li></ul></section><section class="Sidebar-listWrapper6Q9_yUrG906C Sidebar-listWrapper_collapsible2FvmZ40ldHxj rm-Sidebar-section"><button aria-label="Expand Server-Side CMP API category" class="Sidebar-headingTRQyOa2pk0gh Sidebar-heading_collapsible1GOm26rptZH6 rm-Sidebar-category" type="button">Server-Side CMP API<span class="IconWrapper Icon-wrapper2z2wVIeGsiUy"><span class="Icon3_D2ysxFZ_ll Icon-empty6PuNZVw0joPv Sidebar-heading-icon2CRff70bVWxM" style="--icon-color:inherit;--icon-size:var(--icon-md);--icon-stroke-width:2px"></span></span></button><ul class="Sidebar-list_sidebarLayout3RaX72iQNOEI Sidebar-list3cZWQLaBf9k8 Sidebar-list_collapsible3Y5alpA9ncHt rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/server-side-cmp-api-introduction"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Introduction</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/persisting-consent"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Persisting Consent</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/get-banner-ui"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Get Banner UI</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/get-preference-center-ui"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Get Preference Center UI</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/get-vendor-list-ui"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Get Vendor List UI</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/get-universal-consent-preferences"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Get Universal Consent Preferences UI</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/save-and-log-consent"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Save and Log Consent</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/implementation-guidance"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Implementation Guidance</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-transparency-and-consent-framework-22"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Additional Resources</span></span><button aria-expanded="false" aria-label="Show subpages for Additional Resources" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ" type="button"><i aria-hidden="true" class="Sidebar-link-iconnjiqEiZlPn0W Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-transparency-and-consent-framework-22"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB TCF 2.3</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/onetrust/docs/iab-gpp"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">IAB Global Privacy Protocol</span></span></a></li></ul></li></ul></section></div><button aria-label="Hide sidebar navigation" class="Nav-toggle-collapse39KxgTH727KL" type="button"></button></nav><article class="SuperHubDoc-article3ArTrEavUTKg rm-Article rm-Guides-SuperHub"><header id="content-head"><div class="row clearfix"><div class="col-xs-9"><div class="Breadcrumb rm-Breadcrumb SuperHubDoc-breadcrumb3CiEhI-z7_no"><ol class="Breadcrumb-list3wDDSRTNEBCQ rm-Breadcrumb-list"><li class="Breadcrumb-itemhU0JQW_9l3fK rm-Breadcrumb-item"><span>SDK Reference</span></li></ol></div><h1>Android SDK</h1></div></div></header><div class="grid-container-fluid" id="content-container"><section class="content-body grid-75 "><div class="rm-Markdown markdown-body rm-Markdown markdown-body ng-non-bindable" data-testid="RDMD" style="margin-left:31px"><style>/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
@layer theme, base, components, utilities;
@layer utilities;
</style><blockquote class="callout callout_info" theme="📘"><span class="callout-icon">📘</span><p class="callout-heading empty"></p><p>A new, rearchitected version of the Android CMP SDK has been released as of 202507.1.0. For more information, see <a href="https://developer.onetrust.com/onetrust/docs/onetrusts-next-generation-cmp-sdks" target="" title="">OneTrust Next Generation CMP SDKs</a>.</p></blockquote>
<h2 class="heading heading-2 header-scroll"><div class="heading-anchor anchor waypoint" id="supported-platforms"></div><div class="heading-text">Supported Platforms</div><a aria-label="Skip link to Supported Platforms" class="heading-anchor-icon fa fa-regular fa-anchor" href="#supported-platforms"></a></h2>
<p><div class="rdmd-html"><div class="SDKWrapper">
    <div class="SDKCard">
        <a class="ProductCard_card">
            <svg role="img" viewBox="0 0 24 24"
                xmlns="http://www.w3.org/2000/svg">
                <title>Android</title>
                <path fill="#34A853" d="M18.4395 5.5586c-.675 1.1664-1.352 2.3318-2.0274 3.498-.0366-.0155-.0742-.0286-.1113-.043-1.8249-.6957-3.484-.8-4.42-.787-1.8551.0185-3.3544.4643-4.2597.8203-.084-.1494-1.7526-3.021-2.0215-3.4864a1.1451 1.1451 0 0 0-.1406-.1914c-.3312-.364-.9054-.4859-1.379-.203-.475.282-.7136.9361-.3886 1.5019 1.9466 3.3696-.0966-.2158 1.9473 3.3593.0172.031-.4946.2642-1.3926 1.0177C2.8987 12.176.452 14.772 0 18.9902h24c-.119-1.1108-.3686-2.099-.7461-3.0683-.7438-1.9118-1.8435-3.2928-2.7402-4.1836a12.1048 12.1048 0 0 0-2.1309-1.6875c.6594-1.122 1.312-2.2559 1.9649-3.3848.2077-.3615.1886-.7956-.0079-1.1191a1.1001 1.1001 0 0 0-.8515-.5332c-.5225-.0536-.9392.3128-1.0488.5449zm-.0391 8.461c.3944.5926.324 1.3306-.1563 1.6503-.4799.3197-1.188.0985-1.582-.4941-.3944-.5927-.324-1.3307.1563-1.6504.4727-.315 1.1812-.1086 1.582.4941zM7.207 13.5273c.4803.3197.5506 1.0577.1563 1.6504-.394.5926-1.1038.8138-1.584.4941-.48-.3197-.5503-1.0577-.1563-1.6504.4008-.6021 1.1087-.8106 1.584-.4941z"></path>
            </svg>
            <div class="ProductCard_text">
                <h4 class="ProductCard_productCardTitle">Android</h4>
            </div>
        </a>
    </div>
    <div class="SDKCard">
        <a class="ProductCard_card">
            <svg role="img" viewBox="0 0 24 24"
                xmlns="http://www.w3.org/2000/svg">
                <title>Amazon Fire TV</title>
                <path fill="#FC4C02" d="M20.196 15.12c.265.337-.294 1.73-.542 2.353-.077.19.085.266.257.123 1.106-.926 1.39-2.867 1.166-3.149-.226-.277-2.16-.516-3.341.314-.183.127-.151.304.05.279.665-.08 2.147-.257 2.41.08m-.858.981c-2.064 1.523-5.056 2.333-7.632 2.333-3.611 0-6.862-1.334-9.322-3.555-.194-.176-.02-.414.21-.28 2.655 1.545 5.939 2.477 9.328 2.477 2.287 0 4.803-.476 7.115-1.458.348-.147.642.231.3.483m2.034-3.155a.388.388 0 0 1-.201-.04c-.041-.026-.087-.1-.133-.225l-1.734-4.355a1.79 1.79 0 0 0-.046-.117.266.266 0 0 1-.023-.108c0-.084.049-.128.146-.128h.58c.098 0 .165.014.205.04.04.026.082.102.127.226l1.344 3.823 1.343-3.823c.046-.124.089-.2.128-.226a.402.402 0 0 1 .205-.04h.54c.1 0 .148.044.148.128a.3.3 0 0 1-.025.108c-.016.04-.032.078-.044.117l-1.727 4.355c-.045.124-.09.199-.132.225a.388.388 0 0 1-.201.04zm-3.644.068c-.929 0-1.392-.463-1.392-1.392V8.739h-.706c-.13 0-.197-.066-.197-.196v-.246a.22.22 0 0 1 .045-.147c.03-.031.086-.055.171-.067l.717-.09.127-1.215c.013-.13.082-.196.207-.196h.41c.13 0 .196.066.196.196v1.196h1.276c.13 0 .195.065.195.197v.372c0 .13-.064.196-.195.196h-1.276v2.834c0 .243.055.411.162.51.108.098.293.147.555.147.124 0 .277-.016.46-.049.099-.02.164-.03.197-.03.052 0 .088.014.108.044.02.03.029.077.029.142v.266a.366.366 0 0 1-.04.19c-.026.043-.078.078-.157.103a3.018 3.018 0 0 1-.892.118m-4.665-2.976c.006-.052.011-.137.011-.255 0-.399-.094-.698-.28-.901-.186-.204-.46-.306-.818-.306-.412 0-.732.123-.962.369-.228.245-.36.61-.392 1.093zm-.942 3.07c-.803 0-1.411-.222-1.824-.667-.412-.444-.616-1.102-.616-1.972 0-.83.204-1.475.616-1.937.413-.46.988-.691 1.728-.691.62 0 1.098.176 1.432.524.332.351.5.846.5 1.487 0 .21-.017.422-.05.638-.014.077-.034.13-.064.156-.029.027-.077.04-.142.04h-3.08c.013.563.154.977.418 1.245.265.268.674.403 1.23.403.196 0 .385-.014.564-.04a5.04 5.04 0 0 0 .682-.166l.117-.035a.284.284 0 0 1 .09-.016c.085 0 .125.06.125.177v.276c0 .085-.012.144-.037.18a.441.441 0 0 1-.167.114 3.38 3.38 0 0 1-.701.205 4.236 4.236 0 0 1-.82.079m-5.424-.147c-.13 0-.195-.066-.195-.197v-4.58c0-.13.064-.195.195-.195h.432c.064 0 .116.012.153.039.036.025.06.076.072.146l.07.55c.176-.19.343-.34.499-.452a1.725 1.725 0 0 1 1.02-.323c.079 0 .158.003.235.01.112.014.168.072.168.176v.53c0 .117-.058.177-.178.177-.058 0-.114-.004-.17-.01a1.638 1.638 0 0 0-.18-.01c-.524 0-.973.157-1.346.47v3.472c0 .131-.066.197-.195.197zm-2.249 0c-.13 0-.196-.066-.196-.197v-4.58c0-.13.066-.195.196-.195h.579c.13 0 .195.064.195.195v4.58c0 .131-.065.197-.195.197zm.295-5.856c-.19 0-.339-.054-.447-.16a.581.581 0 0 1-.161-.428c0-.176.054-.318.16-.426.11-.109.257-.163.448-.163.189 0 .337.054.446.163.107.108.16.25.16.426a.581.581 0 0 1-.16.427.608.608 0 0 1-.446.161m-3.625 5.856c-.132 0-.197-.066-.197-.197v-4.01H.195c-.13 0-.195-.066-.195-.197v-.245c0-.065.014-.114.043-.147.03-.033.088-.055.173-.07l.705-.087v-.804c0-1.091.523-1.638 1.57-1.638.248 0 .51.036.784.109.072.019.122.047.152.088.029.038.044.107.044.205v.255c0 .124-.048.186-.148.186-.058 0-.14-.01-.248-.029-.11-.02-.23-.03-.369-.03-.3 0-.51.057-.633.172-.121.115-.181.303-.181.564v.903h1.324c.131 0 .197.064.197.195v.373c0 .13-.066.197-.197.197H1.892v4.01c0 .131-.065.197-.196.197Z"></path>
            </svg>
            <div class="ProductCard_text">
                <h4 class="ProductCard_productCardTitle">Amazon Fire TV</h4>
            </div>
        </a>
    </div>
    <div class="SDKCard">
        <a class="ProductCard_card">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="-30 0 550 80">
                <defs>
                    <clipPath id="a" clipPathUnits="userSpaceOnUse">
                        <path d="M619.944 203.948h59.797v10.213h-59.797z"></path>
                    </clipPath>
                </defs>
                <title>Android TV</title>
                <g transform="matrix(8.27808 0 0 -8.27808 -5131.948 1772.8411)" clip-path="url(#a)">
                    <path d="M623.8155 205.7036c-1.121 0-2.028.937-2.028 2.102 0 1.143.907 2.094 2.028 2.094.745 0 1.49-.347 1.807-.981.022-.044.051-.103.051-.177v-1.858c0-.037-.022-.118-.037-.14-.346-.634-1.054-1.04-1.821-1.04m3.68-1.6v7.374h-1.822v-.619c-.509.494-1.202.766-2.057.766-2.087 0-3.672-1.696-3.672-3.819 0-2.132 1.585-3.85 3.672-3.85.855 0 1.548.288 2.057.782v-.634zm7.912 0v3.989c0 1.962-1.526 3.532-3.473 3.532-1.954 0-3.473-1.57-3.473-3.532v-3.989h1.821v3.989c0 .966.679 1.704 1.652 1.704.966 0 1.652-.738 1.652-1.704v-3.989zm4.631 1.6c-1.121 0-2.028.937-2.028 2.102 0 1.143.907 2.094 2.028 2.094.745 0 1.453-.369 1.807-.981.022-.044.051-.103.051-.177v-1.866c0-.037-.022-.11-.036-.132-.347-.634-1.055-1.04-1.822-1.04m3.68-1.6v9.586h-1.822v-2.831c-.508.494-1.202.789-2.057.789-2.087 0-3.672-1.719-3.672-3.842 0-2.132 1.585-3.85 3.672-3.85.855 0 1.549.288 2.057.782v-.634zm2.787 0v3.938c0 1.165.612 1.784 1.777 1.784v1.799c-2.345 0-3.598-1.246-3.598-3.583v-3.938zm5.759 1.688c-1.106 0-2.005.9-2.005 2.014 0 1.106.899 2.005 2.005 2.005 1.121 0 2.014-.899 2.014-2.005 0-1.114-.893-2.014-2.014-2.014m0-1.836c2.132 0 3.857 1.718 3.857 3.85 0 2.123-1.725 3.819-3.857 3.819-2.123 0-3.849-1.696-3.849-3.819 0-2.132 1.726-3.85 3.849-3.85m5.597 8.082c.583 0 1.055.48 1.055 1.062 0 .59-.472 1.062-1.055 1.062-.582 0-1.054-.472-1.054-1.062 0-.582.472-1.062 1.054-1.062m.907-.56h-1.822v-7.374h1.822zm4.698-5.774c-1.121 0-2.028.937-2.028 2.102 0 1.143.907 2.094 2.028 2.094.745 0 1.452-.369 1.806-.981.023-.044.052-.103.052-.177v-1.873c0-.037-.022-.103-.037-.125-.346-.634-1.054-1.04-1.821-1.04m3.679-1.6v9.586h-1.821v-2.831c-.509.494-1.202.766-2.057.766-2.087 0-3.673-1.696-3.673-3.819 0-2.132 1.586-3.857 3.673-3.857.855 0 1.548.295 2.057.789v-.634z" fill="#77c159"></path>
                    <path d="M676.7471 204.1033l2.994 7.382h-1.504l-2.449-6.401h.509l-2.455 6.393h-1.549l2.994-7.374zm-4.815-.088l.007 1.312h-.162c-1.069 0-1.822.642-1.822 1.726v3.207h1.925v1.217h-1.925v1.999h-1.334v-6.423c0-1.91 1.239-3.038 3.156-3.038z" fill="#868686"></path>
                </g>
            </svg>
            <div class="ProductCard_text">
                <h4 class="ProductCard_productCardTitle">Android TV</h4>
            </div>
        </a>
    </div>
</div></div></p>
<h2 class="heading heading-2 header-scroll"><div class="heading-anchor anchor waypoint" id="tech-stack-overview"></div><div class="heading-text">Tech Stack Overview</div><a aria-label="Skip link to Tech Stack Overview" class="heading-anchor-icon fa fa-regular fa-anchor" href="#tech-stack-overview"></a></h2>













































<div class="rdmd-table"><div class="rdmd-table-inner"><table><thead><tr><th>Specifications</th><th>Details</th></tr></thead><tbody><tr><td><strong>Language Version</strong></td><td>Java 11</td></tr><tr><td><strong>IDE</strong></td><td>Android Studio 4</td></tr><tr><td><strong>Desktop OS</strong></td><td>n/a</td></tr><tr><td><strong>Build Dependencies</strong></td><td>gradle-5.6.1</td></tr><tr><td><strong>Certified OS Version</strong></td><td>API 24 - API 36</td></tr><tr><td><strong>Supported OS Version</strong></td><td>API 21 - API 36</td></tr><tr><td><strong>Android Native SDK size (.aar file)</strong></td><td>1.3 MB. Please note that our SDK can increase apk size by approximately 1 MB (subject to change) due to the usage of third-party libraries</td></tr><tr><td><strong>Compression Tool</strong></td><td>Proguard</td></tr><tr><td><strong>3rd Party Frameworks</strong>, <strong>Open Source Libraries</strong>, <strong>Library/Component Licenses</strong></td><td>- <a href="https://developer.android.com/jetpack/androidx/releases/appcompat" target="" title="">Android AppCompat</a>: Native Android library <br/> - <a href="https://developer.android.com/reference/androidx/browser/customtabs/CustomTabsIntent" target="" title="">Android Browser</a>: Open links with CustomTabsIntent <br/> - <a href="https://developer.android.com/jetpack/androidx/releases/constraintlayout" target="" title="">Android ConstraintLayout</a>: Position and size widgets <br/> - <a href="https://developer.android.com/reference/com/google/android/material/bottomsheet/BottomSheetDialogFragment" target="" title="">Android Material</a>: BottomSheetDialogFragment for the UI display <br/> - <a href="https://developer.android.com/reference/androidx/work/WorkManager" target="" title="">Android WorkManager</a>: Retry background tasks <br/> - <a href="https://mvnrepository.com/artifact/com.squareup.retrofit2/converter-scalars" target="" title="">Retrofit Converter Scalars</a>: Used to make network calls <br/> - <a href="https://bumptech.github.io/glide/" target="" title="">Glide</a>: Load logo images <br/> - <a href="https://mvnrepository.com/artifact/com.google.android.gms/play-services-ads-identifier?repo=google" target="" title="">Play Services Ads Identifier</a>: Retrieve Google ads identifier details <br/> - <a href="https://mvnrepository.com/artifact/com.google.zxing/core" target="" title="">ZXing Core</a>: Render QR codes</td></tr></tbody></table></div></div>
<h2 class="heading heading-2 header-scroll"><div class="heading-anchor anchor waypoint" id="frequently-asked-questions-faq"></div><div class="heading-text">Frequently Asked Questions (FAQ)</div><a aria-label="Skip link to Frequently Asked Questions (FAQ)" class="heading-anchor-icon fa fa-regular fa-anchor" href="#frequently-asked-questions-faq"></a></h2>
<p>The following responses are supported solutions to frequently asked questions (FAQ) about the Android SDK. The OneTrust team continuously monitors these inquiries and will make additional FAQ available as they are identified.</p>
<ol>
<li>
<p><strong>Is the SDK encrypted or obfuscated in any way?</strong><br/>Yes, it is encrypted.</p>
</li>
<li>
<p><strong>Does the SDK use third-party libraries, external dependencies, or open source libraries?</strong><br/>Yes, the SDK uses all three.</p>
</li>
<li>
<p><strong>Does the SDK work with SDK aggregators such as mParticle?</strong><br/>No, it does not.</p>
</li>
<li>
<p><strong>What dependencies do I need when initializing Google Ad ID?</strong><br/>The Google Play Services dependency must be downloaded in order to initialize Google Ad ID support for your Android devices.</p>
</li>
<li>
<p><strong>Does the Android SDK support Android Support Library?</strong><br/>No, the <strong>Android SDK</strong> has several AndroidX dependencies. Android released API Level 28 in August 2018 which introduced <strong>AndroidX</strong>. This upgrade was declared a “major improvement” by Android and replaced their legacy Android Support Library. At this time, Android no longer supports Android Support Library.</p>
</li>
<li>
<p><strong>Does the Android SDK support </strong><code class="rdmd-code lang- theme-undefined" data-lang="">Activity</code><strong>, </strong><code class="rdmd-code lang- theme-undefined" data-lang="">FragementActivity</code><strong>, or </strong><code class="rdmd-code lang- theme-undefined" data-lang="">AppCompatActivity</code><strong> when rendering UIs?</strong><br/>The SDK supports<code class="rdmd-code lang- theme-undefined" data-lang="">FragmentActivity</code> or <code class="rdmd-code lang- theme-undefined" data-lang="">AppCompatActivity</code> only.<br/><code class="rdmd-code lang- theme-undefined" data-lang="">AppCompatActivity</code> is derived from <code class="rdmd-code lang- theme-undefined" data-lang="">FragmentActivity</code> and <code class="rdmd-code lang- theme-undefined" data-lang="">FragmentActivity</code> is derived from <code class="rdmd-code lang- theme-undefined" data-lang="">Activity</code>.<br/>To render the UI (bottom sheet fragment) on top of the application&#x27;s UI, the Android SDK needs to work with <code class="rdmd-code lang- theme-undefined" data-lang="">FragmentManager</code>. <code class="rdmd-code lang- theme-undefined" data-lang="">FragmentManager</code> is part of <code class="rdmd-code lang- theme-undefined" data-lang="">FragmentActivity</code> and <code class="rdmd-code lang- theme-undefined" data-lang="">AppCompatActivity</code>, thus the SDK&#x27;s UI needs <code class="rdmd-code lang- theme-undefined" data-lang="">FragmentActivity</code> or <code class="rdmd-code lang- theme-undefined" data-lang="">AppCompatActivity</code>.</p>
</li>
<li>
<p><strong>Does the SDK work when using </strong><code class="rdmd-code lang- theme-undefined" data-lang="">minifyEnabled true</code><strong> for new releases?</strong><br/>Many clients obfuscate their apps prior to release to optimize for size, security, and performance. Android supports this via the <a href="https://developer.android.com/studio/build/shrink-code" target="" title="">minifyEnabled</a> setting for release buildTypes.<br/>We&#x27;ve had some customers raise issues previously with app crashes during their final phase of testing when <code class="rdmd-code lang- theme-undefined" data-lang="">minifyEnabled</code> is set to <code class="rdmd-code lang- theme-undefined" data-lang="">true</code>. Most commonly, this is due to app&#x27;s <code class="rdmd-code lang- theme-undefined" data-lang="">org.json</code> gradle dependency causing a collision with the OneTrust SDK&#x27;s <code class="rdmd-code lang- theme-undefined" data-lang="">org.json</code> dependency used for JSON parsing.<br/>To resolve this, please add the following to your app&#x27;s <code class="rdmd-code lang- theme-undefined" data-lang="">proguard-rule.pro</code> file inside of Gradle Scripts, then re-build the app.</p>
<div class="CodeTabs CodeTabs_initial theme-undefined"><div class="CodeTabs-toolbar"><button type="button" value="kotlin">Kotlin</button></div><div class="CodeTabs-inner"><pre><code class="rdmd-code lang- theme-undefined" data-lang="">-keep class org.json.** { *; }</code></pre></div></div>
</li>
<li>
<p><strong>What if the dependencies the SDK uses is an older/different version than the one my app uses and causes a conflict?</strong><br/>In this instance, you can exclude these dependencies from the SDK and add it explicitly in your app. For example, the SDK uses OkHttp 2.8.1 which introduces vulnerabilities/conflicts with the app. You can exclude this dependency from OneTrust and specify your own.</p>
<div class="CodeTabs CodeTabs_initial theme-undefined"><div class="CodeTabs-toolbar"><button type="button" value="kotlin">Kotlin</button></div><div class="CodeTabs-inner"><pre><code class="rdmd-code lang- theme-undefined" data-lang="">implementation (&#x27;com.squareup.retrofit2:retrofit:2.8.1&#x27;) {
        // exclude Retrofit’s OkHttp dependency module and define your own module import
        exclude module: &#x27;okhttp&#x27;
    }</code></pre></div></div>
<div class="CodeTabs CodeTabs_initial theme-undefined"><div class="CodeTabs-toolbar"><button type="button" value="kotlin">Kotlin</button></div><div class="CodeTabs-inner"><pre><code class="rdmd-code lang- theme-undefined" data-lang=""> implementation &#x27;com.squareup.okhttp3:okhttp:4.10.0&#x27;</code></pre></div></div>
</li>
</ol>
<br/></div><div align="center" class="Flex Flex_row " justify="between" style="--flex-gap:var(--md)"><div class="UpdatedAt"><p class="DateLine "><i class="icon icon-watch"></i>Updated<!-- --> <!-- -->6 days ago<!-- --> </p></div></div><hr class="NextStepsDivider"/><nav aria-label="Pagination Controls" class="PaginationControlsjDYuqu8pBMUy rm-Pagination"><a class="PaginationControls-link254uPEbaP92i PaginationControls-link_left1G58BmNHDbVm" aria-label="Previous Page: FAQ" href="/onetrust/docs/ai-guard-faq"><span class="PaginationControls-iconZbaZ3tgyhNmI icon-arrow-left2"></span><div class="PaginationControls-text3qEXHZU00znD PaginationControls-text_left3wBkn4C9R0W_">FAQ</div></a><a class="PaginationControls-link254uPEbaP92i PaginationControls-link_right5lsfuICZqXYk" aria-label="Next Page: Getting Started" href="/onetrust/docs/getting-started-android-next-gen"><div class="PaginationControls-text3qEXHZU00znD PaginationControls-text_right3EIfWubgRVVP">Getting Started</div><span class="PaginationControls-iconZbaZ3tgyhNmI icon-arrow-right2"></span></a></nav></section><section class="content-toc grid-25 "><div class="AIDropdownzmvdRdsNayZl  rm-AIDropdown" style="display:flex;justify-content:flex-start;width:100%;margin-bottom:1rem;z-index:50"><div class="Dropdown Dropdown_closed" data-testid="dropdown-container"><div style="display:flex" class="Dropdown-toggle" aria-haspopup="dialog"><button style="border-top-right-radius:0;border-bottom-right-radius:0;border-right:none" class="Button Button_sm Button_secondary Button_secondary_outline" type="button"><span class="IconWrapper Icon-wrapper2z2wVIeGsiUy"><span class="Icon3_D2ysxFZ_ll Icon-empty6PuNZVw0joPv" style="--icon-color:inherit;--icon-size:inherit;--icon-stroke-width:2px"></span></span><span>Copy Page</span></button><button style="border-top-left-radius:0;border-bottom-left-radius:0;padding-left:8px;padding-right:8px;min-width:auto" class="Button Button_sm Button_secondary Button_secondary_outline" type="button"><span class="IconWrapper Icon-wrapper2z2wVIeGsiUy"><span class="Icon3_D2ysxFZ_ll Icon-empty6PuNZVw0joPv" style="--icon-color:inherit;--icon-size:inherit;--icon-stroke-width:2px"></span></span></button></div></div></div><nav aria-label="Table of contents" class="rm-ToC"><ul class="toc-list"><li class="toc-children"><ul><li><a href="#supported-platforms">Supported Platforms</a></li><li><a href="#tech-stack-overview">Tech Stack Overview</a></li><li><a href="#frequently-asked-questions-faq">Frequently Asked Questions (FAQ)</a></li></ul></li></ul></nav></section></div></article></div></main><footer aria-label="Status banner" class="Footer2U8XAPoGhlgO AppFooter rm-Banners"></footer><footer><footer class="ot-footer" aria-hidden="false">
  <div class="ot-footer-container ot-footer-text-color--white">
    <div class="ot-footer-content ot-footer-padding-right-64 ot-footer-padding-left-64">
      <div class="ot-footer-separator">
        <hr class="ot-footer-separator__horizontal-rule ot-footer-separator__spacing--large">
      </div>
      <div class="ot-footer-separator">
        <hr class="ot-footer-separator__horizontal-rule ot-footer-separator__spacing--large">
      </div>
      <div class="ot-footer-links">
        <div class="ot-footer-links_content">
          <div class="ot-footer-links-block">
            <div class="ot-footer-font-weight-thin">Getting Started</div>
            <ul class="ot-footer-list">
              <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                  href="https://developer.onetrust.com/onetrust/reference/quick-start-guide"><span
                    class="ot-footer-list__item-title">Quick Start Guide: APIs</span></a></li>
                    <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                  href="https://developer.onetrust.com/onetrust/docs/onetrust-sdk-reference"><span
                    class="ot-footer-list__item-title">SDK Reference</span></a></li>
                    <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                  href="https://developer.onetrust.com/onetrust/recipes"><span
                    class="ot-footer-list__item-title">Recipes</span></a></li>
                    <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                  href="https://developer.onetrust.com/onetrust/changelog"><span
                    class="ot-footer-list__item-title">Changelog</span></a></li>
                    
            </ul>
          </div>
          <div class="ot-footer-links-block">
            <div class="ot-footer-font-weight-thin">Knowledge Base</div>
            <ul class="ot-footer-list">
              <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                  href="https://my.onetrust.com/s/topiccatalog"><span class="ot-footer-list__item-title">Articles</span></a></li>
              <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                  href="https://my.onetrust.com/s/documents"><span class="ot-footer-list__item-title">Documents</span></a></li>
              <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                  href="https://my.onetrust.com/s/group/0F91Q000000hGyPSAU"><span class="ot-footer-list__item-title">Developer Forum</span></a></li>
            </ul>
          </div>
          <div class="ot-footer-links-block">
            <div class="ot-footer-font-weight-thin">Help Options</div>
            <ul class="ot-footer-list">
              <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                  href="https://my.onetrust.com/s/contactsupport"><span class="ot-footer-list__item-title">Help
                    Options</span></a></li>
              <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                  href="https://my.onetrust.com/s/case/Case/Default"><span class="ot-footer-list__item-title">View My
                    Cases</span></a></li>
              <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                  href="https://my.onetrust.com/s/system-status"><span class="ot-footer-list__item-title">System
                    Status</span></a></li>
            </ul>
          </div>
        </div>
        <div class="ot-footer-links_content">
          <div class="ot-footer-links-block">
            <div class="ot-footer-font-weight-thin">OneTrust Seasonal Releases</div>
            <ul class="ot-footer-list">
              <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                  href="https://my.onetrust.com/s/article/UUID-6acbde09-4c77-1494-98b0-43aac83196ff"><span
                    class="ot-footer-list__item-title">OneTrust
                    Seasonal Releases</span></a></li>
              <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                  href="https://my.onetrust.com/s/release-notes"><span class="ot-footer-list__item-title">Release
                    Notes</span></a></li>
              <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                  href="https://my.onetrust.com/s/article/UUID-20d037bc-96c1-e6f2-28ea-2c892a25483e"><span
                    class="ot-footer-list__item-title">Release
                    Videos</span></a></li>
              <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                  href="https://my.onetrust.com/s/article/Scheduled-Maintenance"><span
                    class="ot-footer-list__item-title">Scheduled
                    Maintenace</span></a></li>
              <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                  href="https://my.onetrust.com/s/https://podcast.onetrust.com/"><span
                    class="ot-footer-list__item-title">Talks Tech
                    Podcast</span></a></li>
              <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                  href="https://my.onetrust.com/s/article/UUID-8ee8e008-2561-dd9e-73c7-cd5d21af75bf"><span
                    class="ot-footer-list__item-title">Known Defect
                    Database</span></a></li>
            </ul>
          </div>
          <div class="ot-footer-links-block">
            <div class="ot-footer-font-weight-thin">Consumer Resources</div>
            <ul class="ot-footer-list">
              <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                  href="https://my.onetrust.com/s/customer-resources"><span class="ot-footer-list__item-title">Consumer
                    Resources</span></a></li>
              <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                  href="https://ideas.onetrust.com/"><span class="ot-footer-list__item-title">Idea
                    Exchange</span></a></li>
              <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                  href="https://www.onetrust.com/news/"><span class="ot-footer-list__item-title">OneTrust
                    News</span></a></li>
              <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                  href="https://developer.onetrust.com/onetrust/docs/taking-a-onetrust-hands-on-lab"><span
                    class="ot-footer-list__item-title">Hands-On
                    Labs</span></a></li>
              <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                  href="https://www.onetrust.com/partners/"><span class="ot-footer-list__item-title">OneTrust
                    Partner List</span></a></li>
              <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                  href="https://www.onetrust.com/resources/?resource-type=webinar"><span
                    class="ot-footer-list__item-title">Product
                    Webinars</span></a></li>
              <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                  href="https://www.onetrust.com/certifications/"><span class="ot-footer-list__item-title">Training
                    &amp; Certifications</span></a></li>
            </ul>
          </div>
        </div>
      </div>
      <div class="ot-footer-separator">
        <hr class="ot-footer-separator__horizontal-rule ot-footer-separator__spacing--large">
      </div>
      <div class="ot-footer-separator">
        <hr class="ot-footer-separator__horizontal-rule ot-footer-separator__spacing--large">
      </div>
      <div class="ot-footer-privacy-container">
        <div class="ot-footer-privacy ot-footer-padding-left-40 ot-footer-padding-bottom-16">
          <div class="ot-footer-separator">
            <hr class="ot-footer-separator__horizontal-rule ot-footer-separator__spacing--medium">
          </div>
          <div>
            <h2 class="ot-footer-title__text">Privacy Matters</h2>
            <h4><span class="ot-footer-body-1 ot-footer-font-weight-light ot-footer-height-38">Our privacy center makes
                it easy to see how<br>we collect and use your information.</span></h4>
          </div>
          <div class="ot-footer-separator">
            <hr class="ot-footer-separator__horizontal-rule ot-footer-separator__spacing--small">
          </div>
          <div class="ot-footer-links">
            <div class="ot-footer-links-block ot-footer-flex-direction ot-footer-padding-right-32">
              <div class="ot-footer-font-weight-light">Your privacy</div>
              <p><span class="ot-footer-font-weight-light">When we
                  collect your personal information, we always inform you of your rights
                  and make it easy for you to exercise them. Where possible, we also let
                  you manage your preferences about how much information you choose to
                  share with us, or our partners.</span></p>
              <div class="ot-footer-separator">
                <hr class="ot-footer-separator__horizontal-rule ot-footer-separator__spacing--small">
              </div>
              <p><span class="ot-footer-text">© 2026
                  OneTrust, LLC. All Rights Reserved.</span></p>
            </div>
            <div class="ot-footer-links-block">
              <div class="ot-footer-links-block ot-footer-flex-direction">
                <div class="ot-footer-font-weight-thin">Privacy Overview</div>
                <ul class="ot-footer-list">
                  <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                      href="https://www.onetrust.com/privacy/"><span class="ot-footer-list__item-title">Privacy
                        Overview</span></a></li>
                  <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                      href="https://www.onetrust.com/privacy-notice/"><span class="ot-footer-list__item-title">Privacy
                        Notice</span></a></li>
                  <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                      href="https://www.onetrust.com/cookie-policy/"><span class="ot-footer-list__item-title">Cookie
                        Notice</span></a></li>
                  <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                      href="https://developer.onetrust.com/onetrust/page/cookie-list"><span
                        class="ot-footer-list__item-title">Cookie List</span></a></li>
                </ul>
              </div>
              <div class="ot-footer-links-block ot-footer-flex-direction">
                <div class="ot-footer-font-weight-thin">Exercise Your Rights</div>
                <ul class="ot-footer-list">
                  <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                      href="https://privacyportal-cdn.onetrust.com/dsarwebform/37bcc497-a196-48f1-a08b-e897b5a77859/08a01c64-41fd-4b4e-9d42-cde44371a422.html"><span
                        class="ot-footer-list__item-title">Exercise Your Rights</span></a></li>
                  <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                      href="https://trustcenter-privacy.my.onetrust.com/ui/#/preferences/multipage/login/2013df68-fd2a-4de0-89ff-973214c626b1"><span
                        class="ot-footer-list__item-title">Manage Your Comunication</span></a></li>
                  <li class="ot-footer-list__item"><a class="ot-footer-list__item-link ot-footer-text-color--white"
                      href="https://trustcenter-privacy.my.onetrust.com/ui/#/preferences/multipage/login/2013df68-fd2a-4de0-89ff-973214c626b1"><span
                        class="ot-footer-list__item-title">Prefereces</span></a></li>
                </ul>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</footer>
<head>




    <style>
        /* Floating button */
        .onetrust-floating-button {
            position: fixed;
            bottom: 20px;
            right: 20px;
            background: linear-gradient(to top, #4F9D81, #6672C4);
            color: #fff;
            width: 60px;
            height: 60px;
            border-radius: 50%;
            display: flex;
            justify-content: center;
            align-items: center;
            cursor: pointer;
            transition: transform ease-out 0.1s, background 0.2s;
            transition: background-color 0.3s, transform 0.3s;
            z-index: 1000;
            box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
        }

        .onetrust-floating-button:hover {
            background-color: #388e3c;
            transform: scale(1.1);
            cursor: pointer
        }

        /* Container */
        #onetrust-container {
            position: fixed;
            bottom: 90px;
            right: 30px;
            width: 410px;
            border-radius: 10px;
            box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
            z-index: 999;
            overflow: hidden;
            /* Ensure content does not overflow */
        }

        #onetrust-container>.onetrust-top {
            background: linear-gradient(to top, #4F9D81, #6672C4);
            color: #fff;
            padding: 20px;
            border-radius: 10px 10px 0 0;
            position: relative;
        }

        #onetrust-container>.onetrust-bottom {
            background-color: white;
            padding: 20px;
            border-radius: 0 0 10px 10px;
        }

        #onetrust-container>.onetrust-bottom::before {
            content: "";
            position: absolute;
            top: -20px;
            left: 0;
            width: 100%;
            height: 0px;
            background-color: white;
        }

        #onetrust-container>.onetrust-top::after {
            content: "";
            position: absolute;
            bottom: -20px;
            left: 0;
            width: 100%;
            height: 0px;
            background: transparent;
        }

        .onetrust-floating-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding-bottom: 10px;
        }

        .onetrust-floating-header h1 {
            color: #fff;
            font-size: 20px;
        }

        .onetrust-floating-greeting {
            color: #fff;
            font-size: 28px;
            font-weight: bold;
        }

        .onetrust-floating-links {
            margin-top: 20px;
            color: #fff;
        }

        .onetrust-floating-links a {
            display: list-item;
            color: #fff;
            margin-bottom: 5px;
            text-decoration: none;
            transition: color 0.3s;
            margin-left: 30px;
            font-size: 18px;
        }

        .onetrust-floating-links span {
            margin-bottom: 10px;
            display: block;
            font-size: 18px;
        }

        .onetrust-floating-links a:hover {
            text-decoration: underline
        }

        .onetrust-floating-buttons {
            display: flex;
            flex-direction: column;
            text-align: left;
        }

        .onetrust-top {
            max-height: 400px;
            /* Set your desired maximum height */
            overflow-y: auto;
            /* Enable vertical scrolling */
        }

        .onetrust-button {
            background-color: #fff;
            color: #4F9D81;
            border: 1px solid;
            border-radius: 5px;
            padding: 10px;
            font-size: 16px;
            margin-bottom: 10px;
            display: flex;
            align-items: center;
            transition: background-color 0.3s;
        }

        .onetrust-button:hover {
            background-color: #f1f1f1;
            cursor: pointer;
        }

        .onetrust-button-span {
            margin-left: 10px;
            margin-right: 10px;
            text-align: left;
        }

        i.onetrust-svg.fas {
            font-size: xx-large;
        }

        i.onetrust-svg.fas.fa-lightbulb {
            padding-left: 5px;
            width: 1em;
        }

        svg.svg-inline--fa.fa-thumbs-up.fa-w-16 {
            font-size: x-large;
        }

        svg.svg-inline--fa.fa-thumbs-down.fa-w-16 {
            font-size: x-large;
        }

        span.onetrust-svg-inline.help-icon {
            font-size: xx-large;
        }

        svg.onetrust-svg {
            font-size: xx-large;
        }

        svg.svg-inline--fa.fa-lightbulb.onetrust-svg {
            width: 1.2em;
        }

        /* Additional styles for thumbs up/down options */
        .thumbs-options {
            display: none;
            justify-content: space-evenly;
            align-items: center;
            color: var(--slate);
            /* Apply this rule through a CSS class */
        }

        .thumbs-options button {
            border: none;
            color: currentcolor;
            margin-bottom: 0px;
        }


        .comment-input {
            display: none;
            margin-top: 10px;
        }

        .comment-input textarea {
            width: 100%;
            resize: vertical;
            margin-top: 5px;
            background: white;
          	color: var(--gray20);
        }
      
        .PageThumbs-email_input {
            width: 100%;
            resize: vertical;
            margin-top: 5px;
            background: white;
          	color: var(--gray20);
        }

        .submit-btn {
            display: none;
            margin-top: 10px;
            font-weight: bold;
        }

        .alert-icon {
            position: absolute;
            top: 35px;
            right: 35px;
            font-size: 25px;
            color: white;
            animation: pulsate 1.5s infinite;
        }

        .alert-icon:hover {
            cursor: pointer;
        }

        @keyframes pulsate {
            0% {
                transform: scale(1);
            }

            50% {
                transform: scale(1.3);
            }

            100% {
                transform: scale(1);
            }
        }
    </style>
</head>

<body>
    <!-- Floating button with help icon -->
    <div class="onetrust-floating-button" id="helpButton">
        <span class="onetrust-svg-inline help-icon"><i class="fas fa-question"></i></span>
    </div>
    <!-- OneTrust container -->
    <div id="onetrust-container" style="display: none;">
        <div class="onetrust-top">
            <a id="otStatusAlert" style="display: none;"
                href="https://onetruststatus-1564678085559.site24x7statusiq.com/" target="_blank"><i
                    class="fas fa-triangle-exclamation alert-icon"></i></a>
            <div class="onetrust-floating-header">
            </div>
            <div class="onetrust-floating-greeting">
                <span id="greeting-name" style="padding-bottom:10px">👋 Hi there!</span><br><br>
                <span style="font-size:23px">Start Learning.</span>
                <span style="font-size:23px">Start Building.</span>
                <span style="font-size:23px">Start Launching! 🚀</span>
            </div>
            <div class="onetrust-floating-links">
                <span>These resources can help you get started:</span>

            </div>
        </div>
        <div class="onetrust-bottom">
            <div class="onetrust-floating-buttons">
                <button class="onetrust-button" id="rateExperienceBtn">
                    <span class="onetrust-button-span"><i class="onetrust-svg fas fa-star"></i></span>
                    <span class="onetrust-button-span"><strong>Rate your Experience</strong><br><small>Share overall
                            feedback</small></span>
                </button>
                <div class="thumbs-options" id="thumbsOptions">
                    <span><strong>Did this page help you?</strong></span><br><br>
                    <button class="onetrust-button" id="thumbsUpBtn"><i class="onetrust-svg fas fa-thumbs-up"></i><span
                            class="onetrust-button-span">Yes</span></button>
                    <button class="onetrust-button" id="thumbsDownBtn"><i
                            class="onetrust-svg fas fa-thumbs-down"></i><span
                            class="onetrust-button-span">No</span></button>
                </div>
                <div class="comment-input" id="commentInput">
                   <input id="feedbackEmail"
                        class="Input Input_md Input_touched PageThumbs-email_input"
                        placeholder="Optional: Provide your email for a response"></input>
                    <textarea id="feedbackTextarea"
                        class="Textarea Textarea_md Textarea_vertical PageThumbs-comment_input"
                        placeholder="Please provide additional comments..."></textarea>
                    <span class="onetrust-button-span" id="commentError" style="color: darkred; display: none;">Please
                        enter your feedback.</span>
                    <span class="onetrust-button-span" id="successMessage"
                        style="color: darkgreen; display: none;">Feedback submitted
                        successfully!</span>
                </div>
                <button class="submit-btn onetrust-button" id="submitButton">Submit Feedback</button>
                <button class="onetrust-button" id="voteNewFeatures"
                    onclick="window.open('https://ideas.onetrust.com','_blank');" type="button">
                    <span class="onetrust-button-span"><i class="onetrust-svg fas fa-lightbulb"></i></span>
                    <span class="onetrust-button-span"><strong>Vote on New Features</strong><br><small>Have a say in
                            what we build
                            next</small></span>
                </button>

            </div>
        </div>
    </div>
</body>

</html></footer><div class="ModalWrapper" id="ChatGPT-modal"></div></div></div></div><div class="ModalWrapper" id="tutorialmodal-root"></div></div></div><div class="ng-non-bindable"><script id="ssr-props" type="application/json">{"sidebars":{},"apiBaseUrl":"/onetrust","baseUrl":"/onetrust","search":{"appId":"T28YKFATPY","searchApiKey":"NGExMDQ0ZTUwYjgyNDIxYTViNTM3ODFjODViYjE0YTM0ZmRmNWNlNGRmMzgyMjBiNDhmMzM0OWFkZTkzYTA2YnRhZ0ZpbHRlcnM9KHByb2plY3Q6NjIwZDIzYTQ0MmQ3OGYwNTc4NmE0OWM0KSwodmVyc2lvbjpub25lLHZlcnNpb246NjIwZDIzYTU0MmQ3OGYwNTc4NmE0OWM5KSwoaGlkZGVuOm5vbmUsaGlkZGVuOmZhbHNlKSwoaW5kZXg6Q3VzdG9tUGFnZSxpbmRleDpCbG9nLGluZGV4OlBhZ2UsaW5kZXg6VHV0b3JpYWwp","indexName":"readme_search_v2","projectsMeta":[{"modules":{"changelog":true,"custompages":false,"discuss":false,"docs":true,"examples":true,"graphql":false,"landing":false,"reference":true,"suggested_edits":false,"tutorials":true},"id":"620d23a442d78f05786a49c4","name":"OneTrust Developer Portal","subdomain":"onetrust","subpath":"","nav_names":{"docs":"SDK Reference","reference":"API Reference","changelog":"","discuss":"","tutorials":"","recipes":""}}],"urlManagerOpts":{"lang":"en","parent":{"subdomain":"onetrust-group","childrenProjects":["onetrust"]},"project":{"subdomain":"onetrust"},"version":"1.0"}},"customBlocks":[],"document":{"allow_crawlers":"enabled","renderable":{"status":true},"slug":"android-sdk-next-gen","state":"current","title":"Android SDK","type":"basic","updated_at":"2026-06-01T16:06:55.000Z","uri":"/branches/1.0/guides/android-sdk-next-gen","appearance":{"icon":{"name":null,"type":null}},"category":{"uri":"/branches/1.0/categories/guides/SDK Reference"},"href":{"dash":"https://dash.readme.com/project/onetrust/v1.0/docs/android-sdk-next-gen","hub":"https://developer.onetrust.com/onetrust/docs/android-sdk-next-gen","github_url":null},"links":{"project":"/projects/me"},"parent":{"uri":null},"privacy":{"view":"public"},"project":{"name":"OneTrust Developer Portal","subdomain":"onetrust","uri":"/projects/me"},"content":{"body":"> 📘\n>\n> A new, rearchitected version of the Android CMP SDK has been released as of 202507.1.0. For more information, see [OneTrust Next Generation CMP SDKs](https://developer.onetrust.com/onetrust/docs/onetrusts-next-generation-cmp-sdks).\n\n## Supported Platforms\n\n\u003cHTMLBlock>{`\n\u003cdiv class=\"SDKWrapper\">\n    \u003cdiv class=\"SDKCard\">\n        \u003ca class=\"ProductCard_card\">\n            \u003csvg role=\"img\" viewBox=\"0 0 24 24\"\n                xmlns=\"http://www.w3.org/2000/svg\">\n                \u003ctitle>Android\u003c/title>\n                \u003cpath fill=\"#34A853\" d=\"M18.4395 5.5586c-.675 1.1664-1.352 2.3318-2.0274 3.498-.0366-.0155-.0742-.0286-.1113-.043-1.8249-.6957-3.484-.8-4.42-.787-1.8551.0185-3.3544.4643-4.2597.8203-.084-.1494-1.7526-3.021-2.0215-3.4864a1.1451 1.1451 0 0 0-.1406-.1914c-.3312-.364-.9054-.4859-1.379-.203-.475.282-.7136.9361-.3886 1.5019 1.9466 3.3696-.0966-.2158 1.9473 3.3593.0172.031-.4946.2642-1.3926 1.0177C2.8987 12.176.452 14.772 0 18.9902h24c-.119-1.1108-.3686-2.099-.7461-3.0683-.7438-1.9118-1.8435-3.2928-2.7402-4.1836a12.1048 12.1048 0 0 0-2.1309-1.6875c.6594-1.122 1.312-2.2559 1.9649-3.3848.2077-.3615.1886-.7956-.0079-1.1191a1.1001 1.1001 0 0 0-.8515-.5332c-.5225-.0536-.9392.3128-1.0488.5449zm-.0391 8.461c.3944.5926.324 1.3306-.1563 1.6503-.4799.3197-1.188.0985-1.582-.4941-.3944-.5927-.324-1.3307.1563-1.6504.4727-.315 1.1812-.1086 1.582.4941zM7.207 13.5273c.4803.3197.5506 1.0577.1563 1.6504-.394.5926-1.1038.8138-1.584.4941-.48-.3197-.5503-1.0577-.1563-1.6504.4008-.6021 1.1087-.8106 1.584-.4941z\">\u003c/path>\n            \u003c/svg>\n            \u003cdiv class=\"ProductCard_text\">\n                \u003ch4 class=\"ProductCard_productCardTitle\">Android\u003c/h4>\n            \u003c/div>\n        \u003c/a>\n    \u003c/div>\n    \u003cdiv class=\"SDKCard\">\n        \u003ca class=\"ProductCard_card\">\n            \u003csvg role=\"img\" viewBox=\"0 0 24 24\"\n                xmlns=\"http://www.w3.org/2000/svg\">\n                \u003ctitle>Amazon Fire TV\u003c/title>\n                \u003cpath fill=\"#FC4C02\" d=\"M20.196 15.12c.265.337-.294 1.73-.542 2.353-.077.19.085.266.257.123 1.106-.926 1.39-2.867 1.166-3.149-.226-.277-2.16-.516-3.341.314-.183.127-.151.304.05.279.665-.08 2.147-.257 2.41.08m-.858.981c-2.064 1.523-5.056 2.333-7.632 2.333-3.611 0-6.862-1.334-9.322-3.555-.194-.176-.02-.414.21-.28 2.655 1.545 5.939 2.477 9.328 2.477 2.287 0 4.803-.476 7.115-1.458.348-.147.642.231.3.483m2.034-3.155a.388.388 0 0 1-.201-.04c-.041-.026-.087-.1-.133-.225l-1.734-4.355a1.79 1.79 0 0 0-.046-.117.266.266 0 0 1-.023-.108c0-.084.049-.128.146-.128h.58c.098 0 .165.014.205.04.04.026.082.102.127.226l1.344 3.823 1.343-3.823c.046-.124.089-.2.128-.226a.402.402 0 0 1 .205-.04h.54c.1 0 .148.044.148.128a.3.3 0 0 1-.025.108c-.016.04-.032.078-.044.117l-1.727 4.355c-.045.124-.09.199-.132.225a.388.388 0 0 1-.201.04zm-3.644.068c-.929 0-1.392-.463-1.392-1.392V8.739h-.706c-.13 0-.197-.066-.197-.196v-.246a.22.22 0 0 1 .045-.147c.03-.031.086-.055.171-.067l.717-.09.127-1.215c.013-.13.082-.196.207-.196h.41c.13 0 .196.066.196.196v1.196h1.276c.13 0 .195.065.195.197v.372c0 .13-.064.196-.195.196h-1.276v2.834c0 .243.055.411.162.51.108.098.293.147.555.147.124 0 .277-.016.46-.049.099-.02.164-.03.197-.03.052 0 .088.014.108.044.02.03.029.077.029.142v.266a.366.366 0 0 1-.04.19c-.026.043-.078.078-.157.103a3.018 3.018 0 0 1-.892.118m-4.665-2.976c.006-.052.011-.137.011-.255 0-.399-.094-.698-.28-.901-.186-.204-.46-.306-.818-.306-.412 0-.732.123-.962.369-.228.245-.36.61-.392 1.093zm-.942 3.07c-.803 0-1.411-.222-1.824-.667-.412-.444-.616-1.102-.616-1.972 0-.83.204-1.475.616-1.937.413-.46.988-.691 1.728-.691.62 0 1.098.176 1.432.524.332.351.5.846.5 1.487 0 .21-.017.422-.05.638-.014.077-.034.13-.064.156-.029.027-.077.04-.142.04h-3.08c.013.563.154.977.418 1.245.265.268.674.403 1.23.403.196 0 .385-.014.564-.04a5.04 5.04 0 0 0 .682-.166l.117-.035a.284.284 0 0 1 .09-.016c.085 0 .125.06.125.177v.276c0 .085-.012.144-.037.18a.441.441 0 0 1-.167.114 3.38 3.38 0 0 1-.701.205 4.236 4.236 0 0 1-.82.079m-5.424-.147c-.13 0-.195-.066-.195-.197v-4.58c0-.13.064-.195.195-.195h.432c.064 0 .116.012.153.039.036.025.06.076.072.146l.07.55c.176-.19.343-.34.499-.452a1.725 1.725 0 0 1 1.02-.323c.079 0 .158.003.235.01.112.014.168.072.168.176v.53c0 .117-.058.177-.178.177-.058 0-.114-.004-.17-.01a1.638 1.638 0 0 0-.18-.01c-.524 0-.973.157-1.346.47v3.472c0 .131-.066.197-.195.197zm-2.249 0c-.13 0-.196-.066-.196-.197v-4.58c0-.13.066-.195.196-.195h.579c.13 0 .195.064.195.195v4.58c0 .131-.065.197-.195.197zm.295-5.856c-.19 0-.339-.054-.447-.16a.581.581 0 0 1-.161-.428c0-.176.054-.318.16-.426.11-.109.257-.163.448-.163.189 0 .337.054.446.163.107.108.16.25.16.426a.581.581 0 0 1-.16.427.608.608 0 0 1-.446.161m-3.625 5.856c-.132 0-.197-.066-.197-.197v-4.01H.195c-.13 0-.195-.066-.195-.197v-.245c0-.065.014-.114.043-.147.03-.033.088-.055.173-.07l.705-.087v-.804c0-1.091.523-1.638 1.57-1.638.248 0 .51.036.784.109.072.019.122.047.152.088.029.038.044.107.044.205v.255c0 .124-.048.186-.148.186-.058 0-.14-.01-.248-.029-.11-.02-.23-.03-.369-.03-.3 0-.51.057-.633.172-.121.115-.181.303-.181.564v.903h1.324c.131 0 .197.064.197.195v.373c0 .13-.066.197-.197.197H1.892v4.01c0 .131-.065.197-.196.197Z\">\u003c/path>\n            \u003c/svg>\n            \u003cdiv class=\"ProductCard_text\">\n                \u003ch4 class=\"ProductCard_productCardTitle\">Amazon Fire TV\u003c/h4>\n            \u003c/div>\n        \u003c/a>\n    \u003c/div>\n    \u003cdiv class=\"SDKCard\">\n        \u003ca class=\"ProductCard_card\">\n            \u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-30 0 550 80\">\n                \u003cdefs>\n                    \u003cclipPath id=\"a\" clipPathUnits=\"userSpaceOnUse\">\n                        \u003cpath d=\"M619.944 203.948h59.797v10.213h-59.797z\">\u003c/path>\n                    \u003c/clipPath>\n                \u003c/defs>\n                \u003ctitle>Android TV\u003c/title>\n                \u003cg transform=\"matrix(8.27808 0 0 -8.27808 -5131.948 1772.8411)\" clip-path=\"url(#a)\">\n                    \u003cpath d=\"M623.8155 205.7036c-1.121 0-2.028.937-2.028 2.102 0 1.143.907 2.094 2.028 2.094.745 0 1.49-.347 1.807-.981.022-.044.051-.103.051-.177v-1.858c0-.037-.022-.118-.037-.14-.346-.634-1.054-1.04-1.821-1.04m3.68-1.6v7.374h-1.822v-.619c-.509.494-1.202.766-2.057.766-2.087 0-3.672-1.696-3.672-3.819 0-2.132 1.585-3.85 3.672-3.85.855 0 1.548.288 2.057.782v-.634zm7.912 0v3.989c0 1.962-1.526 3.532-3.473 3.532-1.954 0-3.473-1.57-3.473-3.532v-3.989h1.821v3.989c0 .966.679 1.704 1.652 1.704.966 0 1.652-.738 1.652-1.704v-3.989zm4.631 1.6c-1.121 0-2.028.937-2.028 2.102 0 1.143.907 2.094 2.028 2.094.745 0 1.453-.369 1.807-.981.022-.044.051-.103.051-.177v-1.866c0-.037-.022-.11-.036-.132-.347-.634-1.055-1.04-1.822-1.04m3.68-1.6v9.586h-1.822v-2.831c-.508.494-1.202.789-2.057.789-2.087 0-3.672-1.719-3.672-3.842 0-2.132 1.585-3.85 3.672-3.85.855 0 1.549.288 2.057.782v-.634zm2.787 0v3.938c0 1.165.612 1.784 1.777 1.784v1.799c-2.345 0-3.598-1.246-3.598-3.583v-3.938zm5.759 1.688c-1.106 0-2.005.9-2.005 2.014 0 1.106.899 2.005 2.005 2.005 1.121 0 2.014-.899 2.014-2.005 0-1.114-.893-2.014-2.014-2.014m0-1.836c2.132 0 3.857 1.718 3.857 3.85 0 2.123-1.725 3.819-3.857 3.819-2.123 0-3.849-1.696-3.849-3.819 0-2.132 1.726-3.85 3.849-3.85m5.597 8.082c.583 0 1.055.48 1.055 1.062 0 .59-.472 1.062-1.055 1.062-.582 0-1.054-.472-1.054-1.062 0-.582.472-1.062 1.054-1.062m.907-.56h-1.822v-7.374h1.822zm4.698-5.774c-1.121 0-2.028.937-2.028 2.102 0 1.143.907 2.094 2.028 2.094.745 0 1.452-.369 1.806-.981.023-.044.052-.103.052-.177v-1.873c0-.037-.022-.103-.037-.125-.346-.634-1.054-1.04-1.821-1.04m3.679-1.6v9.586h-1.821v-2.831c-.509.494-1.202.766-2.057.766-2.087 0-3.673-1.696-3.673-3.819 0-2.132 1.586-3.857 3.673-3.857.855 0 1.548.295 2.057.789v-.634z\" fill=\"#77c159\">\u003c/path>\n                    \u003cpath d=\"M676.7471 204.1033l2.994 7.382h-1.504l-2.449-6.401h.509l-2.455 6.393h-1.549l2.994-7.374zm-4.815-.088l.007 1.312h-.162c-1.069 0-1.822.642-1.822 1.726v3.207h1.925v1.217h-1.925v1.999h-1.334v-6.423c0-1.91 1.239-3.038 3.156-3.038z\" fill=\"#868686\">\u003c/path>\n                \u003c/g>\n            \u003c/svg>\n            \u003cdiv class=\"ProductCard_text\">\n                \u003ch4 class=\"ProductCard_productCardTitle\">Android TV\u003c/h4>\n            \u003c/div>\n        \u003c/a>\n    \u003c/div>\n\u003c/div>\n`}\u003c/HTMLBlock>\n\n## Tech Stack Overview\n\n| Specifications                                                                      | Details                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |\n| ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **Language Version**                                                                | Java 11                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |\n| **IDE**                                                                             | Android Studio 4                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |\n| **Desktop OS**                                                                      | n/a                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |\n| **Build Dependencies**                                                              | gradle-5.6.1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |\n| **Certified OS Version**                                                            | API 24 - API 36                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |\n| **Supported OS Version**                                                            | API 21 - API 36                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |\n| **Android Native SDK size (.aar file)**                                             | 1.3 MB. Please note that our SDK can increase apk size by approximately 1 MB (subject to change) due to the usage of third-party libraries                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |\n| **Compression Tool**                                                                | Proguard                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |\n| **3rd Party Frameworks**, **Open Source Libraries**, **Library/Component Licenses** | - [Android AppCompat](https://developer.android.com/jetpack/androidx/releases/appcompat): Native Android library \u003cbr /> - [Android Browser](https://developer.android.com/reference/androidx/browser/customtabs/CustomTabsIntent): Open links with CustomTabsIntent \u003cbr /> - [Android ConstraintLayout](https://developer.android.com/jetpack/androidx/releases/constraintlayout): Position and size widgets \u003cbr /> - [Android Material](https://developer.android.com/reference/com/google/android/material/bottomsheet/BottomSheetDialogFragment): BottomSheetDialogFragment for the UI display \u003cbr /> - [Android WorkManager](https://developer.android.com/reference/androidx/work/WorkManager): Retry background tasks \u003cbr /> - [Retrofit Converter Scalars](https://mvnrepository.com/artifact/com.squareup.retrofit2/converter-scalars): Used to make network calls \u003cbr /> - [Glide](https://bumptech.github.io/glide/): Load logo images \u003cbr /> - [Play Services Ads Identifier](https://mvnrepository.com/artifact/com.google.android.gms/play-services-ads-identifier?repo=google): Retrieve Google ads identifier details \u003cbr /> - [ZXing Core](https://mvnrepository.com/artifact/com.google.zxing/core): Render QR codes |\n\n## Frequently Asked Questions (FAQ)\n\nThe following responses are supported solutions to frequently asked questions (FAQ) about the Android SDK. The OneTrust team continuously monitors these inquiries and will make additional FAQ available as they are identified.\n\n1. **Is the SDK encrypted or obfuscated in any way?**\u003cbr />Yes, it is encrypted.\n2. **Does the SDK use third-party libraries, external dependencies, or open source libraries?**\u003cbr />Yes, the SDK uses all three.\n3. **Does the SDK work with SDK aggregators such as mParticle?**\u003cbr />No, it does not.\n4. **What dependencies do I need when initializing Google Ad ID?**\u003cbr />The Google Play Services dependency must be downloaded in order to initialize Google Ad ID support for your Android devices.\n5. **Does the Android SDK support Android Support Library?**\u003cbr />No, the **Android SDK** has several AndroidX dependencies. Android released API Level 28 in August 2018 which introduced **AndroidX**. This upgrade was declared a “major improvement” by Android and replaced their legacy Android Support Library. At this time, Android no longer supports Android Support Library.\n6. **Does the Android SDK support&#x20;**`Activity`**,&#x20;**`FragementActivity`**, or&#x20;**`AppCompatActivity`**&#x20;when rendering UIs?**\u003cbr />The SDK supports`FragmentActivity` or `AppCompatActivity` only.\u003cbr />`AppCompatActivity` is derived from `FragmentActivity` and `FragmentActivity` is derived from `Activity`.\u003cbr />To render the UI (bottom sheet fragment) on top of the application's UI, the Android SDK needs to work with `FragmentManager`. `FragmentManager` is part of `FragmentActivity` and `AppCompatActivity`, thus the SDK's UI needs `FragmentActivity` or `AppCompatActivity`.\n7. **Does the SDK work when using&#x20;**`minifyEnabled true`**&#x20;for new releases?**\u003cbr />Many clients obfuscate their apps prior to release to optimize for size, security, and performance. Android supports this via the [minifyEnabled](https://developer.android.com/studio/build/shrink-code) setting for release buildTypes.\u003cbr />We've had some customers raise issues previously with app crashes during their final phase of testing when `minifyEnabled` is set to `true`. Most commonly, this is due to app's `org.json` gradle dependency causing a collision with the OneTrust SDK's `org.json` dependency used for JSON parsing.\u003cbr />To resolve this, please add the following to your app's `proguard-rule.pro` file inside of Gradle Scripts, then re-build the app.\n   ```kotlin\n   -keep class org.json.** { *; }\n   ```\n8. **What if the dependencies the SDK uses is an older/different version than the one my app uses and causes a conflict?**\u003cbr />In this instance, you can exclude these dependencies from the SDK and add it explicitly in your app. For example, the SDK uses OkHttp 2.8.1 which introduces vulnerabilities/conflicts with the app. You can exclude this dependency from OneTrust and specify your own.\n\n   ```kotlin\n   implementation ('com.squareup.retrofit2:retrofit:2.8.1') {\n           // exclude Retrofit’s OkHttp dependency module and define your own module import\n           exclude module: 'okhttp'\n       }\n   ```\n\n   ```kotlin\n    implementation 'com.squareup.okhttp3:okhttp:4.10.0'\n   ```\n\n\u003cbr />","excerpt":null,"link":{"url":null,"new_tab":false},"next":{"description":null,"pages":[]}},"metadata":{"description":"The OneTrust Android CMP SDK enables businesses to capture, store, and signal user consent and preferences across devices and downstream vendors or AdTech partners. Designed to support compliance with global privacy regulations like GDPR and CCPA/CPRA, the SDK helps enhance transparency, strengthen user trust, and streamline consent management workflows on Android applications.","keywords":null,"title":"OneTrust Next Generation Android, Android TV, and Fire TV CMP SDK","x_import":null,"image":{"uri":null,"url":null}}},"meta":{"baseUrl":"/onetrust","description":"The OneTrust Android CMP SDK enables businesses to capture, store, and signal user consent and preferences across devices and downstream vendors or AdTech partners. Designed to support compliance with global privacy regulations like GDPR and CCPA/CPRA, the SDK helps enhance transparency, strengthen user trust, and streamline consent management workflows on Android applications.","hidden":false,"image":[],"metaTitle":"OneTrust Next Generation Android, Android TV, and Fire TV CMP SDK","robots":"index","slug":"android-sdk-next-gen","title":"Android SDK","type":"docs"},"rdmd":{"dehydrated":{"toc":"\u003cnav aria-label=\"Table of contents\" class=\"rm-ToC\">\u003cul class=\"toc-list\">\u003cli class=\"toc-children\">\u003cul>\u003cli>\u003ca href=\"#supported-platforms\">Supported Platforms\u003c/a>\u003c/li>\u003cli>\u003ca href=\"#tech-stack-overview\">Tech Stack Overview\u003c/a>\u003c/li>\u003cli>\u003ca href=\"#frequently-asked-questions-faq\">Frequently Asked Questions (FAQ)\u003c/a>\u003c/li>\u003c/ul>\u003c/li>\u003c/ul>\u003c/nav>","body":"\u003cstyle>/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */\n@layer theme, base, components, utilities;\n@layer utilities;\n\u003c/style>\u003cblockquote class=\"callout callout_info\" theme=\"📘\">\u003cspan class=\"callout-icon\">📘\u003c/span>\u003cp class=\"callout-heading empty\">\u003c/p>\u003cp>A new, rearchitected version of the Android CMP SDK has been released as of 202507.1.0. For more information, see \u003ca href=\"https://developer.onetrust.com/onetrust/docs/onetrusts-next-generation-cmp-sdks\" target=\"\" title=\"\">OneTrust Next Generation CMP SDKs\u003c/a>.\u003c/p>\u003c/blockquote>\n\u003ch2 class=\"heading heading-2 header-scroll\">\u003cdiv class=\"heading-anchor anchor waypoint\" id=\"supported-platforms\">\u003c/div>\u003cdiv class=\"heading-text\">Supported Platforms\u003c/div>\u003ca aria-label=\"Skip link to Supported Platforms\" class=\"heading-anchor-icon fa fa-regular fa-anchor\" href=\"#supported-platforms\">\u003c/a>\u003c/h2>\n\u003cp>\u003cdiv class=\"rdmd-html\">\u003cdiv class=\"SDKWrapper\">\n    \u003cdiv class=\"SDKCard\">\n        \u003ca class=\"ProductCard_card\">\n            \u003csvg role=\"img\" viewBox=\"0 0 24 24\"\n                xmlns=\"http://www.w3.org/2000/svg\">\n                \u003ctitle>Android\u003c/title>\n                \u003cpath fill=\"#34A853\" d=\"M18.4395 5.5586c-.675 1.1664-1.352 2.3318-2.0274 3.498-.0366-.0155-.0742-.0286-.1113-.043-1.8249-.6957-3.484-.8-4.42-.787-1.8551.0185-3.3544.4643-4.2597.8203-.084-.1494-1.7526-3.021-2.0215-3.4864a1.1451 1.1451 0 0 0-.1406-.1914c-.3312-.364-.9054-.4859-1.379-.203-.475.282-.7136.9361-.3886 1.5019 1.9466 3.3696-.0966-.2158 1.9473 3.3593.0172.031-.4946.2642-1.3926 1.0177C2.8987 12.176.452 14.772 0 18.9902h24c-.119-1.1108-.3686-2.099-.7461-3.0683-.7438-1.9118-1.8435-3.2928-2.7402-4.1836a12.1048 12.1048 0 0 0-2.1309-1.6875c.6594-1.122 1.312-2.2559 1.9649-3.3848.2077-.3615.1886-.7956-.0079-1.1191a1.1001 1.1001 0 0 0-.8515-.5332c-.5225-.0536-.9392.3128-1.0488.5449zm-.0391 8.461c.3944.5926.324 1.3306-.1563 1.6503-.4799.3197-1.188.0985-1.582-.4941-.3944-.5927-.324-1.3307.1563-1.6504.4727-.315 1.1812-.1086 1.582.4941zM7.207 13.5273c.4803.3197.5506 1.0577.1563 1.6504-.394.5926-1.1038.8138-1.584.4941-.48-.3197-.5503-1.0577-.1563-1.6504.4008-.6021 1.1087-.8106 1.584-.4941z\">\u003c/path>\n            \u003c/svg>\n            \u003cdiv class=\"ProductCard_text\">\n                \u003ch4 class=\"ProductCard_productCardTitle\">Android\u003c/h4>\n            \u003c/div>\n        \u003c/a>\n    \u003c/div>\n    \u003cdiv class=\"SDKCard\">\n        \u003ca class=\"ProductCard_card\">\n            \u003csvg role=\"img\" viewBox=\"0 0 24 24\"\n                xmlns=\"http://www.w3.org/2000/svg\">\n                \u003ctitle>Amazon Fire TV\u003c/title>\n                \u003cpath fill=\"#FC4C02\" d=\"M20.196 15.12c.265.337-.294 1.73-.542 2.353-.077.19.085.266.257.123 1.106-.926 1.39-2.867 1.166-3.149-.226-.277-2.16-.516-3.341.314-.183.127-.151.304.05.279.665-.08 2.147-.257 2.41.08m-.858.981c-2.064 1.523-5.056 2.333-7.632 2.333-3.611 0-6.862-1.334-9.322-3.555-.194-.176-.02-.414.21-.28 2.655 1.545 5.939 2.477 9.328 2.477 2.287 0 4.803-.476 7.115-1.458.348-.147.642.231.3.483m2.034-3.155a.388.388 0 0 1-.201-.04c-.041-.026-.087-.1-.133-.225l-1.734-4.355a1.79 1.79 0 0 0-.046-.117.266.266 0 0 1-.023-.108c0-.084.049-.128.146-.128h.58c.098 0 .165.014.205.04.04.026.082.102.127.226l1.344 3.823 1.343-3.823c.046-.124.089-.2.128-.226a.402.402 0 0 1 .205-.04h.54c.1 0 .148.044.148.128a.3.3 0 0 1-.025.108c-.016.04-.032.078-.044.117l-1.727 4.355c-.045.124-.09.199-.132.225a.388.388 0 0 1-.201.04zm-3.644.068c-.929 0-1.392-.463-1.392-1.392V8.739h-.706c-.13 0-.197-.066-.197-.196v-.246a.22.22 0 0 1 .045-.147c.03-.031.086-.055.171-.067l.717-.09.127-1.215c.013-.13.082-.196.207-.196h.41c.13 0 .196.066.196.196v1.196h1.276c.13 0 .195.065.195.197v.372c0 .13-.064.196-.195.196h-1.276v2.834c0 .243.055.411.162.51.108.098.293.147.555.147.124 0 .277-.016.46-.049.099-.02.164-.03.197-.03.052 0 .088.014.108.044.02.03.029.077.029.142v.266a.366.366 0 0 1-.04.19c-.026.043-.078.078-.157.103a3.018 3.018 0 0 1-.892.118m-4.665-2.976c.006-.052.011-.137.011-.255 0-.399-.094-.698-.28-.901-.186-.204-.46-.306-.818-.306-.412 0-.732.123-.962.369-.228.245-.36.61-.392 1.093zm-.942 3.07c-.803 0-1.411-.222-1.824-.667-.412-.444-.616-1.102-.616-1.972 0-.83.204-1.475.616-1.937.413-.46.988-.691 1.728-.691.62 0 1.098.176 1.432.524.332.351.5.846.5 1.487 0 .21-.017.422-.05.638-.014.077-.034.13-.064.156-.029.027-.077.04-.142.04h-3.08c.013.563.154.977.418 1.245.265.268.674.403 1.23.403.196 0 .385-.014.564-.04a5.04 5.04 0 0 0 .682-.166l.117-.035a.284.284 0 0 1 .09-.016c.085 0 .125.06.125.177v.276c0 .085-.012.144-.037.18a.441.441 0 0 1-.167.114 3.38 3.38 0 0 1-.701.205 4.236 4.236 0 0 1-.82.079m-5.424-.147c-.13 0-.195-.066-.195-.197v-4.58c0-.13.064-.195.195-.195h.432c.064 0 .116.012.153.039.036.025.06.076.072.146l.07.55c.176-.19.343-.34.499-.452a1.725 1.725 0 0 1 1.02-.323c.079 0 .158.003.235.01.112.014.168.072.168.176v.53c0 .117-.058.177-.178.177-.058 0-.114-.004-.17-.01a1.638 1.638 0 0 0-.18-.01c-.524 0-.973.157-1.346.47v3.472c0 .131-.066.197-.195.197zm-2.249 0c-.13 0-.196-.066-.196-.197v-4.58c0-.13.066-.195.196-.195h.579c.13 0 .195.064.195.195v4.58c0 .131-.065.197-.195.197zm.295-5.856c-.19 0-.339-.054-.447-.16a.581.581 0 0 1-.161-.428c0-.176.054-.318.16-.426.11-.109.257-.163.448-.163.189 0 .337.054.446.163.107.108.16.25.16.426a.581.581 0 0 1-.16.427.608.608 0 0 1-.446.161m-3.625 5.856c-.132 0-.197-.066-.197-.197v-4.01H.195c-.13 0-.195-.066-.195-.197v-.245c0-.065.014-.114.043-.147.03-.033.088-.055.173-.07l.705-.087v-.804c0-1.091.523-1.638 1.57-1.638.248 0 .51.036.784.109.072.019.122.047.152.088.029.038.044.107.044.205v.255c0 .124-.048.186-.148.186-.058 0-.14-.01-.248-.029-.11-.02-.23-.03-.369-.03-.3 0-.51.057-.633.172-.121.115-.181.303-.181.564v.903h1.324c.131 0 .197.064.197.195v.373c0 .13-.066.197-.197.197H1.892v4.01c0 .131-.065.197-.196.197Z\">\u003c/path>\n            \u003c/svg>\n            \u003cdiv class=\"ProductCard_text\">\n                \u003ch4 class=\"ProductCard_productCardTitle\">Amazon Fire TV\u003c/h4>\n            \u003c/div>\n        \u003c/a>\n    \u003c/div>\n    \u003cdiv class=\"SDKCard\">\n        \u003ca class=\"ProductCard_card\">\n            \u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-30 0 550 80\">\n                \u003cdefs>\n                    \u003cclipPath id=\"a\" clipPathUnits=\"userSpaceOnUse\">\n                        \u003cpath d=\"M619.944 203.948h59.797v10.213h-59.797z\">\u003c/path>\n                    \u003c/clipPath>\n                \u003c/defs>\n                \u003ctitle>Android TV\u003c/title>\n                \u003cg transform=\"matrix(8.27808 0 0 -8.27808 -5131.948 1772.8411)\" clip-path=\"url(#a)\">\n                    \u003cpath d=\"M623.8155 205.7036c-1.121 0-2.028.937-2.028 2.102 0 1.143.907 2.094 2.028 2.094.745 0 1.49-.347 1.807-.981.022-.044.051-.103.051-.177v-1.858c0-.037-.022-.118-.037-.14-.346-.634-1.054-1.04-1.821-1.04m3.68-1.6v7.374h-1.822v-.619c-.509.494-1.202.766-2.057.766-2.087 0-3.672-1.696-3.672-3.819 0-2.132 1.585-3.85 3.672-3.85.855 0 1.548.288 2.057.782v-.634zm7.912 0v3.989c0 1.962-1.526 3.532-3.473 3.532-1.954 0-3.473-1.57-3.473-3.532v-3.989h1.821v3.989c0 .966.679 1.704 1.652 1.704.966 0 1.652-.738 1.652-1.704v-3.989zm4.631 1.6c-1.121 0-2.028.937-2.028 2.102 0 1.143.907 2.094 2.028 2.094.745 0 1.453-.369 1.807-.981.022-.044.051-.103.051-.177v-1.866c0-.037-.022-.11-.036-.132-.347-.634-1.055-1.04-1.822-1.04m3.68-1.6v9.586h-1.822v-2.831c-.508.494-1.202.789-2.057.789-2.087 0-3.672-1.719-3.672-3.842 0-2.132 1.585-3.85 3.672-3.85.855 0 1.549.288 2.057.782v-.634zm2.787 0v3.938c0 1.165.612 1.784 1.777 1.784v1.799c-2.345 0-3.598-1.246-3.598-3.583v-3.938zm5.759 1.688c-1.106 0-2.005.9-2.005 2.014 0 1.106.899 2.005 2.005 2.005 1.121 0 2.014-.899 2.014-2.005 0-1.114-.893-2.014-2.014-2.014m0-1.836c2.132 0 3.857 1.718 3.857 3.85 0 2.123-1.725 3.819-3.857 3.819-2.123 0-3.849-1.696-3.849-3.819 0-2.132 1.726-3.85 3.849-3.85m5.597 8.082c.583 0 1.055.48 1.055 1.062 0 .59-.472 1.062-1.055 1.062-.582 0-1.054-.472-1.054-1.062 0-.582.472-1.062 1.054-1.062m.907-.56h-1.822v-7.374h1.822zm4.698-5.774c-1.121 0-2.028.937-2.028 2.102 0 1.143.907 2.094 2.028 2.094.745 0 1.452-.369 1.806-.981.023-.044.052-.103.052-.177v-1.873c0-.037-.022-.103-.037-.125-.346-.634-1.054-1.04-1.821-1.04m3.679-1.6v9.586h-1.821v-2.831c-.509.494-1.202.766-2.057.766-2.087 0-3.673-1.696-3.673-3.819 0-2.132 1.586-3.857 3.673-3.857.855 0 1.548.295 2.057.789v-.634z\" fill=\"#77c159\">\u003c/path>\n                    \u003cpath d=\"M676.7471 204.1033l2.994 7.382h-1.504l-2.449-6.401h.509l-2.455 6.393h-1.549l2.994-7.374zm-4.815-.088l.007 1.312h-.162c-1.069 0-1.822.642-1.822 1.726v3.207h1.925v1.217h-1.925v1.999h-1.334v-6.423c0-1.91 1.239-3.038 3.156-3.038z\" fill=\"#868686\">\u003c/path>\n                \u003c/g>\n            \u003c/svg>\n            \u003cdiv class=\"ProductCard_text\">\n                \u003ch4 class=\"ProductCard_productCardTitle\">Android TV\u003c/h4>\n            \u003c/div>\n        \u003c/a>\n    \u003c/div>\n\u003c/div>\u003c/div>\u003c/p>\n\u003ch2 class=\"heading heading-2 header-scroll\">\u003cdiv class=\"heading-anchor anchor waypoint\" id=\"tech-stack-overview\">\u003c/div>\u003cdiv class=\"heading-text\">Tech Stack Overview\u003c/div>\u003ca aria-label=\"Skip link to Tech Stack Overview\" class=\"heading-anchor-icon fa fa-regular fa-anchor\" href=\"#tech-stack-overview\">\u003c/a>\u003c/h2>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003cdiv class=\"rdmd-table\">\u003cdiv class=\"rdmd-table-inner\">\u003ctable>\u003cthead>\u003ctr>\u003cth>Specifications\u003c/th>\u003cth>Details\u003c/th>\u003c/tr>\u003c/thead>\u003ctbody>\u003ctr>\u003ctd>\u003cstrong>Language Version\u003c/strong>\u003c/td>\u003ctd>Java 11\u003c/td>\u003c/tr>\u003ctr>\u003ctd>\u003cstrong>IDE\u003c/strong>\u003c/td>\u003ctd>Android Studio 4\u003c/td>\u003c/tr>\u003ctr>\u003ctd>\u003cstrong>Desktop OS\u003c/strong>\u003c/td>\u003ctd>n/a\u003c/td>\u003c/tr>\u003ctr>\u003ctd>\u003cstrong>Build Dependencies\u003c/strong>\u003c/td>\u003ctd>gradle-5.6.1\u003c/td>\u003c/tr>\u003ctr>\u003ctd>\u003cstrong>Certified OS Version\u003c/strong>\u003c/td>\u003ctd>API 24 - API 36\u003c/td>\u003c/tr>\u003ctr>\u003ctd>\u003cstrong>Supported OS Version\u003c/strong>\u003c/td>\u003ctd>API 21 - API 36\u003c/td>\u003c/tr>\u003ctr>\u003ctd>\u003cstrong>Android Native SDK size (.aar file)\u003c/strong>\u003c/td>\u003ctd>1.3 MB. Please note that our SDK can increase apk size by approximately 1 MB (subject to change) due to the usage of third-party libraries\u003c/td>\u003c/tr>\u003ctr>\u003ctd>\u003cstrong>Compression Tool\u003c/strong>\u003c/td>\u003ctd>Proguard\u003c/td>\u003c/tr>\u003ctr>\u003ctd>\u003cstrong>3rd Party Frameworks\u003c/strong>, \u003cstrong>Open Source Libraries\u003c/strong>, \u003cstrong>Library/Component Licenses\u003c/strong>\u003c/td>\u003ctd>- \u003ca href=\"https://developer.android.com/jetpack/androidx/releases/appcompat\" target=\"\" title=\"\">Android AppCompat\u003c/a>: Native Android library \u003cbr/> - \u003ca href=\"https://developer.android.com/reference/androidx/browser/customtabs/CustomTabsIntent\" target=\"\" title=\"\">Android Browser\u003c/a>: Open links with CustomTabsIntent \u003cbr/> - \u003ca href=\"https://developer.android.com/jetpack/androidx/releases/constraintlayout\" target=\"\" title=\"\">Android ConstraintLayout\u003c/a>: Position and size widgets \u003cbr/> - \u003ca href=\"https://developer.android.com/reference/com/google/android/material/bottomsheet/BottomSheetDialogFragment\" target=\"\" title=\"\">Android Material\u003c/a>: BottomSheetDialogFragment for the UI display \u003cbr/> - \u003ca href=\"https://developer.android.com/reference/androidx/work/WorkManager\" target=\"\" title=\"\">Android WorkManager\u003c/a>: Retry background tasks \u003cbr/> - \u003ca href=\"https://mvnrepository.com/artifact/com.squareup.retrofit2/converter-scalars\" target=\"\" title=\"\">Retrofit Converter Scalars\u003c/a>: Used to make network calls \u003cbr/> - \u003ca href=\"https://bumptech.github.io/glide/\" target=\"\" title=\"\">Glide\u003c/a>: Load logo images \u003cbr/> - \u003ca href=\"https://mvnrepository.com/artifact/com.google.android.gms/play-services-ads-identifier?repo=google\" target=\"\" title=\"\">Play Services Ads Identifier\u003c/a>: Retrieve Google ads identifier details \u003cbr/> - \u003ca href=\"https://mvnrepository.com/artifact/com.google.zxing/core\" target=\"\" title=\"\">ZXing Core\u003c/a>: Render QR codes\u003c/td>\u003c/tr>\u003c/tbody>\u003c/table>\u003c/div>\u003c/div>\n\u003ch2 class=\"heading heading-2 header-scroll\">\u003cdiv class=\"heading-anchor anchor waypoint\" id=\"frequently-asked-questions-faq\">\u003c/div>\u003cdiv class=\"heading-text\">Frequently Asked Questions (FAQ)\u003c/div>\u003ca aria-label=\"Skip link to Frequently Asked Questions (FAQ)\" class=\"heading-anchor-icon fa fa-regular fa-anchor\" href=\"#frequently-asked-questions-faq\">\u003c/a>\u003c/h2>\n\u003cp>The following responses are supported solutions to frequently asked questions (FAQ) about the Android SDK. The OneTrust team continuously monitors these inquiries and will make additional FAQ available as they are identified.\u003c/p>\n\u003col>\n\u003cli>\n\u003cp>\u003cstrong>Is the SDK encrypted or obfuscated in any way?\u003c/strong>\u003cbr/>Yes, it is encrypted.\u003c/p>\n\u003c/li>\n\u003cli>\n\u003cp>\u003cstrong>Does the SDK use third-party libraries, external dependencies, or open source libraries?\u003c/strong>\u003cbr/>Yes, the SDK uses all three.\u003c/p>\n\u003c/li>\n\u003cli>\n\u003cp>\u003cstrong>Does the SDK work with SDK aggregators such as mParticle?\u003c/strong>\u003cbr/>No, it does not.\u003c/p>\n\u003c/li>\n\u003cli>\n\u003cp>\u003cstrong>What dependencies do I need when initializing Google Ad ID?\u003c/strong>\u003cbr/>The Google Play Services dependency must be downloaded in order to initialize Google Ad ID support for your Android devices.\u003c/p>\n\u003c/li>\n\u003cli>\n\u003cp>\u003cstrong>Does the Android SDK support Android Support Library?\u003c/strong>\u003cbr/>No, the \u003cstrong>Android SDK\u003c/strong> has several AndroidX dependencies. Android released API Level 28 in August 2018 which introduced \u003cstrong>AndroidX\u003c/strong>. This upgrade was declared a “major improvement” by Android and replaced their legacy Android Support Library. At this time, Android no longer supports Android Support Library.\u003c/p>\n\u003c/li>\n\u003cli>\n\u003cp>\u003cstrong>Does the Android SDK support \u003c/strong>\u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">Activity\u003c/code>\u003cstrong>, \u003c/strong>\u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">FragementActivity\u003c/code>\u003cstrong>, or \u003c/strong>\u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">AppCompatActivity\u003c/code>\u003cstrong> when rendering UIs?\u003c/strong>\u003cbr/>The SDK supports\u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">FragmentActivity\u003c/code> or \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">AppCompatActivity\u003c/code> only.\u003cbr/>\u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">AppCompatActivity\u003c/code> is derived from \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">FragmentActivity\u003c/code> and \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">FragmentActivity\u003c/code> is derived from \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">Activity\u003c/code>.\u003cbr/>To render the UI (bottom sheet fragment) on top of the application&#x27;s UI, the Android SDK needs to work with \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">FragmentManager\u003c/code>. \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">FragmentManager\u003c/code> is part of \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">FragmentActivity\u003c/code> and \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">AppCompatActivity\u003c/code>, thus the SDK&#x27;s UI needs \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">FragmentActivity\u003c/code> or \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">AppCompatActivity\u003c/code>.\u003c/p>\n\u003c/li>\n\u003cli>\n\u003cp>\u003cstrong>Does the SDK work when using \u003c/strong>\u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">minifyEnabled true\u003c/code>\u003cstrong> for new releases?\u003c/strong>\u003cbr/>Many clients obfuscate their apps prior to release to optimize for size, security, and performance. Android supports this via the \u003ca href=\"https://developer.android.com/studio/build/shrink-code\" target=\"\" title=\"\">minifyEnabled\u003c/a> setting for release buildTypes.\u003cbr/>We&#x27;ve had some customers raise issues previously with app crashes during their final phase of testing when \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">minifyEnabled\u003c/code> is set to \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">true\u003c/code>. Most commonly, this is due to app&#x27;s \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">org.json\u003c/code> gradle dependency causing a collision with the OneTrust SDK&#x27;s \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">org.json\u003c/code> dependency used for JSON parsing.\u003cbr/>To resolve this, please add the following to your app&#x27;s \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">proguard-rule.pro\u003c/code> file inside of Gradle Scripts, then re-build the app.\u003c/p>\n\u003cdiv class=\"CodeTabs CodeTabs_initial theme-undefined\">\u003cdiv class=\"CodeTabs-toolbar\">\u003cbutton type=\"button\" value=\"kotlin\">Kotlin\u003c/button>\u003c/div>\u003cdiv class=\"CodeTabs-inner\">\u003cpre>\u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">-keep class org.json.** { *; }\u003c/code>\u003c/pre>\u003c/div>\u003c/div>\n\u003c/li>\n\u003cli>\n\u003cp>\u003cstrong>What if the dependencies the SDK uses is an older/different version than the one my app uses and causes a conflict?\u003c/strong>\u003cbr/>In this instance, you can exclude these dependencies from the SDK and add it explicitly in your app. For example, the SDK uses OkHttp 2.8.1 which introduces vulnerabilities/conflicts with the app. You can exclude this dependency from OneTrust and specify your own.\u003c/p>\n\u003cdiv class=\"CodeTabs CodeTabs_initial theme-undefined\">\u003cdiv class=\"CodeTabs-toolbar\">\u003cbutton type=\"button\" value=\"kotlin\">Kotlin\u003c/button>\u003c/div>\u003cdiv class=\"CodeTabs-inner\">\u003cpre>\u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">implementation (&#x27;com.squareup.retrofit2:retrofit:2.8.1&#x27;) {\n        // exclude Retrofit’s OkHttp dependency module and define your own module import\n        exclude module: &#x27;okhttp&#x27;\n    }\u003c/code>\u003c/pre>\u003c/div>\u003c/div>\n\u003cdiv class=\"CodeTabs CodeTabs_initial theme-undefined\">\u003cdiv class=\"CodeTabs-toolbar\">\u003cbutton type=\"button\" value=\"kotlin\">Kotlin\u003c/button>\u003c/div>\u003cdiv class=\"CodeTabs-inner\">\u003cpre>\u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\"> implementation &#x27;com.squareup.okhttp3:okhttp:4.10.0&#x27;\u003c/code>\u003c/pre>\u003c/div>\u003c/div>\n\u003c/li>\n\u003c/ol>\n\u003cbr/>","css":"/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */\n@layer theme, base, components, utilities;\n@layer utilities;\n"},"opts":{"alwaysThrow":false,"compatibilityMode":false,"copyButtons":true,"correctnewlines":false,"markdownOptions":{"fences":true,"commonmark":true,"gfm":true,"ruleSpaces":false,"listItemIndent":"1","spacedTable":true,"paddedTable":true},"normalize":true,"lazyImages":true,"reusableContent":{"tags":{},"disabled":false,"serialize":true,"wrap":true},"safeMode":false,"settings":{"position":true},"theme":"light","customBlocks":{},"componentTypes":{},"resourceID":"/branches/1.0/guides/android-sdk-next-gen","resourceType":"page","components":{},"baseUrl":"/onetrust","terms":[{"term":"client_id","definition":"Unique identifier for the OneTrust client credential.","_id":"6944272f3991ecfaaf896a2e"},{"term":"grant_type","definition":"decides the type of access. OneTrust supports both password and client_credentials grant type","_id":"6944272f3991ecfaaf896a2f"},{"term":"client_secret","definition":"a one-time hexadecimal string that is issued and displayed at the time of client credential creation.","_id":"6944272f3991ecfaaf896a30"},{"term":"environment","definition":"The applicable Environment where each OneTrust tenant is hosted can be identified based on the URL, for example, https://app.onetrust.com would be the App Environment.","_id":"6944272f3991ecfaaf896a31"},{"term":"environments","definition":"The applicable Environment where each OneTrust tenant is hosted can be identified based on the URL, for example, https://app.onetrust.com would be the App Environment.","_id":"6944272f3991ecfaaf896a32"},{"term":"account","definition":"OneTrust accounts are hosted in a OneTrust Environment. Accounts are normally provisioned to customers or partners and many users share access to the same account. It is possible for a single user to have access to multiple accounts in an environment. You can switch between accounts by clicking on the User icon in the OneTrust Application and selecting Switch Tenants.","_id":"6944272f3991ecfaaf896a33"}],"variables":{"user":{},"defaults":[{"name":"name","default":"Name","source":"","type":"","_id":"6944272f3991ecfaaf896a34"},{"name":"email","default":"your@email.here","source":"","type":"","_id":"6944272f3991ecfaaf896a35"},{"name":"apiKey","default":"{API Key}","source":"","type":"","_id":"6944272f3991ecfaaf896a36"},{"name":"customerbase","default":"https://YourAPIDomain.com","source":"","type":"","_id":"6944272f3991ecfaaf896a37"},{"name":"authorization","default":"Bearer {OAuth Access Token}","source":"","type":"","_id":"6944272f3991ecfaaf896a38"},{"name":"hostname","default":"hostname","source":"server","type":"","_id":"6944272f3991ecfaaf896a39"},{"name":"environment","default":"app.onetrust.com","source":"server","type":"","_id":"6944272f3991ecfaaf896a3a"},{"name":"oauth2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a3b"},{"name":"OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a3c"},{"name":"bearerAuth","scheme":"bearer","source":"security","type":"http","_id":"6944272f3991ecfaaf896a3d"},{"name":"DataUseGovernance-DataDiscovery_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a3e"},{"name":"TechRiskCompliance-ITRiskManagement_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a3f"},{"name":"TechRiskCompliance-RiskTemplate_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a40"},{"name":"TechRiskCompliance-Risk_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a41"},{"name":"DataUseGovernance-DataCatalog_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a42"},{"name":"DataUseGovernance-DataAssetManagement_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a43"},{"name":"DataUseGovernance-DataCatalogMetadataExchange_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a44"},{"name":"DataUseGovernance-DataDiscoveryCustomClassiferMana_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a45"},{"name":"PrivacyAutomation-AssessmentAutomation_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a46"},{"name":"Template_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a47"},{"name":"Platform-AccessManagement_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a48"},{"name":"AuditRecords_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a49"},{"name":"ConsentPreferences-UniversalConsentPreferenceManag_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a4a"},{"name":"ConsentAPI_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a4b"},{"name":"DSPreferneceCache_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a4c"}]}}},"sidebar":[{"pages":[{"deprecated":false,"hidden":false,"icon":"fad fa-cubes-stacked","isBodyEmpty":false,"renderable":{"status":true},"slug":"onetrust-sdk-reference","title":"OneTrust SDK Reference","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/onetrust-sdk-reference","category":"/branches/1.0/categories/guides/Getting Started","parent":null},{"deprecated":false,"hidden":false,"icon":"fad fa-rocket-launch","isBodyEmpty":true,"link_url":"https://my.onetrust.com/s/article/UUID-0297af95-8515-28ff-6f86-0f489f3c3e54?topicId=0TO1Q000000wxmbWAA","link_external":true,"renderable":{"status":true},"slug":"quick-start-guide-sdks","title":"Quick Start Guide: SDKs","type":"link","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"setup","title":"SDK Overview","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"app-scanning","title":"Scanning and Categorizing SDKs","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/app-scanning","category":"/branches/1.0/categories/guides/Getting Started","parent":"/branches/1.0/guides/setup","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"how-app-scanner-works","title":"How App Scanner Works","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/how-app-scanner-works","category":"/branches/1.0/categories/guides/Getting Started","parent":"/branches/1.0/guides/setup","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"scan-apps-via-api","title":"Scan Apps via API","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/scan-apps-via-api","category":"/branches/1.0/categories/guides/Getting Started","parent":"/branches/1.0/guides/setup","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"publish-changes","title":"Publish Changes","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/publish-changes","category":"/branches/1.0/categories/guides/Getting Started","parent":"/branches/1.0/guides/setup","pages":[]}],"uri":"/branches/1.0/guides/setup","category":"/branches/1.0/categories/guides/Getting Started","parent":"/branches/1.0/guides/quick-start-guide-sdks"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"mobile-ctv","title":"Mobile & OTT/CTV SDKs","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/mobile-ctv","category":"/branches/1.0/categories/guides/Getting Started","parent":"/branches/1.0/guides/quick-start-guide-sdks"}],"uri":"/branches/1.0/guides/quick-start-guide-sdks","category":"/branches/1.0/categories/guides/Getting Started","parent":null},{"deprecated":false,"hidden":false,"icon":"fad fa-file-code","isBodyEmpty":true,"link_url":"https://my.onetrust.com/s/article/UUID-18879ed6-b1bc-98a4-66e5-28a7d4356a65?topicId=0TO1Q000000sseOWAQ","link_external":true,"renderable":{"status":true},"slug":"quick-start-guide-website","title":"Quick Start Guide: Website Scripts","type":"link","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/quick-start-guide-website","category":"/branches/1.0/categories/guides/Getting Started","parent":null},{"deprecated":false,"hidden":false,"icon":"fad fa-screen-users","isBodyEmpty":false,"renderable":{"status":true},"slug":"taking-a-onetrust-hands-on-lab","title":"OneTrust Hands-On Lab","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/taking-a-onetrust-hands-on-lab","category":"/branches/1.0/categories/guides/Getting Started","parent":null}],"title":"Getting Started","uri":"/branches/1.0/categories/guides/Getting Started"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"managing-known-users","title":"Managing Known Users","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"cross-domain-cross-device","title":"Cross Domain and Cross Device Consent","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/cross-domain-cross-device","category":"/branches/1.0/categories/guides/Additional Resources","parent":"/branches/1.0/guides/managing-known-users"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"unified-profile","title":"Unified Profile","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/unified-profile","category":"/branches/1.0/categories/guides/Additional Resources","parent":"/branches/1.0/guides/managing-known-users"}],"uri":"/branches/1.0/guides/managing-known-users","category":"/branches/1.0/categories/guides/Additional Resources","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"adding-sdk-to-app","title":"Data Discovery Connector SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/adding-sdk-to-app","category":"/branches/1.0/categories/guides/Additional Resources","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"tc-string-encoder","title":"IAB TC String Encoder","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/tc-string-encoder","category":"/branches/1.0/categories/guides/Additional Resources","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"getting-started-1","title":"Web Form Collection Point JavaScript SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"command-queue","title":"Command queue for embedded web forms","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/command-queue","category":"/branches/1.0/categories/guides/Additional Resources","parent":"/branches/1.0/guides/getting-started-1"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"common-sdk-methods","title":"Common SDK Methods (External web form)","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/common-sdk-methods","category":"/branches/1.0/categories/guides/Additional Resources","parent":"/branches/1.0/guides/getting-started-1"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"embedded-web-forms-methods-and-events","title":"Embedded web forms methods and events","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/embedded-web-forms-methods-and-events","category":"/branches/1.0/categories/guides/Additional Resources","parent":"/branches/1.0/guides/getting-started-1"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"sample-javascript-sdk-and-instructions","title":"Sample JavaScript SDK and Instructions","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/sample-javascript-sdk-and-instructions","category":"/branches/1.0/categories/guides/Additional Resources","parent":"/branches/1.0/guides/getting-started-1"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"trigger-collection-points","title":"Trigger Collection Points","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/trigger-collection-points","category":"/branches/1.0/categories/guides/Additional Resources","parent":"/branches/1.0/guides/getting-started-1"}],"uri":"/branches/1.0/guides/getting-started-1","category":"/branches/1.0/categories/guides/Additional Resources","parent":null}],"title":"Additional Resources","uri":"/branches/1.0/categories/guides/Additional Resources"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"onetrusts-next-generation-cmp-sdks","title":"OneTrust Next Generation CMP SDKs","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/onetrusts-next-generation-cmp-sdks","category":"/branches/1.0/categories/guides/SDK Reference","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard","title":"AI Guard","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"ai-guard-getting-started","title":"Getting Started","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-prerequisites","title":"Prerequisites","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ai-guard-prerequisites","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard-getting-started","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-create-api-key","title":"Create an API Key","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ai-guard-create-api-key","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard-getting-started","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-deploy-worker-node","title":"Deploy the Light Worker Node","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ai-guard-deploy-worker-node","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard-getting-started","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-install-sdk","title":"Install the SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ai-guard-install-sdk","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard-getting-started","pages":[]}],"uri":"/branches/1.0/guides/ai-guard-getting-started","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard"},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"ai-guard-sdk-guide","title":"SDK Guide","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-initializing-the-client","title":"Initializing the Client","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ai-guard-initializing-the-client","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard-sdk-guide","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-classification","title":"Classify Text","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ai-guard-classification","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard-sdk-guide","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-redaction","title":"Redact Sensitive Data","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ai-guard-redaction","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard-sdk-guide","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-streaming","title":"Streaming Classification","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ai-guard-streaming","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard-sdk-guide","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-metrics","title":"Observability & Metrics","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ai-guard-metrics","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard-sdk-guide","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-classifier-descriptions","title":"Classifier Descriptions","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ai-guard-classifier-descriptions","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard-sdk-guide","pages":[]}],"uri":"/branches/1.0/guides/ai-guard-sdk-guide","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard"},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"ai-guard-api-reference","title":"API Reference","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-api-overview","title":"API Overview","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ai-guard-api-overview","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard-api-reference","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-api-classify","title":"POST /classifications/v1","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ai-guard-api-classify","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard-api-reference","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-api-metric","title":"POST /metric","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ai-guard-api-metric","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard-api-reference","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-api-health","title":"GET /health","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ai-guard-api-health","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard-api-reference","pages":[]}],"uri":"/branches/1.0/guides/ai-guard-api-reference","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard"},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"ai-guard-configuration","title":"Configuration","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-service-configuration","title":"Service Configuration","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ai-guard-service-configuration","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard-configuration","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-authentication","title":"Authentication & Authorization","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ai-guard-authentication","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard-configuration","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-tls-certificate-pinning","title":"TLS & Certificate Pinning","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ai-guard-tls-certificate-pinning","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard-configuration","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-classification-profiles","title":"Classification Profiles","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ai-guard-classification-profiles","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard-configuration","pages":[]}],"uri":"/branches/1.0/guides/ai-guard-configuration","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard"},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"ai-guard-deployment","title":"Deployment","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-docker","title":"Docker Deployment","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ai-guard-docker","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard-deployment","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-kubernetes","title":"Kubernetes Deployment","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ai-guard-kubernetes","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard-deployment","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-networking","title":"Networking Requirements","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ai-guard-networking","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard-deployment","pages":[]}],"uri":"/branches/1.0/guides/ai-guard-deployment","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard"},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"ai-guard-observability","title":"Observability","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-metrics-overview","title":"Metrics Overview","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ai-guard-metrics-overview","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard-observability","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-meters","title":"Meter Definitions","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ai-guard-meters","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard-observability","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-exporters","title":"Metrics Exporters","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ai-guard-exporters","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard-observability","pages":[]}],"uri":"/branches/1.0/guides/ai-guard-observability","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-troubleshooting","title":"Troubleshooting","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/ai-guard-troubleshooting","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-error-reference","title":"Error Reference","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/ai-guard-error-reference","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ai-guard-faq","title":"FAQ","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/ai-guard-faq","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ai-guard"}],"uri":"/branches/1.0/guides/ai-guard","category":"/branches/1.0/categories/guides/SDK Reference","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"android-sdk-next-gen","title":"Android SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"getting-started-android-next-gen","title":"Getting Started","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"download-and-import-sdk-to-app-android-next-gen","title":"Download and Import the SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/download-and-import-sdk-to-app-android-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-android-next-gen","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"sample-app-android-next-gen","title":"Sample App","type":"basic","updatedAt":"2026-06-01T16:06:55.000Z","uri":"/branches/1.0/guides/sample-app-android-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-android-next-gen","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"initialize-sdk-android-next-gen","title":"Initialize the SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/initialize-sdk-android-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-android-next-gen","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"display-user-interfaces-android-next-gen","title":"Display User Interfaces","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/display-user-interfaces-android-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-android-next-gen","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"customize-user-interfaces-android-next-gen","title":"Customize User Interfaces","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/customize-user-interfaces-android-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-android-next-gen","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"when-consent-changes-android-next-gen","title":"When Consent Changes","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/when-consent-changes-android-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-android-next-gen","pages":[]}],"uri":"/branches/1.0/guides/getting-started-android-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/android-sdk-next-gen"},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"additional-resources-android-next-gen","title":"Additional Resources","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"multi-profile-consent-android-next-gen","title":"Multi Profile Consent","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/multi-profile-consent-android-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-next-gen","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"passing-consent-to-webview-android-next-gen","title":"Passing Consent to WebView","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/passing-consent-to-webview-android-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-next-gen","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"sdk-logging-android-next-gen","title":"SDK Logging","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/sdk-logging-android-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-next-gen","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"google-advertising-id-android-next-gen","title":"Google Advertising ID","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/google-advertising-id-android-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-next-gen","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-ccpa-us-privacy-string-android-next-gen","title":"IAB CCPA US Privacy String","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-ccpa-us-privacy-string-android-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-next-gen","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-tcf-android-next-gen","title":"IAB Transparency and Consent Framework (TCF)","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-tcf-android-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-next-gen","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-global-privacy-protocol-android-next-gen","title":"IAB Global Privacy Protocol","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-global-privacy-protocol-android-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-next-gen","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"cnil-continue-without-accepting-android-next-gen","title":"CNIL Continue Without Accepting","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/cnil-continue-without-accepting-android-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-next-gen","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"proxy-sdk-network-calls-android-next-gen","title":"Proxy SDK Network Calls","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/proxy-sdk-network-calls-android-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-next-gen","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"google-consent-mode-android-next-gen","title":"Google Consent Mode","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/google-consent-mode-android-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-next-gen","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"universal-consent-purposes-android-next-gen","title":"Universal Consent Purposes","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/universal-consent-purposes-android-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-next-gen","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"api-reference-android-next-gen","title":"API Reference","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/api-reference-android-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-next-gen","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"age-based-consent-for-android-sdks","title":"Age-Based Consent","type":"basic","updatedAt":"2026-06-05T13:30:15.000Z","uri":"/branches/1.0/guides/age-based-consent-for-android-sdks","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-next-gen","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"android-offline-mode","title":"Offline Mode","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/android-offline-mode","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-next-gen","pages":[]}],"uri":"/branches/1.0/guides/additional-resources-android-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/android-sdk-next-gen"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"android-legacy-to-next-gen-sdk-deprecated-methods","title":"Legacy to Next Gen SDK Deprecated Methods","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"android-legacy-deprecated-methods-cmp-configuration-data","title":"CMP Configuration Data","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/android-legacy-deprecated-methods-cmp-configuration-data","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/android-legacy-to-next-gen-sdk-deprecated-methods","pages":[]}],"uri":"/branches/1.0/guides/android-legacy-to-next-gen-sdk-deprecated-methods","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/android-sdk-next-gen"}],"uri":"/branches/1.0/guides/android-sdk-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"android-legacy","title":"Android SDK (Legacy)","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"getting-started-android-legacy","title":"Getting Started","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"sample-app-android-legacy","title":"Sample App","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/sample-app-android-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-android-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"download-the-sdk-android-legacy","title":"Download and Import SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/download-the-sdk-android-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-android-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"adding-sdk-to-app-android-legacy","title":"Adding SDK to App","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/adding-sdk-to-app-android-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-android-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"initialize-the-sdk-android-legacy","title":"Initialize SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/initialize-the-sdk-android-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-android-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"display-user-interfaces-android-legacy","title":"Display User Interfaces","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/display-user-interfaces-android-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-android-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"customize-user-interfaces-android-legacy","title":"Customize User Interfaces","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/customize-user-interfaces-android-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-android-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"when-consent-changes-android-legacy","title":"When Consent Changes","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/when-consent-changes-android-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-android-legacy","pages":[]}],"uri":"/branches/1.0/guides/getting-started-android-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/android-legacy"},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"additional-resources-android-legacy","title":"Additional Resources","type":"basic","updatedAt":"2026-06-01T16:06:55.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"multi-profile-consent-legacy","title":"Multi Profile Consent","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/multi-profile-consent-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"pass-consent-to-webview-android-legacy","title":"Passing Consent to WebView","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/pass-consent-to-webview-android-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"sdk-logging-android-legacy","title":"SDK Logging","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/sdk-logging-android-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"google-advertising-id-android-legacy","title":"Google Advertising ID","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/google-advertising-id-android-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-ccpa-us-privacy-string-android-legacy","title":"IAB CCPA US Privacy String","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-ccpa-us-privacy-string-android-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-tcf-22-android-legacy","title":"IAB TCF 2.2","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-tcf-22-android-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-global-privacy-platform-legacy","title":"IAB Global Privacy Protocol","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-global-privacy-platform-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"cnil-continue-without-accepting-android-legacy","title":"CNIL Continue Without Accepting","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/cnil-continue-without-accepting-android-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"proxying-sdk-network-calls-android-legacy","title":"Proxying SDK Network Calls","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/proxying-sdk-network-calls-android-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"google-consent-mode-android-legacy","title":"Google Consent Mode","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/google-consent-mode-android-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"api-reference-android-legacy","title":"API Reference","type":"basic","updatedAt":"2026-06-01T16:06:55.000Z","uri":"/branches/1.0/guides/api-reference-android-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"universal-consent-purposes-android-legacy","title":"Universal Consent Purposes","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/universal-consent-purposes-android-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-android-legacy","pages":[]}],"uri":"/branches/1.0/guides/additional-resources-android-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/android-legacy"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"changelog-android-legacy","title":"Changelog","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/changelog-android-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/android-legacy"}],"uri":"/branches/1.0/guides/android-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ios-tvos-sdk-next-gen","title":"iOS & tvOS SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"getting-started-ios-next-gen","title":"Getting Started","type":"basic","updatedAt":"2026-05-06T15:11:37.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"sample-app-ios-tvos-next-gen","title":"Sample App","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/sample-app-ios-tvos-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-ios-next-gen","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"download-the-sdk-ios-next-gen","title":"Download and Import the SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/download-the-sdk-ios-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-ios-next-gen","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"initialize-sdk-next-gen","title":"Initialize the SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/initialize-sdk-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-ios-next-gen","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"display-user-interfaces-ios-next-gen","title":"Display User Interfaces","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/display-user-interfaces-ios-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-ios-next-gen","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"when-consent-changes-ios-next-gen","title":"When Consent Changes","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/when-consent-changes-ios-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-ios-next-gen","pages":[]}],"uri":"/branches/1.0/guides/getting-started-ios-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ios-tvos-sdk-next-gen"},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"additional-resources-copy","title":"Additional Resources","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"customize-user-interfaces-ios-next-gen","title":"Customize User Interfaces (Optional)","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/customize-user-interfaces-ios-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-copy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"passing-consent-to-webview-ios-next-gen","title":"Passing Consent to WebView","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/passing-consent-to-webview-ios-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-copy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"app-tracking-transparency-ios-next-gen","title":"App Tracking Transparency","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/app-tracking-transparency-ios-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-copy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-tcf-22-ios-next-gen","title":"IAB Transparency and Consent Framework (TCF)","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-tcf-22-ios-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-copy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-global-privacy-protocol-ios-next-gen","title":"IAB Global Privacy Protocol","type":"basic","updatedAt":"2026-06-01T16:06:55.000Z","uri":"/branches/1.0/guides/iab-global-privacy-protocol-ios-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-copy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-ccpa-us-privacy-string-ios-next-gen","title":"IAB CCPA US Privacy String","type":"basic","updatedAt":"2026-05-15T17:07:52.000Z","uri":"/branches/1.0/guides/iab-ccpa-us-privacy-string-ios-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-copy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"google-consent-mode-ios-next-gen","title":"Google Consent Mode","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/google-consent-mode-ios-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-copy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"universal-consent-purposes-ios-next-gen","title":"Universal Consent Purposes","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/universal-consent-purposes-ios-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-copy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"sdk-logging-ios-next-gen","title":"SDK Logging","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/sdk-logging-ios-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-copy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"proxying-sdk-network-calls-ios-next-gen","title":"Proxying SDK Network Calls","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/proxying-sdk-network-calls-ios-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-copy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"multi-profile-consent-ios-next-gen","title":"Multi Profile Consent","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/multi-profile-consent-ios-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-copy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ios-26-support","title":"iOS 26 Support","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ios-26-support","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-copy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"age-based-consent-for-ios-sdks","title":"Age-Based Consent","type":"basic","updatedAt":"2026-06-05T13:31:56.000Z","uri":"/branches/1.0/guides/age-based-consent-for-ios-sdks","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-copy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ios-offline-mode","title":"Offline Mode","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ios-offline-mode","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-copy","pages":[]}],"uri":"/branches/1.0/guides/additional-resources-copy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ios-tvos-sdk-next-gen"},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"api-reference-1","title":"API Reference","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"onetrust-sdk-helpers","title":"OneTrust SDK Helpers","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/onetrust-sdk-helpers","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/api-reference-1","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"onetrust-ui-helpers","title":"OneTrust UI Helpers","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/onetrust-ui-helpers","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/api-reference-1","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"onetrust-sdk-additional-helpers","title":"OneTrust SDK Additional Helpers","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/onetrust-sdk-additional-helpers","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/api-reference-1","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"groups-categoriespurposes","title":"Groups (Categories/Purposes) Helpers","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/groups-categoriespurposes","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/api-reference-1","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"sdk-list","title":"SDK List Helpers","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/sdk-list","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/api-reference-1","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"vendors-helpers","title":"Vendors Helpers","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/vendors-helpers","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/api-reference-1","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"multi-profile","title":"Multi-Profile","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/multi-profile","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/api-reference-1","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"universal-consent-purposes-ucp-helpers","title":"Universal Consent Purposes Helpers","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/universal-consent-purposes-ucp-helpers","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/api-reference-1","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"prompts-att-and-age-gate","title":"Prompts","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/prompts-att-and-age-gate","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/api-reference-1","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"proxy","title":"Proxy","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/proxy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/api-reference-1","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"additional-information","title":"Additional Information","type":"basic","updatedAt":"2026-06-01T16:06:55.000Z","uri":"/branches/1.0/guides/additional-information","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/api-reference-1","pages":[]}],"uri":"/branches/1.0/guides/api-reference-1","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ios-tvos-sdk-next-gen"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ios-legacy-to-next-gen-sdk-deprecated-methods","title":"Legacy to Next Gen SDK Deprecated Methods","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ios-legacy-deprecated-methods-cmp-configuration-data","title":"CMP Configuration Data","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ios-legacy-deprecated-methods-cmp-configuration-data","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ios-legacy-to-next-gen-sdk-deprecated-methods","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ios-legacy-deprecated-methods-general-vendors-and-iab-data","title":"General Vendors and IAB Data","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ios-legacy-deprecated-methods-general-vendors-and-iab-data","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ios-legacy-to-next-gen-sdk-deprecated-methods","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ios-legacy-deprecated-methods-universal-consent-data","title":"Universal Consent Data","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ios-legacy-deprecated-methods-universal-consent-data","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ios-legacy-to-next-gen-sdk-deprecated-methods","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ios-legacy-deprecated-methods-proxy","title":"Proxy","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/ios-legacy-deprecated-methods-proxy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ios-legacy-to-next-gen-sdk-deprecated-methods","pages":[]}],"uri":"/branches/1.0/guides/ios-legacy-to-next-gen-sdk-deprecated-methods","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ios-tvos-sdk-next-gen"}],"uri":"/branches/1.0/guides/ios-tvos-sdk-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ios-tvos-legacy","title":"iOS & tvOS SDK (Legacy)","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"getting-started-ios-legacy","title":"Getting Started","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"sample-app-ios-tvos-legacy","title":"Sample App","type":"basic","updatedAt":"2026-05-21T19:58:36.000Z","uri":"/branches/1.0/guides/sample-app-ios-tvos-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-ios-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"download-the-sdk-ios-tvos-legacy","title":"Download the SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/download-the-sdk-ios-tvos-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-ios-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"add-sdk-to-app-ios-tvos-legacy","title":"Add SDK to App","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/add-sdk-to-app-ios-tvos-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-ios-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"initialize-the-sdk-ios-tvos-legacy","title":"Initialize SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/initialize-the-sdk-ios-tvos-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-ios-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"display-user-interfaces-ios-tvos-legacy","title":"Display User Interfaces","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/display-user-interfaces-ios-tvos-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-ios-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"customize-user-interfaces-ios-tvos-legacy","title":"Customize User Interfaces","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/customize-user-interfaces-ios-tvos-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-ios-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"when-consent-changes-ios-legacy","title":"When Consent Changes","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/when-consent-changes-ios-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-ios-legacy","pages":[]}],"uri":"/branches/1.0/guides/getting-started-ios-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ios-tvos-legacy"},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"additional-resources-2-legacy","title":"Additional Resources","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"multi-profile-consent-ios-legacy","title":"Multi Profile Consent","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/multi-profile-consent-ios-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-2-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"passing-consent-to-webview-ios-tvos-legacy","title":"Passing Consent to WebView","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/passing-consent-to-webview-ios-tvos-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-2-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"sdk-logging-ios-tvos-legacy","title":"SDK Logging","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/sdk-logging-ios-tvos-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-2-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"app-tracking-transparency-ios-tvos-legacy","title":"App Tracking Transparency","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/app-tracking-transparency-ios-tvos-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-2-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-ccpa-us-privacy-string-ios-tvos-legacy","title":"IAB CCPA US Privacy String","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-ccpa-us-privacy-string-ios-tvos-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-2-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-tcf-22-ios-tvos-legacy","title":"IAB TCF 2.2","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-tcf-22-ios-tvos-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-2-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-global-privacy-platform-1-legacy","title":"IAB Global Privacy Protocol","type":"basic","updatedAt":"2026-06-01T16:06:55.000Z","uri":"/branches/1.0/guides/iab-global-privacy-platform-1-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-2-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"cnil-continue-without-accepting-ios-tvos-legacy","title":"CNIL Continue Without Accepting","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/cnil-continue-without-accepting-ios-tvos-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-2-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"proxying-sdk-network-calls-ios-legacy","title":"Proxying SDK Network Calls","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/proxying-sdk-network-calls-ios-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-2-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"google-consent-mode-ios-legacy","title":"Google Consent Mode","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/google-consent-mode-ios-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-2-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"api-reference-ios-tvos-legacy","title":"API Reference","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/api-reference-ios-tvos-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-2-legacy","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"universal-consent-purposes-legacy","title":"Universal Consent Purposes","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/universal-consent-purposes-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-2-legacy","pages":[]}],"uri":"/branches/1.0/guides/additional-resources-2-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ios-tvos-legacy"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"changelog-ios-tvos-legacy","title":"Changelog","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/changelog-ios-tvos-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/ios-tvos-legacy"}],"uri":"/branches/1.0/guides/ios-tvos-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"roku-new","title":"Roku SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"getting-started-roku-new","title":"Getting Started","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"download-the-sdk-roku-next-gen","title":"Download and Import the SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/download-the-sdk-roku-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-roku-new","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"initialize-the-sdk-roku-next-gen","title":"Initialize the SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/initialize-the-sdk-roku-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-roku-new","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"display-user-interfaces-roku-next-gen","title":"Display User Interfaces","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/display-user-interfaces-roku-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-roku-new","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"when-consent-changes-roku-next-gen","title":"When Consent Changes","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/when-consent-changes-roku-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-roku-new","pages":[]}],"uri":"/branches/1.0/guides/getting-started-roku-new","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/roku-new"},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"additional-resources-roku","title":"Additional Resources","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"multi-profile-consent-roku-next-gen","title":"Multi Profile Consent","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/multi-profile-consent-roku-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-roku","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-ccpa-us-privacy-string-roku-next-gen","title":"IAB CCPA US Privacy String","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-ccpa-us-privacy-string-roku-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-roku","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-tcf-22-roku-next-gen","title":"IAB Transparency and Consent Framework (TCF)","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-tcf-22-roku-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-roku","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-global-privacy-protocol-roku-next-gen","title":"IAB Global Privacy Protocol","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-global-privacy-protocol-roku-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-roku","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"cross-device-consent-roku-next-gen","title":"Cross Device and Cross Domain Consent","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/cross-device-consent-roku-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-roku","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"api-reference-roku-next-gen","title":"API Reference","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/api-reference-roku-next-gen","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-roku","pages":[]}],"uri":"/branches/1.0/guides/additional-resources-roku","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/roku-new"}],"uri":"/branches/1.0/guides/roku-new","category":"/branches/1.0/categories/guides/SDK Reference","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"roku-legacy","title":"Roku SDK (Legacy)","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"getting-started-4","title":"Getting Started","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"download-sdk-roku-legacy","title":"Download the SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/download-sdk-roku-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-4","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"add-sdk-to-app-roku-legacy","title":"Add SDK to App","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/add-sdk-to-app-roku-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-4","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"initialize-the-sdk-roku-legacy","title":"Initialize the SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/initialize-the-sdk-roku-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-4","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"display-user-interfaces-roku-legacy","title":"Display User Interfaces","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/display-user-interfaces-roku-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-4","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"when-consent-changes-roku-legacy","title":"When Consent Changes","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/when-consent-changes-roku-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-4","pages":[]}],"uri":"/branches/1.0/guides/getting-started-4","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/roku-legacy"},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"additional-resources-4","title":"Additional Resources","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-ccpa-us-privacy-string-roku-legacy","title":"IAB CCPA US Privacy String","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-ccpa-us-privacy-string-roku-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-4","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-tcf-22-1-legacy","title":"IAB TCF 2.2","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-tcf-22-1-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-4","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-global-privacy-platform-2-legacy","title":"IAB Global Privacy Protocol","type":"basic","updatedAt":"2026-05-06T15:11:37.000Z","uri":"/branches/1.0/guides/iab-global-privacy-platform-2-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-4","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"cross-device-consent-legacy","title":"Cross Device and Domain Consent - Roku","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/cross-device-consent-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-4","pages":[]}],"uri":"/branches/1.0/guides/additional-resources-4","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/roku-legacy"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"changelog-roku","title":"Changelog","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/changelog-roku","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/roku-legacy"}],"uri":"/branches/1.0/guides/roku-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"tizen-and-webos-sdk-new","title":"HTML5 SDK - Tizen and WebOS","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"getting-started-new","title":"Getting Started","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"migrating-from-the-legacy-sdk-to-the-new-cmp-sdk","title":"Migrating from the Legacy SDK to the CMP API","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/migrating-from-the-legacy-sdk-to-the-new-cmp-sdk","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-new","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"download-sdk-new","title":"Download the SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/download-sdk-new","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-new","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"configure-sdk-parameters-new","title":"Initialize the SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/configure-sdk-parameters-new","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-new","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"display-user-interfaces-new","title":"Display User Interfaces","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/display-user-interfaces-new","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-new","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"when-consent-changes-new","title":"When Consent Changes","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/when-consent-changes-new","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-new","pages":[]}],"uri":"/branches/1.0/guides/getting-started-new","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/tizen-and-webos-sdk-new"},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"additional-resources-new","title":"Additional Resources","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-ccpa-us-privacy-string-new","title":"IAB CCPA US Privacy String","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-ccpa-us-privacy-string-new","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-new","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-tcf-22-new","title":"IAB Transparency and Consent Framework (TCF)","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-tcf-22-new","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-new","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-global-privacy-protocol-new","title":"IAB Global Privacy Protocol","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-global-privacy-protocol-new","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-new","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"rtl-support","title":"Right-To-Left (RTL) Support","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/rtl-support","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-new","pages":[]}],"uri":"/branches/1.0/guides/additional-resources-new","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/tizen-and-webos-sdk-new"}],"uri":"/branches/1.0/guides/tizen-and-webos-sdk-new","category":"/branches/1.0/categories/guides/SDK Reference","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"tizen-and-webos-sdk-legacy","title":"HTML5 SDK - Tizen and WebOS (Legacy)","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"getting-started-5","title":"Getting Started","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"download-sdk","title":"Download SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/download-sdk","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-5","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"configure-sdk-parameters","title":"Configure SDK Parameters","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/configure-sdk-parameters","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-5","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"display-user-interfaces","title":"Display User Interfaces","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/display-user-interfaces","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-5","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"when-consent-changes","title":"When Consent Changes","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/when-consent-changes","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-5","pages":[]}],"uri":"/branches/1.0/guides/getting-started-5","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/tizen-and-webos-sdk-legacy"},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"additional-resources-5","title":"Additional Resources","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"sdk-logging","title":"SDK Logging","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/sdk-logging","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-5","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-ccpa-us-privacy-string-1","title":"IAB CCPA US Privacy String","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-ccpa-us-privacy-string-1","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-5","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-tcf-22","title":"IAB TCF 2.2","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-tcf-22","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-5","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-global-privacy-platform-4","title":"IAB Global Privacy Protocol","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-global-privacy-platform-4","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-5","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"api-reference","title":"API Reference","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/api-reference","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-5","pages":[]}],"uri":"/branches/1.0/guides/additional-resources-5","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/tizen-and-webos-sdk-legacy"}],"uri":"/branches/1.0/guides/tizen-and-webos-sdk-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"maui-and-unity-sdk-new","title":"MAUI and Unity SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"getting-started-7","title":"Getting Started","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"download-the-sdk-maui-new","title":"Download the SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/download-the-sdk-maui-new","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-7","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"add-sdk-to-app-maui-new","title":"Add SDK to App","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/add-sdk-to-app-maui-new","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-7","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"initialize-the-sdk-maui-new","title":"Initialize the SDK","type":"basic","updatedAt":"2026-05-21T19:58:36.000Z","uri":"/branches/1.0/guides/initialize-the-sdk-maui-new","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-7","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"display-user-interfaces-maui-new","title":"Display User Interfaces","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/display-user-interfaces-maui-new","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-7","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"customize-user-interfaces-maui-new","title":"Customize User Interfaces","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/customize-user-interfaces-maui-new","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-7","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"when-consent-changes-maui-new","title":"When Consent Changes","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/when-consent-changes-maui-new","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-7","pages":[]}],"uri":"/branches/1.0/guides/getting-started-7","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/maui-and-unity-sdk-new"},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"additional-resources-7","title":"Additional Resources","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-ccpa-us-privacy-string-maui-new","title":"IAB CCPA US Privacy String","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-ccpa-us-privacy-string-maui-new","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-7","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-tcf-22-maui-new","title":"IAB Transparency and Consent Framework (TCF)","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-tcf-22-maui-new","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-7","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-global-privacy-protocol-maui-new","title":"IAB Global Privacy Protocol","type":"basic","updatedAt":"2026-06-01T16:06:55.000Z","uri":"/branches/1.0/guides/iab-global-privacy-protocol-maui-new","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-7","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"api-reference-maui-new","title":"API Reference","type":"basic","updatedAt":"2026-05-15T17:07:52.000Z","uri":"/branches/1.0/guides/api-reference-maui-new","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-7","pages":[]}],"uri":"/branches/1.0/guides/additional-resources-7","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/maui-and-unity-sdk-new"}],"uri":"/branches/1.0/guides/maui-and-unity-sdk-new","category":"/branches/1.0/categories/guides/SDK Reference","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"maui-legacy","title":"MAUI and Unity SDK (Legacy)","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"getting-started-3","title":"Getting Started","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"download-the-sdk-maui-legacy","title":"Download the SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/download-the-sdk-maui-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-3","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"add-sdk-to-app-maui-legacy","title":"Add SDK to App","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/add-sdk-to-app-maui-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-3","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"initialize-the-sdk-maui-legacy","title":"Initialize the SDK","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/initialize-the-sdk-maui-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-3","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"display-user-interfaces-maui-legacy","title":"Display User Interfaces","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/display-user-interfaces-maui-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-3","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"customize-user-interfaces-maui-legacy","title":"Customize User Interfaces","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/customize-user-interfaces-maui-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-3","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"when-consent-changes-maui-legacy","title":"When Consent Changes","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/when-consent-changes-maui-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/getting-started-3","pages":[]}],"uri":"/branches/1.0/guides/getting-started-3","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/maui-legacy"},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"additional-resources-3","title":"Additional Resources","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-ccpa-us-privacy-string-maui-legacy","title":"IAB CCPA US Privacy String","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-ccpa-us-privacy-string-maui-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-3","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-tcf-22-maui-legacy","title":"IAB TCF 2.2","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-tcf-22-maui-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-3","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-global-privacy-platform-maui-legacy","title":"IAB Global Privacy Protocol","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/iab-global-privacy-platform-maui-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-3","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"api-reference-maui-legacy","title":"API Reference","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","uri":"/branches/1.0/guides/api-reference-maui-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/additional-resources-3","pages":[]}],"uri":"/branches/1.0/guides/additional-resources-3","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/maui-legacy"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"changelog-xamarin-unity","title":"Changelog","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/changelog-xamarin-unity","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/maui-legacy"}],"uri":"/branches/1.0/guides/maui-legacy","category":"/branches/1.0/categories/guides/SDK Reference","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"frameworks","title":"Frameworks","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"react-native","title":"React Native","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/react-native","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/frameworks"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"flutter","title":"Flutter","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/flutter","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/frameworks"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"cordova-ionic","title":"Cordova / Ionic","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/cordova-ionic","category":"/branches/1.0/categories/guides/SDK Reference","parent":"/branches/1.0/guides/frameworks"}],"uri":"/branches/1.0/guides/frameworks","category":"/branches/1.0/categories/guides/SDK Reference","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"release-notes","title":"Release Notes","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/release-notes","category":"/branches/1.0/categories/guides/SDK Reference","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"urls-called-by-the-onetrust-sdk","title":"URLs called by the OneTrust Mobile SDKs","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/urls-called-by-the-onetrust-sdk","category":"/branches/1.0/categories/guides/SDK Reference","parent":null}],"title":"SDK Reference","uri":"/branches/1.0/categories/guides/SDK Reference"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"connect-cmp-to-third-party-platforms","title":"Connecting the OneTrust CMP to Third-Party Platforms","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"bigcommerce","title":"BigCommerce","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/bigcommerce","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/connect-cmp-to-third-party-platforms"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ensighten","title":"Ensighten","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/ensighten","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/connect-cmp-to-third-party-platforms"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"facebook-pixel","title":"Facebook Pixel","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/facebook-pixel","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/connect-cmp-to-third-party-platforms"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"google-tag-manager","title":"Google Tag Manager","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/google-tag-manager","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/connect-cmp-to-third-party-platforms"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"hubspot","title":"HubSpot","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/hubspot","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/connect-cmp-to-third-party-platforms"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"magento","title":"Magento","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/magento","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/connect-cmp-to-third-party-platforms"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"marketo-landing-page","title":"Marketo Landing Page","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/marketo-landing-page","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/connect-cmp-to-third-party-platforms"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"mparticle","title":"mParticle","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/mparticle","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/connect-cmp-to-third-party-platforms"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ecommerce","title":"Shopify","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/ecommerce","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/connect-cmp-to-third-party-platforms"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"squarespace","title":"Squarespace","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/squarespace","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/connect-cmp-to-third-party-platforms"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"tealium-tag-manager","title":"Tealium Tag Manager","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/tealium-tag-manager","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/connect-cmp-to-third-party-platforms"},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"link_url":"https://my.onetrust.com/s/article/UUID-39fef01a-5599-85ef-8648-d4d559dbfe73","link_external":true,"renderable":{"status":true},"slug":"adobe-experience-platform","title":"Adobe Experience Platform","type":"link","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/adobe-experience-platform","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/connect-cmp-to-third-party-platforms"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"weebly","title":"Weebly","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/weebly","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/connect-cmp-to-third-party-platforms"}],"uri":"/branches/1.0/guides/connect-cmp-to-third-party-platforms","category":"/branches/1.0/categories/guides/Websites","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"performance-availability-cookie-script","title":"Performance and Availability of the Cookie Consent Script","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/performance-availability-cookie-script","category":"/branches/1.0/categories/guides/Websites","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"link_url":"https://my.onetrust.com/s/article/UUID-2dc719a8-4be5-8d16-1dc8-c7b4147b88e0","link_external":true,"renderable":{"status":true},"slug":"onetrust-cookies","title":"OneTrust Cookies","type":"link","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/onetrust-cookies","category":"/branches/1.0/categories/guides/Websites","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"additional-resources","title":"Additional Resources","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"javascript-api","title":"Web CMP JavaScript Methods","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/javascript-api","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/additional-resources"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"javascript-events-guide","title":"Web CMP Events Guide","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/javascript-events-guide","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/additional-resources"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"custom-geolocation-integration","title":"Custom Geolocation Integration","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/custom-geolocation-integration","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/additional-resources"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"display-preference-center","title":"Display Preference Center on Script Load","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/display-preference-center","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/additional-resources"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"amp-integration","title":"AMP Integration","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/amp-integration","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/additional-resources"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"cookie-consent-support-for-amp-websites","title":"Cookie Consent Support for AMP Websites","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/cookie-consent-support-for-amp-websites","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/additional-resources"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"content-security-policy-cdn","title":"Configuring a Content Security Policy with OneTrust CDN","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/content-security-policy-cdn","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/additional-resources"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-ccpa-us-privacy-string","title":"IAB CCPA: Configuring the US Privacy String","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/iab-ccpa-us-privacy-string","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/additional-resources"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-tcf-developer-guide","title":"IAB TCF Developer Guide","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/iab-tcf-developer-guide","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/additional-resources"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"using-tcf-with-header-bidding","title":"Using TCF with Header Bidding (TCF Stub)","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/using-tcf-with-header-bidding","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/additional-resources"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"using-tcf-with-prebid","title":"Using TCF with Prebid","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/using-tcf-with-prebid","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/additional-resources"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"single-page-applications","title":"Single Page Applications","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/single-page-applications","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/additional-resources"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"multi-touch-consent","title":"Multi-Touch Consent","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/multi-touch-consent","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/additional-resources"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"using-google-consent-mode","title":"Google Consent Mode","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/using-google-consent-mode","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/additional-resources"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"common-custom-css","title":"Custom Common CSS and JavaScript","type":"basic","updatedAt":"2026-05-15T17:07:52.000Z","pages":[],"uri":"/branches/1.0/guides/common-custom-css","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/additional-resources"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"custom-common-html","title":"Custom Common HTML","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/custom-common-html","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/additional-resources"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"server-side-rendering-performance-availability","title":"Server Side Rendering Performance & Availability","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/server-side-rendering-performance-availability","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/additional-resources"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"dsarpra-web-cmp-opt-out","title":"PRA/DSAR - Web CMP Opt Out","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/dsarpra-web-cmp-opt-out","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/additional-resources"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"bulk-domain-management","title":"Bulk Domain Management","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/bulk-domain-management","category":"/branches/1.0/categories/guides/Websites","parent":"/branches/1.0/guides/additional-resources"}],"uri":"/branches/1.0/guides/additional-resources","category":"/branches/1.0/categories/guides/Websites","parent":null}],"title":"Websites","uri":"/branches/1.0/categories/guides/Websites"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"server-side-cmp-api-introduction","title":"Introduction","type":"basic","updatedAt":"2026-05-15T17:07:52.000Z","pages":[],"uri":"/branches/1.0/guides/server-side-cmp-api-introduction","category":"/branches/1.0/categories/guides/Server-Side CMP API","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"persisting-consent","title":"Persisting Consent","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/persisting-consent","category":"/branches/1.0/categories/guides/Server-Side CMP API","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"get-banner-ui","title":"Get Banner UI","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/get-banner-ui","category":"/branches/1.0/categories/guides/Server-Side CMP API","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"get-preference-center-ui","title":"Get Preference Center UI","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/get-preference-center-ui","category":"/branches/1.0/categories/guides/Server-Side CMP API","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"get-vendor-list-ui","title":"Get Vendor List UI","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/get-vendor-list-ui","category":"/branches/1.0/categories/guides/Server-Side CMP API","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"get-universal-consent-preferences","title":"Get Universal Consent Preferences UI","type":"basic","updatedAt":"2026-06-01T16:06:55.000Z","pages":[],"uri":"/branches/1.0/guides/get-universal-consent-preferences","category":"/branches/1.0/categories/guides/Server-Side CMP API","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"save-and-log-consent","title":"Save and Log Consent","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/save-and-log-consent","category":"/branches/1.0/categories/guides/Server-Side CMP API","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"implementation-guidance","title":"Implementation Guidance","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/implementation-guidance","category":"/branches/1.0/categories/guides/Server-Side CMP API","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"additional-resources-6","title":"Additional Resources","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-transparency-and-consent-framework-22","title":"IAB TCF 2.3","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/iab-transparency-and-consent-framework-22","category":"/branches/1.0/categories/guides/Server-Side CMP API","parent":"/branches/1.0/guides/additional-resources-6"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iab-gpp","title":"IAB Global Privacy Protocol","type":"basic","updatedAt":"2026-06-03T15:58:30.000Z","pages":[],"uri":"/branches/1.0/guides/iab-gpp","category":"/branches/1.0/categories/guides/Server-Side CMP API","parent":"/branches/1.0/guides/additional-resources-6"}],"uri":"/branches/1.0/guides/additional-resources-6","category":"/branches/1.0/categories/guides/Server-Side CMP API","parent":null}],"title":"Server-Side CMP API","uri":"/branches/1.0/categories/guides/Server-Side CMP API"}],"aiConfig":{"enabled":false,"settings":{"errors":null,"styleguide":null,"warnings":null}},"config":{"algoliaIndex":"readme_search_v2","amplitude":{"apiKey":"8b550cf334a130e3d6ea41a88b894d8","enabled":"true","sessionReplay":{"enabled":"true","sampleRate":"0.1"}},"api":{"upload":{"fileSizeLimit":10485760,"fileSizeLimitFormatted":"10MB"}},"asset_url":"https://cdn.readme.io","dashDomain":"dash.readme.com","domain":"readme.io","domainFull":"https://dash.readme.com","encryptedLocalStorageKey":"ekfls-2025-03-27","fullstory":{"enabled":true,"orgId":"FSV9A"},"git":{"preview":"https://githug-prod.gitto.rdme.io","sync":{"bitbucket":{"installationLink":"https://developer.atlassian.com/console/install/310151e6-ca1a-4a44-9af6-1b523fea0561?signature=AYABeMn9vqFkrg%2F1DrJAQxSyVf4AAAADAAdhd3Mta21zAEthcm46YXdzOmttczp1cy13ZXN0LTI6NzA5NTg3ODM1MjQzOmtleS83MDVlZDY3MC1mNTdjLTQxYjUtOWY5Yi1lM2YyZGNjMTQ2ZTcAuAECAQB4IOp8r3eKNYw8z2v%2FEq3%2FfvrZguoGsXpNSaDveR%2FF%2Fo0BHUxIjSWx71zNK2RycuMYSgAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDOJgARbqndU9YM%2FRdQIBEIA7unpCah%2BIu53NA72LkkCDhNHOv%2BgRD7agXAO3jXqw0%2FAcBOB0%2F5LmpzB5f6B1HpkmsAN2i2SbsFL30nkAB2F3cy1rbXMAS2Fybjphd3M6a21zOmV1LXdlc3QtMTo3MDk1ODc4MzUyNDM6a2V5LzQ2MzBjZTZiLTAwYzMtNGRlMi04NzdiLTYyN2UyMDYwZTVjYwC4AQICAHijmwVTMt6Oj3F%2B0%2B0cVrojrS8yZ9ktpdfDxqPMSIkvHAGT%2FMTvCxC3XwnwlulZe975AAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMMUUe9d1YmFOo373TAgEQgDuJo7TayM6NL19Sj9RPooRrl8rYxwKgvu9gkLNc3GuyyovWI1xA2qTr0LQzMRsf3imrAWsywzPcsjnvuAAHYXdzLWttcwBLYXJuOmF3czprbXM6dXMtZWFzdC0xOjcwOTU4NzgzNTI0MzprZXkvNmMxMjBiYTAtNGNkNS00OTg1LWI4MmUtNDBhMDQ5NTJjYzU3ALgBAgIAeLKa7Dfn9BgbXaQmJGrkKztjV4vrreTkqr7wGwhqIYs5AZR28Sibv2eBxSIg2MydtvEAAAB%2BMHwGCSqGSIb3DQEHBqBvMG0CAQAwaAYJKoZIhvcNAQcBMB4GCWCGSAFlAwQBLjARBAzzWhThsIgJwrr%2FY2ECARCAOxoaW9pob21lweyAfrIm6Fw7gd8D%2B%2F8LHk4rl3jjULDM35%2FVPuqBrqKunYZSVCCGNGB3RqpQJr%2FasASiAgAAAAAMAAAQAAAAAAAAAAAAAAAAAEokowLKsF1tMABEq%2BKNyJP%2F%2F%2F%2F%2FAAAAAQAAAAAAAAAAAAAAAQAAADJLzRcp6MkqKR43PUjOiRxxbxXYhLc6vFXEutK3%2BQ71yuPq4dC8pAHruOVQpvVcUSe8dptV8c7wR8BTJjv%2F%2FNe8r0g%3D&product=bitbucket"}}},"metrics":{"billingCronEnabled":"true","dashUrl":"https://m.readme.io","defaultUrl":"https://m.readme.io","exportMaxRetries":12,"wsUrl":"wss://m.readme.io"},"micro":{"baseUrl":"https://micro-beta.readme.com"},"novuNotification":{"appId":"ob_MiAPOPqgP"},"proxyUrl":"https://try.readme.io","readmeRecaptchaSiteKey":"6LesVBYpAAAAAESOCHOyo2kF9SZXPVb54Nwf3i2x","releaseVersion":"5.764.0","reservedWords":{"tools":["execute-request","get-endpoint","get-server-variables","list-endpoints","list-specs","search-endpoints","search","fetch"]},"sentry":{"dsn":"https://3bbe57a973254129bcb93e47dc0cc46f@o343074.ingest.sentry.io/2052166","enabled":true},"shMigration":{"promoVideo":"","forceWaitlist":false,"migrationPreview":false},"sslBaseDomain":"readmessl.com","sslGenerationService":"ssl.readmessl.com","superHub":{"newProjectsEnabled":true},"wootric":{"accountToken":"NPS-122b75a4","enabled":true}},"context":{"labs":{},"user":{"isAuthenticated":false,"notifications":{}},"terms":[{"term":"client_id","definition":"Unique identifier for the OneTrust client credential.","_id":"6944272f3991ecfaaf896a2e"},{"term":"grant_type","definition":"decides the type of access. OneTrust supports both password and client_credentials grant type","_id":"6944272f3991ecfaaf896a2f"},{"term":"client_secret","definition":"a one-time hexadecimal string that is issued and displayed at the time of client credential creation.","_id":"6944272f3991ecfaaf896a30"},{"term":"environment","definition":"The applicable Environment where each OneTrust tenant is hosted can be identified based on the URL, for example, https://app.onetrust.com would be the App Environment.","_id":"6944272f3991ecfaaf896a31"},{"term":"environments","definition":"The applicable Environment where each OneTrust tenant is hosted can be identified based on the URL, for example, https://app.onetrust.com would be the App Environment.","_id":"6944272f3991ecfaaf896a32"},{"term":"account","definition":"OneTrust accounts are hosted in a OneTrust Environment. Accounts are normally provisioned to customers or partners and many users share access to the same account. It is possible for a single user to have access to multiple accounts in an environment. You can switch between accounts by clicking on the User icon in the OneTrust Application and selecting Switch Tenants.","_id":"6944272f3991ecfaaf896a33"}],"variables":{"user":{},"defaults":[{"name":"name","default":"Name","source":"","type":"","_id":"6944272f3991ecfaaf896a34"},{"name":"email","default":"your@email.here","source":"","type":"","_id":"6944272f3991ecfaaf896a35"},{"name":"apiKey","default":"{API Key}","source":"","type":"","_id":"6944272f3991ecfaaf896a36"},{"name":"customerbase","default":"https://YourAPIDomain.com","source":"","type":"","_id":"6944272f3991ecfaaf896a37"},{"name":"authorization","default":"Bearer {OAuth Access Token}","source":"","type":"","_id":"6944272f3991ecfaaf896a38"},{"name":"hostname","default":"hostname","source":"server","type":"","_id":"6944272f3991ecfaaf896a39"},{"name":"environment","default":"app.onetrust.com","source":"server","type":"","_id":"6944272f3991ecfaaf896a3a"},{"name":"oauth2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a3b"},{"name":"OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a3c"},{"name":"bearerAuth","scheme":"bearer","source":"security","type":"http","_id":"6944272f3991ecfaaf896a3d"},{"name":"DataUseGovernance-DataDiscovery_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a3e"},{"name":"TechRiskCompliance-ITRiskManagement_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a3f"},{"name":"TechRiskCompliance-RiskTemplate_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a40"},{"name":"TechRiskCompliance-Risk_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a41"},{"name":"DataUseGovernance-DataCatalog_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a42"},{"name":"DataUseGovernance-DataAssetManagement_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a43"},{"name":"DataUseGovernance-DataCatalogMetadataExchange_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a44"},{"name":"DataUseGovernance-DataDiscoveryCustomClassiferMana_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a45"},{"name":"PrivacyAutomation-AssessmentAutomation_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a46"},{"name":"Template_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a47"},{"name":"Platform-AccessManagement_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a48"},{"name":"AuditRecords_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a49"},{"name":"ConsentPreferences-UniversalConsentPreferenceManag_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a4a"},{"name":"ConsentAPI_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a4b"},{"name":"DSPreferneceCache_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a4c"}]},"project":{"_id":"620d23a442d78f05786a49c4","accessRules":{"branch_merge":{"admin":true,"editor":false},"branch_approve":{"admin":true,"editor":false}},"ai":{"chat":{"knowledge":{"custom_knowledge":null,"use_project_knowledge":false},"models":[]},"discovery":{"enabled":true,"content_signal":{"ai_train":false,"search":false,"ai_input":false},"link_headers":true,"markdown_negotiation":true,"agent_hint_banner":true,"api_catalog":true,"agent_skills_index":true,"mcp_server_card":true,"webmcp":true,"oauth":{"type":"none","issuer_url":"","authorization_servers":[],"resource_identifier":"","scopes_supported":[]}}},"appearance":{"rdmd":{"callouts":{"useIconFont":false},"theme":{"background":"","border":"","markdownEdge":"","markdownFont":"","markdownFontSize":"","markdownLineHeight":"","markdownRadius":"","markdownText":"","markdownTitle":"","markdownTitleFont":"","mdCodeBackground":"","mdCodeFont":"","mdCodeRadius":"","mdCodeTabs":"","mdCodeText":"","tableEdges":"","tableHead":"","tableHeadText":"","tableRow":"","tableStripe":"","tableText":"","text":"","title":""}},"main_body":{"type":"links"},"colors":{"highlight":"","main":"#000000","main_alt":"#2C6145","header_text":"","body_highlight":"#2C6145","custom_login_link_color":"","body_highlight_dark":""},"typography":{"headline":"Open+Sans:400:sans-serif","body":"Open+Sans:400:sans-serif","typekit":false,"tk_key":"","tk_headline":"","tk_body":"","code":"","custom_heading":null,"custom_body":null,"custom_code":null,"spacing":null},"header":{"style":"solid","img":["https://files.readme.io/32e2a364828b6b166fdd52768a9ee523d5481289d3a9406df47108ba727edaad-myot-hero-background.svg","32e2a364828b6b166fdd52768a9ee523d5481289d3a9406df47108ba727edaad-myot-hero-background.svg",null,null,"#007cc0",null,"6942ed9682fc97a0bb01ce5f"],"img_size":"cover","img_pos":"tl","linkStyle":"buttons"},"body":{"style":"none"},"global_landing_page":{"html":"","redirect":""},"referenceSimpleMode":true,"referenceLayout":"row","link_logo_to_url":true,"theme":"solid","overlay":"triangles","landing":true,"sticky":false,"hide_logo":true,"childrenAsPills":false,"subheaderStyle":"links","splitReferenceDocs":false,"showMetricsInReference":false,"logo":["https://files.readme.io/f83b3a1d97917287a00a51d521682cab46c9329551a2a7413cf6dba86bcf2708-ot-logo-lockup-white.svg","f83b3a1d97917287a00a51d521682cab46c9329551a2a7413cf6dba86bcf2708-ot-logo-lockup-white.svg",null,null,"#000000",null,"69c14d85923a290549918164"],"logo_white":["https://files.readme.io/0df333c-small-OT-logo-white-transparent-1200px.png","OT-logo-white-transparent-1200px.png",453,80,"#ffffff","https://files.readme.io/697279d-OT-logo-white-transparent-1200px.png"],"logo_white_use":true,"favicon":["https://files.readme.io/40ffb5b-OT-favicon.ico","OT-favicon.ico",32,32,"#000000"],"stylesheet":"","stylesheet_hub2":"/* Changing Font to Open Sans */\n\n.App {\n  --font-family: 'Open Sans', sans-serif;\n}\n\n/* Hide the Deprecated Tag in API Reference */\nspan.APIMethod_deprecated {\n    display: none !important;\n}\n.reference-redesign .Sidebar-link_deprecated-icon1TLWr7KfHfCp {\n    left: 2px!important;\n    position: absolute;\n}\n\n/* Fix for Dark Mode Code Syntax */\n[data-color-mode=dark] .App .rm-SuggestedEdits, \n[data-color-mode=dark] .App .rm-SuggestionDiff, \n[data-color-mode=dark] .App .rm-Guides, \n[data-color-mode=dark] .App .rm-Recipes, \n[data-color-mode=dark] .App .rm-Recipes-modal, \n[data-color-mode=dark] .App .rm-ReferenceMain, \n[data-color-mode=dark] .App .rm-Changelog, \n[data-color-mode=dark] .App .rm-Discuss, \n[data-color-mode=dark] .App .rm-CustomPage {\n    --md-code-background: var(--gray20)!important;\n    --md-code-tabs: var(--gray15)!important;\n\n}\n\n\n/* Apply styles to code elements within a \u003cpre> tag when data-color-mode is dark */\n[data-color-mode=\"dark\"] .markdown-body pre code.rdmd-code.theme-light {\n    background: var(--gray20)!important; /* Example style */\n}\n\n/* Apply styles to code elements within a \u003cpre> tag based on prefers-color-scheme: dark and data-color-mode=\"system\" */\n@media (prefers-color-scheme: dark) {\n  [data-color-mode=\"system\"] .markdown-body pre code.rdmd-code.theme-light {\n    background: var(--gray20)!important; /* Example style */\n  }\n}\n\n@media (prefers-color-scheme: dark) {\n[data-color-mode=\"system\"] .App .rm-SuggestedEdits, \n  [data-color-mode=\"system\"] .App .rm-SuggestionDiff, \n  [data-color-mode=\"system\"] .App .rm-Guides, \n  [data-color-mode=\"system\"] .App .rm-Recipes, \n  [data-color-mode=\"system\"] .App .rm-Recipes-modal, \n  [data-color-mode=\"system\"] .App .rm-ReferenceMain, \n  [data-color-mode=\"system\"] .App .rm-Changelog, \n  [data-color-mode=\"system\"] .App .rm-Discuss, \n  [data-color-mode=\"system\"] .App .rm-CustomPage {\n    --md-code-background: var(--gray20)!important;\n    --md-code-tabs: var(--gray15)!important;\n\n  }\n}\n\n@media (prefers-color-scheme: dark) {\n  [data-color-mode=\"system\"] .markdown-body code {\n    background-color: #242e34!important;\n  }\n}\n\n/*API Reference Pages - move all custom markdown above body params, etc. */\n.rm-ReferenceMain .rm-Article {\n    display: flex;\n    flex-direction: column-reverse;\n    justify-content: flex-end;\n}\n\nheader[class*=\"headline-container\"] { /*updated selector by ReadMe 6/19/2024*/\n order:3;\n}\n\n.rm-ReferenceMain .markdown-body {\n  margin-top: 10px;\n  order: 2;\n}\n.Reference-section{\n order:1;\n}\n\nheader.APISectionHeader3LN_-QIR0m7x.rm-APISectionHeader{\n    order: -1;\n}\n\n.APIResponseSchemaPicker2ehjUsNOSwdc.rm-APIResponseSchemaPicker{\n    order: -2;\n}\n\n[class^=\"Footer-desktop\"] {\n  order:-3;\n}\n\n\n/* Theme for API Info Block - Page */ \n\n.callout[theme=🗒] {\n  --emoji: unset;\n  --icon: \"\\f249\"; /* copied from FontAwesome */\n  --icon-color: #50af51;\n  --border: var(--icon-color) !important;\n}\n\n.callout[theme=🗒️] {\n  --emoji: unset;\n  --icon: \"\\f249\"; /* copied from FontAwesome */\n  --icon-color: #50af51;\n  --border: var(--icon-color) !important;\n}\n\n\n/* Overflowing recipe response code examples fix */\n[class^=\"TutorialStep-Body\"] pre>code.rdmd-code.lang-json.theme-light {\n    max-height: 43vh;\n}\n\n\n\n/* Changes HR element to a white line */\nhr {\n    border: solid rgba(255, 255, 255) !important;\n    border-width: 1px 0 0 !important;\n}\n\n/* Try It Code Snippet to Show Both Scroll Bars */\n.rm-PlaygroundRequest .CodeSnippet {\n    overflow: auto !important;\n}\n\n/* Dark Mode Configs \n.darkmode--activated .darkmode-background {\n background-color: #000;\n}\n.darkmode--activated p, .darkmode--activated li , .darkmode--activated h1  {\n color: #fff;\n}*/\n\n\n.LandingWrap16kRMSdr5J8g{--gap: 3em;--edge: var(--markdown-edge, #dfe2e5);-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:nowrap column;flex-flow:nowrap column;grid-gap:var(--gap);margin:0 auto;max-width:100%;padding:var(--gap) calc(var(--gap)/2);width:1000px}.LandingBlock3PM-HyBxby3X{display:grid;grid-auto-columns:1fr;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.LandingBlock-link_viewAllX8PdNqsaoOrY{margin-top:5px;opacity:.6}.LandingBlock-link_viewAllX8PdNqsaoOrY:hover,.LandingBlock-link_viewAllX8PdNqsaoOrY:active,.LandingBlock-link_viewAllX8PdNqsaoOrY:focus{opacity:1}.LandingBlock_align\\=right5brkzb7uF2uO{text-align:right}.LandingBlock_align\\=center12RqtJarcIcH{text-align:center}.LandingBlock_align\\=leftG1r7ROyW_AGB{text-align:left}.LandingBlock3PM-HyBxby3X a:not(:hover){text-decoration:none}.LandingBlock3PM-HyBxby3X hr{border-color:var(--edge)}.LandingBlock3PM-HyBxby3X ul{padding:0;list-style:none}.LandingBlock3PM-HyBxby3X .heading{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.LandingBlock-Three2lm6yBrv1MlV{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;grid-gap:var(--gap)}.LandingBlock-Three2lm6yBrv1MlV>*{-webkit-box-flex:0;-ms-flex:0 33.33%;flex:0 33.33%}.LandingBlock-Docs1N0x68Z0Yw2J,.LandingBlock-Links38HRtdeemVvp{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:wrap row;flex-flow:wrap row;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;grid-gap:var(--gap)}.LandingBlock-Docs1N0x68Z0Yw2J a,.LandingBlock-Links38HRtdeemVvp a{color:var(--graphite)}.LandingBlock-Docs1N0x68Z0Yw2J a:hover,.LandingBlock-Docs1N0x68Z0Yw2J a:focus,.LandingBlock-Links38HRtdeemVvp a:hover,.LandingBlock-Links38HRtdeemVvp a:focus{color:var(--color-link-primary)}.LandingBlock-Docs1N0x68Z0Yw2J li,.LandingBlock-Links38HRtdeemVvp li{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.LandingBlock-Docs1N0x68Z0Yw2J h3,.LandingBlock-Links38HRtdeemVvp h3{color:var(--LandingPage-heading-color,inherit);padding-bottom:.2em;border-bottom:1px solid var(--edge)}.LandingBlock-Docs1N0x68Z0Yw2J>*,.LandingBlock-Links38HRtdeemVvp>*{-webkit-box-flex:1;-ms-flex:1 calc(33% - var(--gap));flex:1 calc(33% - var(--gap));max-width:33%}.LandingBlock-TextMedia2eohAoAZBn4h{display:-webkit-box;display:-ms-flexbox;display:flex;grid-gap:var(--gap)}.LandingBlock-TextMedia_reverse2UDtbGaKixp1>:last-child{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.LandingBlock-TextMedia2eohAoAZBn4h>*{-webkit-box-flex:1;-ms-flex:1 calc(50% - var(--gap));flex:1 calc(50% - var(--gap));max-width:50%}.LandingBlock-TextMedia2eohAoAZBn4h:last-child img:only-child{margin-bottom:calc(-1 * var(--gap))}.LandingBlock-TextMedia-media2NFhDb7Wi36K{-webkit-box-flex:1;-ms-flex:1 0 50%;flex:1 0 50%;max-width:50%;text-align:initial}.LandingBlock-TextMedia-media2NFhDb7Wi36K.markdown-body pre{margin-bottom:0!important}.LandingBlock-TextMedia-media2NFhDb7Wi36K:is(img){max-width:50%;max-height:42vh;-o-object-fit:contain;object-fit:contain}.LandingBlock-TextMedia-media2NFhDb7Wi36K:only-child{max-width:100%;max-height:unset;margin:0 auto}.LandingBlock-TextMedia-media2NFhDb7Wi36K:not(img){max-width:60%!important;width:100%}@media(min-width:768px){.LandingBlock-Links38HRtdeemVvp{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.LandingBlock-Links38HRtdeemVvp>*{margin:0}.LandingBlock-Docs1N0x68Z0Yw2J>:last-child:nth-child(3n-1){margin-right:calc(32.8% + (var(--gap)/2))}.LandingBlock-Docs1N0x68Z0Yw2J>:last-child:nth-child(3n-2){margin-right:calc((32.8% + (var(--gap)/2)) * 2)}}@media(max-width:768px){.LandingBlockWrap14DcwE_zdFiG{--gap: 1.5em;width:100%;padding:var(--gap);-webkit-box-sizing:border-box;box-sizing:border-box}.LandingBlock3PM-HyBxby3X{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:nowrap column;flex-flow:nowrap column}.LandingBlock-Docs1N0x68Z0Yw2J,.LandingBlock-Links38HRtdeemVvp{display:grid;grid-template-columns:repeat(2,1fr)}.LandingBlock-Docs1N0x68Z0Yw2J>*,.LandingBlock-Links38HRtdeemVvp>*{max-width:unset}.LandingBlock-TextMedia2eohAoAZBn4h>*{max-width:unset}.LandingBlock-TextMedia-media2NFhDb7Wi36K{max-width:100%!important}.LandingBlock-TextMedia-media2NFhDb7Wi36K:not(img){max-width:unset!important;width:100%}}@media(max-width:480px){.LandingBlock-Docs1N0x68Z0Yw2J,.LandingBlock-Links38HRtdeemVvp{grid-template-columns:1fr}}.rm-LandingPage{--LandingPage-heading-color: var(--color-primary)}\n#ssr-main header .LandingPageHeader-title16RMwPkp2O2W {\n    color: #fff;\n    font-family: var(--font-family);\n    font-size: 2em;\n    margin-bottom: 15px;\n    font-weight: var(--font-weight-bold);\n}\n\n#hub-subheader-parent {\n    height: 0px;\n}\n\nheader#hub-header #header-top #header-nav-left li a, header#hub-header #header-top #header-nav-right li a {\n    color: #fff;\n    text-decoration: none;\n}\n\n\n\n\n.hub-container, .container {\n    max-width: 1440px;\n    margin: auto;\n    width: 100%;\n    position: relative;\n}\n/*Dark mode landing page text color*/\n[data-color-mode=dark] [class^=\"LandingBlock\"] .markdown-body h2 {\n    color: white;\n}\n[data-color-mode=dark] [class^=\"LandingBlock\"] .markdown-body p {\n    color: white !important;\n}\n[data-color-mode=dark] [class^=\"LandingBlock\"] .markdown-body a {\n    color: lightgray;\n}\n\n\n/*code snippet background color change in callouts*/\n.callout .theme-light span.cm-s-neo {\n    background: #f0f0f0;\n}\n[data-color-mode=dark] .callout .theme-light span.cm-s-neo {\n    background: #242e34;\n}\n@media (prefers-color-scheme: dark) {\n  [data-color-mode=\"system\"] .callout .theme-light span.cm-s-neo {\n    background: #242e34;\n}\n}\n\n/* OneTrust Footer Styles - Prefixed with ot-footer- to avoid conflicts */\n\n/* Base footer element */\n.ot-footer {\n    font-family: \"Open Sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n}\n\n/* Typography utilities */\n.ot-footer h1,\n.ot-footer h2,\n.ot-footer h3,\n.ot-footer h4,\n.ot-footer h5,\n.ot-footer h6 {\n    margin: 0 0 8px;\n}\n\n.ot-footer-font-weight-thin {\n    font-weight: 200;\n}\n\n.ot-footer-font-weight-light {\n    font-weight: 300;\n}\n\n.ot-footer-text-color--white {\n    color: white;\n}\n\n.ot-footer-body-1 {\n    font-size: 24px;\n    line-height: 28px;\n}\n\n.ot-footer-flex-direction {\n    flex-direction: column;\n}\n\n.ot-footer-height-38 {\n    line-height: 38px;\n}\n\n/* Padding utilities */\n.ot-footer-padding-right-32 {\n    padding-right: 32px;\n}\n\n.ot-footer-padding-right-64 {\n    padding-right: 64px;\n}\n\n.ot-footer-padding-left-64 {\n    padding-left: 64px;\n}\n\n.ot-footer-padding-left-40 {\n    padding-left: 40px;\n}\n\n.ot-footer-padding-bottom-16 {\n    padding-bottom: 16px;\n}\n\n/* Separator styles */\n.ot-footer-separator {\n    display: flex;\n}\n\n.ot-footer-separator__spacing--large {\n    margin-bottom: 24px;\n    margin-top: 24px;\n}\n\n.ot-footer-separator__spacing--small {\n    margin-bottom: 8px;\n    margin-top: 8px;\n}\n\n.ot-footer-separator__spacing--medium {\n    margin-bottom: 16px;\n    margin-top: 16px;\n}\n\n.ot-footer-separator__horizontal-rule {\n    border: none;\n    height: 1px;\n}\n\n/* Container styles */\n.ot-footer-container {\n    background-color: #101614;\n    position: relative;\n    z-index: 1;\n}\n\n.ot-footer-content {\n    margin: 0 auto;\n    max-width: 1440px;\n    width: 100%;\n}\n\n/* Links section */\n.ot-footer-links {\n    display: grid;\n    gap: 0;\n    width: 100%;\n    grid-template-columns: repeat(2, 50%);\n}\n\n.ot-footer-links p {\n    font-size: 14px;\n    line-height: 20px;\n}\n\n.ot-footer-links-block {\n    -webkit-box-align: start;\n    -ms-flex-align: start;\n    align-items: start;\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n}\n\n.ot-footer-links-block .ot-footer-font-weight-thin {\n    font-size: 24px;\n    line-height: 28px;\n    margin-bottom: 24px;\n    margin-right: 32px;\n    width: 187px;\n}\n\n.ot-footer-links-block ul {\n    margin-right: 32px;\n    max-width: 296px;\n}\n\n.ot-footer-links-block a {\n    text-decoration: none;\n    font-size: 14px;\n    line-height: 20px;\n}\n\n/* Footer text */\n.ot-footer-text {\n    font-size: 14px;\n    font-weight: 300;\n    line-height: 20px;\n}\n\n/* List styles */\n.ot-footer-list {\n    list-style: none;\n    padding: 0;\n    margin: 0;\n}\n\n.ot-footer-list__item {\n    margin-bottom: 8px;\n}\n\n.ot-footer-list__item-link {\n    text-decoration: none;\n    transition: color 0.2s ease;\n}\n\n.ot-footer-list__item-link:hover {\n    color: rgb(108, 192, 74) !important;\n    text-decoration: none !important;\n}\n\n.ot-footer-list__item-title {\n    font-size: 14px;\n    line-height: 20px;\n}\n\n@media (min-width: 882px) {\n    .ot-footer-list {\n        margin-bottom: 80px;\n    }\n}\n\n/* Privacy container */\n.ot-footer-privacy-container {\n    position: relative;\n}\n\n.ot-footer-privacy-container::before {\n    display: block;\n    background: linear-gradient(270deg,\n            #479dbb,\n            #479dbb 16.666%,\n            #499da8 33.332%,\n            #4c9e96 49.998%,\n            #4d9e85 66.664%,\n            #51a071 83.33%,\n            #559e5e);\n    content: \"\";\n    height: 4px;\n    left: 0;\n    position: relative;\n    top: 0;\n    width: 100%;\n}\n\n.ot-footer-privacy {\n    background-color: #346e4a;\n}\n\n.ot-footer-privacy .ot-footer-body-text {\n    font-size: 24px;\n    line-height: 28px;\n}\n\n.ot-footer-title__text {\n    font-size: 40px;\n    line-height: 48px;\n    font-weight: 300;\n}\n\n/* Responsive styles - Tablet */\n@media (max-width: 768px) {\n    .ot-footer-padding-left-64,\n    .ot-footer-padding-left-40 {\n        padding-left: 22px;\n    }\n\n    .ot-footer-padding-right-64,\n    .ot-footer-padding-right-40 {\n        padding-right: 22px;\n    }\n\n    .ot-footer-separator__spacing--large {\n        margin-top: 14px;\n        margin-bottom: 14px;\n    }\n\n    .ot-footer-links {\n        gap: 20px;\n    }\n\n    .ot-footer-links_content {\n        display: flex;\n        flex-direction: column;\n        gap: 20px;\n    }\n\n    .ot-footer-links-block {\n        flex-direction: column;\n    }\n\n    .ot-footer-links-block h3 {\n        width: auto;\n        margin-bottom: 10px;\n        margin-right: 0;\n    }\n\n    .ot-footer-links-block ul {\n        margin-right: 0;\n        max-width: initial;\n    }\n\n    .ot-footer-links-block.ot-footer-flex-direction.ot-footer-padding-right-32 {\n        padding-right: 0;\n    }\n\n    .ot-footer-links-block.ot-footer-flex-direction + .ot-footer-links-block.ot-footer-flex-direction {\n        margin-top: 20px;\n    }\n\n    .ot-footer-privacy {\n        padding-right: 22px;\n    }\n\n    .ot-footer-privacy.ot-footer-padding-bottom-16 {\n        padding-bottom: 36px;\n    }\n\n    .ot-footer-privacy h2 {\n        font-size: 34px;\n        line-height: normal;\n    }\n}\n\n/* Responsive styles - Mobile */\n@media (max-width: 512px) {\n    .ot-footer-links {\n        grid-template-columns: repeat(1, 100%);\n    }\n}\n/*\n(OneTrust Logo White Image | 2026/03/23 09:29:13 | null x null)\nhttps://files.readme.io/0459ab07c12f3bd23da65e2652e71cb7def368d1fa9a127aa83145dbe79f3dff-ot-logo-lockup-white.svg\n*/\n/*\n(API Landing Platform from myOT Image | 2026/01/14 14:18:59 | 88 x 85)\nhttps://files.readme.io/c2798a8f6906986f4645aaac8b3b73f3853d6d06052d52b685d4c6891bcd4a56-platform_myOT.png\n*/\n/*\n(API Landing Platform from myOT Image | 2026/01/14 14:17:50 | 130 x 129)\nhttps://files.readme.io/cc29d7007540d1b93da235524b8c4be595da0c2fcec872ebd39f49265ce631a7-platform_myOT.png\n*/\n\n/*\n(API Landing Platform Image | 2026/01/13 22:58:43 | null x null)\nhttps://files.readme.io/0a9056427106a578ee67bafd0f635e6ddaff86685a89cb2a91964791eb9d7428-OT-graphic-platform-break-down-silos.svg\n*/\n/*\n(API Landing AI Governance Image | 2025/12/18 10:44:38 | null x null)\nhttps://files.readme.io/fb566c6921532531c0c047cf3715e47200fac2dc3a6193c6971701e9f450348d-ai-gov-icon.svg\n*/\n/*\n(API Landing Consent & Preferences Image | 2025/12/18 10:44:25 | null x null)\nhttps://files.readme.io/dae3449f736e828fd7e4d85dc096374c684d9ab9010c85a7a61503e3b8f2a988-icon-consent-and-preferences-gradient.svg\n*/\n/*\n(API Landing Data Use Governance Image | 2025/12/18 10:44:10 | null x null)\nhttps://files.readme.io/d475c8ee55b97fc7811fd59651c3a772f145f755e41144ed95aeccddf16fe8f7-icon-data-use-governance-gradient.svg\n*/\n/*\n(API Landing Privacy Automation Image | 2025/12/18 10:43:57 | null x null)\nhttps://files.readme.io/f568abf1056140b6ab8d3e119597ae4c200fef6b2c72e6710dd775d5736b5d29-icon-privacy-automation-gradient.svg\n*/\n/*\n(API Landing Tech Risk & Compliance Image | 2025/12/18 10:43:40 | null x null)\nhttps://files.readme.io/76a6ec610698a99ef27d4509b2a1a14400a17b53c4c4299b17538fca5fb7a175-icon-tech-risk-gradient.svg\n*/\n/*\n(API Landing Third-Party Management Image | 2025/12/18 10:43:05 | null x null)\nhttps://files.readme.io/b0ad89df2cbd93051e02edc4d8e4dff390af2148a19f14785ef1cfa1f1eeff19-icon-third-party-management-gradient.svg\n*/\n/*\n(Hero Background Image | 2025/12/17 11:15:00 | null x null)\nhttps://files.readme.io/7d6fd955d8d1e65a4ca4b5a24742445a04c34b276186724ceaeddd8e7133955b-myot-hero-background.svg\n*/\n/*\n(Landing Page Image | 2025/12/17 10:38:28 | 1248 x 1160)\nhttps://files.readme.io/2ba63e7e6b9148487dd574ce2ba6710d4e5c71913dbe0a75c792e8b3bcd0bd01-ot-graphic-hero-dev-portal_1.png\n*/\n/*\n(Hosted Image | 2025/12/17 10:18:26 | null x null)\nhttps://files.readme.io/a262709fc6f5f8d5233c260741f69ea15ec746dd560902818bc0c94d7dd3a7cc-OT-thumbnail-homepage-ai-governance-use-case-800x800.svg\n*/\n/*\n(Hosted Image | 2025/12/17 10:18:22 | null x null)\nhttps://files.readme.io/e7c59e179174c162f631a94691182a39ee0e1291f1ee06dcea5be27fe70c117b-OT-thumbnail-homepage-data-use-governance-icon-800-800.svg\n*/\n/*\n(Hosted Image | 2025/12/17 10:18:14 | null x null)\nhttps://files.readme.io/12fa03d4da5f7013f91774823aaa77cc7eb858c5b04f3a96fbf87e58253dca97-OT-thumbnail-homepage-first-party-data-consent-preferences-use-case-800x800.svg\n*/\n/*\n(Hosted Image | 2025/12/17 10:18:08 | null x null)\nhttps://files.readme.io/6f8b5f31da4433cff262494202abf2cbf6ddc50595da98c2836d2c60507c6f35-OT-thumbnail-homepage-first-party-data-consent-preferences-use-case-800x800.svg\n*/\n/*\n(Hosted Image | 2025/12/17 10:18:04 | null x null)\nhttps://files.readme.io/992191fb0844b92753f6582910c9e07822fecfe88d0135dd7420974aa8cee9bb-OT-thumbnail-homepage-third-party-management-use-case-800x800.svg\n*/\n/*\n(Hosted Image | 2025/12/17 10:17:55 | null x null)\nhttps://files.readme.io/67083efb1756e06d17267c00a68fd421b00641911d512a39245b0d1be3526372-OT-thumbnail-homepage-privacy-management-use-case-800x800.svg\n*/\n\n\n/* Bearer Token Only Mode */\nbutton.Button.Button_xs.APIAuth-oauth-footer-reauthorize3rGALj24H4ZX.Button_primary_ghost.Button_primary {\n    display: none;\n}\n\n/* Custom Scopes Pills */\n.custom-scopes {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n  margin-top: 12px;\n  padding: 8px 0;\n}\n\n.custom-scopes-label {\n  font-size: 12px;\n  font-weight: 600;\n  color: var(--color-text-muted, #6b7280);\n  width: 100%;\n  margin-bottom: 4px;\n}\n\n.scope-pill {\n  position: relative;\n  display: inline-flex;\n  align-items: center;\n  padding: 6px 12px;\n  font-size: 12px;\n  font-weight: 500;\n  font-family: monospace;\n  background: var(--color-bg-page, #f3f4f6);\n  color: var(--color-text-default, #374151);\n  border: 1px solid var(--color-border-default, #d1d5db);\n  border-radius: 16px;\n  cursor: default;\n  transition: all 0.15s ease;\n}\n\n.scope-pill:hover {\n  background: var(--color-primary, #2563eb);\n  color: white;\n  border-color: var(--color-primary, #2563eb);\n}\n\n\n/* Tooltip */\n.scope-pill .scope-tooltip {\n  position: absolute;\n  bottom: calc(100% + 8px);\n  left: 50%;\n  transform: translateX(-50%);\n  padding: 8px 12px;\n  background: var(--color-bg-tooltip, #1f2937);\n  color: white;\n  font-size: 11px;\n  font-family: inherit;\n  border-radius: 6px;\n  white-space: nowrap;\n  opacity: 0;\n  visibility: hidden;\n  transition: opacity 0.15s ease, visibility 0.15s ease;\n  z-index: 100;\n  max-width: 250px;\n  white-space: normal;\n  text-align: center;\n}\n\n.scope-pill .scope-tooltip::after {\n  content: '';\n  position: absolute;\n  top: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  border: 6px solid transparent;\n  border-top-color: var(--color-bg-tooltip, #1f2937);\n}\n\n.scope-pill:hover .scope-tooltip {\n  opacity: 1;\n  visibility: visible;\n}\n\n\n/* OneTrust Green Base */\n:root {\n  --onetrust-green: #50af51;\n  --onetrust-green-dark: #55a05e;\n}\n\n/* Update CSS for Cookie List Page */\n#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy #cookie-policy-title {\n    color: transparent!important;\n}\n/* System dark mode (user's OS prefers dark) */\n@media (prefers-color-scheme: dark) {\n  html[data-color-mode=\"system\"] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy :is(\n    h5, h6, li, p, a, span, td, #cookie-policy-description, .ot-sdk-cookie-policy-group\n  ) {\n    color: #fff !important;\n  }\n  html[data-color-mode=\"system\"] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a,\n  html[data-color-mode=\"system\"] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a:hover {\n    background: transparent;\n  }\n}\n/* Explicit ReadMe dark mode */\nhtml[data-color-mode=\"dark\"] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy :is(\n  h5, h6, li, p, a, span, td, #cookie-policy-description, .ot-sdk-cookie-policy-group\n) {\n  color: #fff !important;\n}\nhtml[data-color-mode=\"dark\"] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a,\nhtml[data-color-mode=\"dark\"] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a:hover {\n  background: transparent;\n}\n\n\n\n\n\n/* CSS for Recipe Support Statement */\nblockquote.callout.callout_warning.onetrust-custom-callout {\n    color: var(--slate);\n    --Callout-bg: #fcf8f2!important;\n}\n\n/* CSS for SDK Statement */\nblockquote.callout.callout_error.onetrust-custom-callout-cmp {\n    --Callout-bg: #fdf7f7!important;\n    --Callout-border: rgb(216.56875, 83.4, 78.93125);\n\n    /* BUGFIX: Ensure link renders black instead of white on light background so the link is visible */\n    a {\n        color: black !important;\n    }\n}\n\n/* CSS for OAS Migration Statement */\nblockquote.callout.callout_warning.onetrust-custom-callout-oas {\n    color: var(--slate);\n    --Callout-bg: #fcf8f2!important;\n}\n\n\n/* CSS to prevent Recipe Labels for cloud and lang to not be clickable */\nimg.ot-recipe-label {\n    pointer-events: none;\n}\n\n.TutorialCard-Description2yaRK8FfwVRG {\n    overflow: hidden!important;\n    display: -webkit-box!important;\n    -webkit-line-clamp: 8!important;\n    -webkit-box-orient: vertical!important;\n}\n\n.Avatar.Avatar_md.TutorialCard-Avatar2GqJCrkbnRPc.Avatar_emoji {\n    content-visibility: hidden;\n    display: none;\n}\n\n\n/* CSS for x-ontrust tags in API spec header */\n.ot-tags-container {\n    padding-left: 15px;\n    flex-shrink: 0;\n}\n.ot-tags {\n    -webkit-box-flex: 0;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    margin-right: 5px;\n    margin-top: 2px;\n  border-radius: var(--border-radius-lg);\n    -webkit-box-shadow: var(--box-shadow-pill);\n    box-shadow: var(--box-shadow-pill);\n    -webkit-box-sizing: border-box;\n    box-sizing: border-box;\n    color: #fff;\n    display: -webkit-inline-box;\n    display: -ms-inline-flexbox;\n    display: inline-flex;\n  flex-direction: row-reverse;\n    font-family: var(--font-family);\n    font-size: 12px;\n    font-weight: var(--font-weight-bold);\n    height: 20px;\n    -webkit-box-pack: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n    line-height: 20px;\n    padding-left: 8px;\n    padding-right: 8px;\n    text-align: center;\n    text-transform: uppercase;\n    white-space: nowrap;\n  \n}\n/* highly availible */\n.ot-tags-ha {\n    background: mediumpurple;\n    text-shadow: 1px 1px 0 rebeccapurple,0 1px 0 rebeccapurple,1px 0 0 rebeccapurple;\n}\n\n.ot-tags-ha:hover {\n    background: rebeccapurple;\n  \tcursor: pointer;\n}\n/* spec label */\n.ot-tags-sl {\n    background: gray;\n    text-shadow: 1px 1px 0 dimgray,0 1px 0 dimgray,1px 0 0 dimgray;\n}\n\n.ot-tags-sl:hover {\n    background: dimgray;\n  \tcursor: pointer;\n}\n/* release status */\n.ot-tags-rs {\n    background: tomato;\n    text-shadow: 1px 1px 0 firebrick,0 1px 0 firebrick,1px 0 0 firebrick;\n}\n\n/*\n.ot-tags-rs:hover {\n    background: firebrick;\n  \tcursor: pointer;\n}*/\n\n\n/* Suggested Edits Animation */\n.rm-Guides #content-head .col-xs-3 .icon {\n\tanimation: jump 0.8s infinite alternate;\n}\n\n/* Animation for Page Feedback - Thumbs Up/Down Icons */\n.PageThumbs-button .icon {\n  animation: jump 0.8s infinite alternate;\n  padding-right: 5px;\n}\n  /* For jumping animation */\n  @keyframes jump {\n    0% {\n      transform: translateY(0);\n    }\n    50% {\n      transform: translateY(-5px);\n    }\n    100% {\n      transform: translateY(0);\n    }\n  } \n\n/* Left Align All Text in Tables */\n\n.markdown-body table td, .markdown-body table th {\n    text-align: left !important;\n}\n\n/* Fix Space at Top while Loading */\n/*.rm-ReferenceMain .rm-Article {\n    display: block !important;\n}*/\n\n/* 404 Page Formatting */\n/* hides title for custom pages e.g. 404 page */\n.App .rm-CustomPage #content-head h1 {\n  display: none !important;\n}\n\n#notfound {\n  position: relative;\n  height: 100vh;\n}\n\n#notfound .notfound {\n  position: absolute;\n  left: 50%;\n  top: 30%;\n  -webkit-transform: translate(-50%, -50%);\n      -ms-transform: translate(-50%, -50%);\n          transform: translate(-50%, -50%);\n}\n\n.notfound {\n  max-width: 767px;\n  width: 100%;\n  line-height: 1.4;\n  text-align: center;\n  padding: 15px;\n}\n\n.notfound .notfound-404 {\n  position: relative;\n  height: 220px;\n}\n\n.notfound .notfound-404 h1 {\n  font-family: 'Kanit', sans-serif;\n  position: absolute;\n  left: 50%;\n  top: 50%;\n  -webkit-transform: translate(-50%, -50%);\n      -ms-transform: translate(-50%, -50%);\n          transform: translate(-50%, -50%);\n  font-size: 186px;\n  font-weight: 200;\n  margin: 0px;\n  background: linear-gradient(130deg, #2C6145, #55A05E);\n  color:transparent;\n  -webkit-background-clip: text;\n  background-clip: text;\n  text-transform: uppercase;\n}\n\n.notfound h2 {\n  font-family: 'Kanit', sans-serif;\n  font-size: 33px;\n  font-weight: 200;\n  text-transform: uppercase;\n  margin-top: 0px;\n  margin-bottom: 25px;\n  letter-spacing: 3px;\n}\n\n\n.notfound p {\n  font-family: 'Kanit', sans-serif;\n  font-size: 16px;\n  font-weight: 200;\n  margin-top: 0px;\n  margin-bottom: 25px;\n}\n\n\n.notfound a {\n  font-family: 'Kanit', sans-serif;\n  color: #55A05E;\n  font-weight: 200;\n  text-decoration: none;\n  border-bottom: 1px dashed #55A05E;\n  border-radius: 2px;\n}\n\n.notfound-social>a {\n  display: inline-block;\n  height: 40px;\n  line-height: 40px;\n  width: 40px;\n  font-size: 14px;\n  color: #2C6145;\n  border: 1px solid #2C6145;\n  border-radius: 50%;\n  margin: 3px;\n  -webkit-transition: 0.2s all;\n  transition: 0.2s all;\n}\n.notfound-social>a:hover {\n  color: #fff;\n  background-color: #55A05E;\n  border-color: #55A05E;\n}\n\n@media only screen and (max-width: 480px) {\n  .notfound .notfound-404 {\n    position: relative;\n    height: 168px;\n  }\n\n  .notfound .notfound-404 h1 {\n    font-size: 142px;\n  }\n\n  .notfound h2 {\n    font-size: 22px;\n  }\n}\n\n/* Full Width no Whitespace on Sides */\n\n:root {\n    --container: 1200px!important;\n    --container-lg: 98%!important;\n    --hub-main-max-width: 80%!important;\n    --hub-playground-width: 30%!important;\n    --hub-sidebar-width: 20%!important;\n\t  --hub-toc-width: 20%!important;\n  \t--hub-content-max-width: 100%!important;\n\n\n}\n\n.rm-Guides .content-body {\n    padding-right: 80px;\n}\n\n.Header-bottom2eLKOFXMEmh5 {\n    margin: auto;\n    width: 100%;\n    max-width: 100% !important;\n    padding: 5px;\n}\n\n.Header-topuTMpygDG4e1V {\n  border: none !important;\n}\n\n.rm-SearchToggle {\n    width: 300px !important;\n}\n\n/* Reordering Menu Items */\n.Header-leftADQdGVqx1wqU .Dropdown_toggle {\n    order: 1; /* v1.0 */\n}\n\n.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*=\"/onetrust/\"] {\n    order: 2; /* Home */\n}\n\n.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*=\"/onetrust/docs\"] {\n    order: 4; /* Documentation */\n}\n\n.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*=\"/onetrust/recipes\"] {\n    order: 5; /* Recipes */\n}\n\n.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*=\"/onetrust/reference\"] {\n    order: 3; /* API Reference */\n}\n\n.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*=\"/onetrust/changelog\"] {\n    order: 6; /* Changelog */\n}\n\n/* Set Font Family to match myOT */\n\n.App {\n  --font-family: 'Open Sans', sans-serif !important;\n}\n\n/* Set Color for Catagory Text to Green */\n\n.rm-Sidebar-heading {\n    color: #346E4A !important;\n}\n\n@media (prefers-color-scheme: dark) {\n  [data-color-mode=\"system\"] .rm-Sidebar-heading {\n    color: #55A05E !important;\n}}\n\n[data-color-mode=\"dark\"] .rm-Sidebar-heading {\n    color: #55A05E !important;\n}\n\n/* Styling for Tiles on Overview Pages */\n\n.ProductsWrapper {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    text-decoration: none;\n}\n\n.SDKWrapper {\n    display: flex;\n    flex-wrap: wrap;\n    text-decoration: none;\n}\n\n.ProductCard {\n    width: 45%;\n    margin: 10px;\n    padding: 15px;\n    border: 1px solid #ddd;\n    border-radius: 8px;\n    text-align: center;\n    text-decoration: none;\n    color: #333;\n    transition: box-shadow 0.3s;\n    position: relative;\n}\n\n.SDKCard {\n    width: 20%;\n    margin: 10px;\n    padding: 10px;\n    border: 1px solid #ddd;\n    border-radius: 8px;\n    text-align: center;\n    text-decoration: none;\n    color: #333;\n    transition: box-shadow 0.3s;\n    position: relative;\n}\n\n/* Light mode animated drop shadow */\n.ProductCard:hover {\n\t\tbox-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);\n    transform: translateY(-2px);}\n\n.SDKCard:hover {\n\t\tbox-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);\n    transform: translateY(-2px);}\n\n.ProductCard a {\n    text-decoration: none !important;\n    display: flex;\n    flex-direction: row;\n    align-items: flex-start;\n    justify-content: center;\n    height: 100%;\n}\n\n.SDKCard a {\n    text-decoration: none !important;\n    display: flex;\n    flex-direction: column !important;\n    align-items: center;\n    justify-content: center;\n    height: 100%;\n}\n\n.ProductCard img {\n    width: 80px;\n    height: 80px;\n    margin-bottom: 10px;\n    margin-right: 10px;\n}\n\n.SDKCard svg {\n    width: 95%;\n    height: 80px;\n    position: relative;\n    top: 40%;\n    -webkit-transform: translateY(-60%);\n    -ms-transform: translateY(-60%);\n    transform: translateY(-60%);\n    left: 0;\n    right: 0;\n    margin: auto;\n    text-align: center;\n}\n\n.ProductCard_dark_icon {\n    display: none !important;\n}\n\n.ProductCard_light_icon {\n    display: inline-block;\n}\n\n.ProductCard_text {\n    flex: 1;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n}\n\n.ProductCard h4 {\n    margin-top: 0;\n    margin-bottom: 0;\n    font-size: 1.1rem;\n    text-decoration: none;\n}\n\n.SDKCard h4 {\n    margin-top: 15px;\n    margin-bottom: 0;\n    font-size: 0.9rem;\n    text-decoration: none !important;\n    color: black\n}\n\n.ProductCard p {\n    margin: 5px 0 0;\n    font-size: .8rem;\n    color: #333;\n    text-decoration: none;\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    overflow: hidden;\n    -webkit-line-clamp: 3;\n    /* Adjust the value to the maximum number of lines */\n    text-overflow: ellipsis;\n    max-height: 5em;\n    /* Adjust the value as needed for browsers without -webkit prefix */\n    white-space: normal;\n    /* Reset white-space property */\n}\n\n/* Dark mode styles */\n@media (prefers-color-scheme: dark) {\n    [data-color-mode=\"system\"] .ProductCard p {\n        color: white;\n    }\n\n    [data-color-mode=\"system\"] .SDKCard h4 {\n        color: white;\n    }\n\n    [data-color-mode=\"system\"] .SDKCard path[fill=\"white\"] {\n    /* Override the previous rule and set the fill color to transparent */\n    fill: var(--color-bg-page);\n}\n      [data-color-mode=\"system\"] .SDKCard path {\n    fill: white;\n}\n  /* Target only the MAUI logo by using its specific container */\n[data-color-mode=\"system\"] .SDKCard path[fill=\"#A213EC\"] {\n    fill: var(--color-bg-page); /* Makes the purple background transparent */\n}\n\n[data-color-mode=\"system\"] .SDKCard svg[title=\"MAUI\"] path[fill=\"#FFFFFF\"] {\n    fill: #FFFFFF;\n}\n\n\n    [data-color-mode=\"system\"] .ProductCard:hover {\n        box-shadow: 0 4px 8px rgba(255, 255, 255, 0.1);\n          transform: translateY(-2px);\n    }\n  \t[data-color-mode=\"system\"] .SDKCard:hover {\n        box-shadow: 0 4px 8px rgba(255, 255, 255, 0.1);\n          transform: translateY(-2px);\n    }\n}\n\n@media (prefers-color-scheme: dark) {\n    [data-color-mode=\"system\"] .ProductCard_dark_icon {\n        display: inline-block !important;\n        /* Display light image in light mode */\n    }\n\n}\n\n@media (prefers-color-scheme: dark) {\n    [data-color-mode=\"system\"] .ProductCard_light_icon {\n        display: none;\n        /* Display light image in light mode */\n    }\n\n}\n\n[data-color-mode=\"dark\"] .SDKCard h4 {\n    color: white;\n}\n\n[data-color-mode=\"dark\"] .ProductCard:hover {\n    box-shadow: 0 4px 8px rgba(255, 255, 255, 0.1);\n      transform: translateY(-2px);\n}\n\n[data-color-mode=\"dark\"] .SDKCard:hover {\n    box-shadow: 0 4px 8px rgba(255, 255, 255, 0.1);\n      transform: translateY(-2px);\n}\n\n[data-color-mode=\"dark\"] .SDKCard path[fill=\"white\"] {\n    /* Override the previous rule and set the fill color to transparent */\n    fill: var(--color-bg-page);\n}\n[data-color-mode=\"dark\"] .SDKCard path {\n    fill: white;\n}\n\n/* Target only the MAUI logo by using its specific container */\n[data-color-mode=\"dark\"] .SDKCard path[fill=\"#A213EC\"] {\n    fill: var(--color-bg-page); /* Makes the purple background transparent */\n}\n[data-color-mode=\"dark\"] .SDKCard svg[title=\"MAUI\"] path[fill=\"#FFFFFF\"] {\n    fill: #FFFFFF;\n}\n\n[data-color-mode=\"dark\"] .ProductCard p {\n    color: white;\n}\n\n[data-color-mode=\"dark\"] .ProductCard_dark_icon {\n    display: inline-block !important;\n    /* Display light image in light mode */\n}\n\n[data-color-mode=\"dark\"] .ProductCard_light_icon {\n    display: none;\n    /* Display light image in light mode */\n}\n\n/* Grid box for footer */\n.slds-p-top_xx-large,\n.slds-p-top--xx-large {\n    padding-top: var(--lwc-spacingXxLarge, 3rem)\n}\n\n.slds-p-bottom_xx-large,\n.slds-p-bottom--xx-large {\n    padding-bottom: var(--lwc-spacingXxLarge, 3rem)\n}\n\n.slds-grid {\n    display: flex\n}\n\n.slds-wrap {\n    flex-wrap: wrap;\n    align-items: flex-start\n}\n\n.slds-p-around_small,\n.slds-p-around--small {\n    padding: var(--lwc-spacingSmall, 0.75rem)\n}\n\n.slds-size_1-of-1,\n.slds-size--1-of-1 {\n    width: 100%\n}\n\n.slds-medium-size_3-of-12,\n.slds-medium-size--3-of-12 {\n    width: 25%\n}\n\n.slds-large-size_2-of-12,\n.slds-large-size--2-of-12 {\n    width: 16.6666666667%\n}\n\n.slds-p-top_small,\n.slds-p-top--small {\n    padding-top: var(--lwc-spacingSmall, 0.75rem)\n}\n\n.slds-medium-size_12-of-12,\n.slds-medium-size--12-of-12 {\n    width: 100%\n}\n\n.slds-medium-size_12-of-12,\n.slds-medium-size--12-of-12 {\n    width: 100%\n}\n\n.slds-grid_overflow .slds-col,\n.slds-grid--overflow .slds-col {\n    min-width: 11.25em;\n    max-width: 22.5em\n}\n\n/* Changes size of the main OneTrust Logo */\nbody {\n    --header-logo-height: 30px;\n}\n\n/* Changes HR element to a white line */\nhr {\n    border: solid rgba(255, 255, 255) !important;\n    border-width: 1px 0 0 !important;\n}\n\n/* Needed for Footer */\n.cMyOT_FooterComponent.myOTFooter {\n    background-color: #2c3643;\n    color: white;\n    font-family: \"Open Sans\"\n}\n\n.cMyOT_FooterComponent .myOTFooterHeading {\n    font-size: 18px;\n    font-weight: 500\n}\n\n.cMyOT_FooterComponent .myOTFooterLink,\n.cMyOT_FooterComponent .myOTPrivacySection {\n    font-size: 16px;\n    font-weight: 200;\n    color: white !important\n}\n\n.cMyOT_FooterComponent .myOT2020-onetrust-all,\n.cMyOT_FooterComponent .myOTPrivacySection {\n    font-weight: 200;\n    font-size: 14px;\n    line-height: 19px\n}\n\n.cMyOT_FooterComponent.myOTFooter a:hover {\n    text-decoration: none !important;\n    color: rgb(108, 192, 74) !important\n}\n\n.cMyOT_FooterComponent hr {\n    margin: 0\n}\n\n@media only screen and (max-width:800px) {\n    .cMyOT_FooterComponent .myOTEventsHeading {\n        font-size: 25px !important;\n        padding: 1rem !important\n    }\n}\n\n@media only screen and (min-width:1025px) {\n    .cMyOT_FooterComponent .myOTFooterOTSection {\n        margin-left: 10%;\n        margin-right: 10%\n    }\n\n    .cMyOT_FooterComponent .myOT2020-onetrust-all {\n        float: left\n    }\n\n    .cMyOT_FooterComponent .myOTPrivacySection {\n        float: right;\n        display: flex\n    }\n}","stylesheet_hub3":"","javascript":"","javascript_hub2":"// START hides pages tab from search  \n (function hidePagesTab() {\n    const hide = (root = document) => {\n      root.querySelectorAll('.Tabs-listItem[aria-label=\"Pages\"]').forEach(el => {\n        el.style.display = 'none';\n      });\n    };\n\n    // Initial try (covers already-rendered nodes)\n    hide();\n\n    // Observe future changes\n    const observer = new MutationObserver(mutations => {\n      for (const m of mutations) {\n        // Check new nodes and attribute changes\n        if (m.type === 'childList') {\n          m.addedNodes.forEach(node => {\n            if (node.nodeType === 1) {\n              if (node.matches?.('.Tabs-listItem[aria-label=\"Pages\"]')) {\n                node.style.display = 'none';\n              }\n              // Also scan descendants in case a container was added\n              hide(node);\n            }\n          });\n        } else if (m.type === 'attributes') {\n          const target = m.target;\n          if (target.matches?.('.Tabs-listItem[aria-label=\"Pages\"]')) {\n            target.style.display = 'none';\n          }\n        }\n      }\n    });\n\n    // Pick the narrowest stable container if possible\n    const tablist = document.querySelector('.Tabs[role=\"tablist\"], .Tabs.Tabs-list, .Tabs');\n    observer.observe(tablist || document.body, {\n      childList: true,\n      subtree: true,\n      attributes: true,\n      attributeFilter: ['class', 'style', 'aria-label'] // keep it efficient\n    });\n   })();\n// END hides pages tab from search  \n\n\n\n// Check if the current path matches the target path\nif (window.location.pathname === \"/onetrust/page/partners\") {\n   document.getElementById(\"checklist-steps\").insertAdjacentHTML('afterbegin', `\n          \u003cdiv class=\"checklist-progress_inner__step\">\n            \u003clabel for=\"step-1\">Sign Up\u003c/label>\n          \u003c/div>\n          \u003cdiv class=\"checklist-progress_inner__step\">\n            \u003clabel for=\"step-2\">System Info\u003c/label>\n          \u003c/div>\n          \u003cdiv class=\"checklist-progress_inner__step\">\n            \u003clabel for=\"step-3\">Integration Details\u003c/label>\n          \u003c/div>\n          \u003cdiv class=\"checklist-progress_inner__step\">\n            \u003clabel for=\"step-4\">Publishing\u003c/label>\n          \u003c/div>\n          \u003cdiv class=\"checklist-progress_inner__step\">\n            \u003clabel for=\"step-5\">Resources\u003c/label>\n          \u003c/div>\n            `); \n   document.getElementById(\"checklist-container\").insertAdjacentHTML('beforeend', `\n  \t\t\u003ca class=\"btn btn-light-checklist\" href=\"javascript:void(0);\" onclick=\"showModal()\">Jump into the Detailed Requirements\u003c/a>\n\t\t\t`);\n  document.getElementById(\"checklist-radios\").outerHTML = `\n                \u003cinput checked=\"checked\" id=\"step-1\" name=\"step\" type=\"radio\">\n                \u003cinput id=\"step-2\" name=\"step\" type=\"radio\">\n                \u003cinput id=\"step-3\" name=\"step\" type=\"radio\">\n                \u003cinput id=\"step-4\" name=\"step\" type=\"radio\">\n                \u003cinput id=\"step-5\" name=\"step\" type=\"radio\">\n            `;\ndocument.querySelectorAll('.step-navigation').forEach(element => {\n            element.innerHTML = `\n                \u003cbutton id=\"prev-button\" onclick=\"moveStep(-1)\">\u003cspan>&#9664;\u003c/span>\u003c/button>\n          \t\t\t\u003cbutton id=\"next-button\" onclick=\"moveStep(1)\">\u003cspan>&#9654;\u003c/span>\u003c/button>\n            `;\n        });  \n    // Function to load a script and call a callback once it's loaded\n    function loadScript(src, callback) {\n        var script = document.createElement('script');\n        script.src = src;\n        script.crossOrigin = \"anonymous\";\n        script.referrerPolicy = \"no-referrer\";\n        script.onload = callback;\n        document.head.appendChild(script);\n    }\n\n    // Function to load a stylesheet\n    function loadStylesheet(href) {\n        var link = document.createElement('link');\n        link.href = href;\n        link.rel = \"stylesheet\";\n        link.crossOrigin = \"anonymous\";\n        link.referrerPolicy = \"no-referrer\";\n        document.head.appendChild(link);\n    }\n    // Load stylesheets\n    const stylesheets = [\n        \"https://cdnjs.cloudflare.com/ajax/libs/bootstrap/4.5.3/css/bootstrap.min.css\",\n        \"https://cdn.lineicons.com/4.0/lineicons.css\",\n        \"https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.min.css\",\n        \"https://cdnjs.cloudflare.com/ajax/libs/nivo-lightbox/1.3.1/nivo-lightbox.css\",\n        \"https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.theme.default.css\",\n        \"https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/magnific-popup.css\"\n    ];\n\n    stylesheets.forEach(loadStylesheet);\n\n    // Load jQuery first, then other scripts, and finally the scroll function\n    loadScript(\"https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js\", function () {\n        const scripts = [\n            \"https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.7.1/modernizr.min.js\",\n            \"https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/js/bootstrap.min.js\",\n            \"https://cdnjs.cloudflare.com/ajax/libs/stickyNavbar.js/1.3.5/jquery.stickyNavbar.min.js\",\n            \"https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js\",\n            \"https://cdnjs.cloudflare.com/ajax/libs/popper.js/2.9.3/umd/popper.min.js\",\n            \"https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js\",\n            \"https://cdnjs.cloudflare.com/ajax/libs/nivo-lightbox/1.3.1/nivo-lightbox.js\",\n            \"https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/jquery.magnific-popup.min.js\",\n            'https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.10/vue.min.js'\n        ];\n\n        scripts.forEach(function (src, index) {\n            loadScript(src, index === scripts.length - 1);\n        });\n    });\n\n\n\n\n    /*! modernizr 3.7.1 (Custom Build) | MIT *\n    * https://modernizr.com/download/?-cssanimations-csscolumns-customelements-flexbox-history-picture-pointerevents-postmessage-sizes-srcset-webgl-websockets-webworkers-addtest-domprefixes-hasevent-mq-prefixedcssvalue-prefixes-setclasses-testallprops-testprop-teststyles !*/\n    !function (e, t, n) { function r(e, t) { return typeof e === t } function o(e) { var t = b.className, n = Modernizr._config.classPrefix || \"\"; if (S && (t = t.baseVal), Modernizr._config.enableJSClass) { var r = new RegExp(\"(^|\\\\s)\" + n + \"no-js(\\\\s|$)\"); t = t.replace(r, \"$1\" + n + \"js$2\") } Modernizr._config.enableClasses && (e.length > 0 && (t += \" \" + n + e.join(\" \" + n)), S ? b.className.baseVal = t : b.className = t) } function i(e, t) { if (\"object\" == typeof e) for (var n in e) E(e, n) && i(n, e[n]); else { e = e.toLowerCase(); var r = e.split(\".\"), s = Modernizr[r[0]]; if (2 === r.length && (s = s[r[1]]), void 0 !== s) return Modernizr; t = \"function\" == typeof t ? t() : t, 1 === r.length ? Modernizr[r[0]] = t : (!Modernizr[r[0]] || Modernizr[r[0]] instanceof Boolean || (Modernizr[r[0]] = new Boolean(Modernizr[r[0]])), Modernizr[r[0]][r[1]] = t), o([(t && !1 !== t ? \"\" : \"no-\") + r.join(\"-\")]), Modernizr._trigger(e, t) } return Modernizr } function s() { return \"function\" != typeof t.createElement ? t.createElement(arguments[0]) : S ? t.createElementNS.call(t, \"http://www.w3.org/2000/svg\", arguments[0]) : t.createElement.apply(t, arguments) } function a() { var e = t.body; return e || (e = s(S ? \"svg\" : \"body\"), e.fake = !0), e } function l(e, n, r, o) { var i, l, u, f, c = \"modernizr\", d = s(\"div\"), p = a(); if (parseInt(r, 10)) for (; r--;)u = s(\"div\"), u.id = o ? o[r] : c + (r + 1), d.appendChild(u); return i = s(\"style\"), i.type = \"text/css\", i.id = \"s\" + c, (p.fake ? p : d).appendChild(i), p.appendChild(d), i.styleSheet ? i.styleSheet.cssText = e : i.appendChild(t.createTextNode(e)), d.id = c, p.fake && (p.style.background = \"\", p.style.overflow = \"hidden\", f = b.style.overflow, b.style.overflow = \"hidden\", b.appendChild(p)), l = n(d, e), p.fake ? (p.parentNode.removeChild(p), b.style.overflow = f, b.offsetHeight) : d.parentNode.removeChild(d), !!l } function u(e, t) { return !!~(\"\" + e).indexOf(t) } function f(e) { return e.replace(/([A-Z])/g, function (e, t) { return \"-\" + t.toLowerCase() }).replace(/^ms-/, \"-ms-\") } function c(t, n, r) { var o; if (\"getComputedStyle\" in e) { o = getComputedStyle.call(e, t, n); var i = e.console; if (null !== o) r && (o = o.getPropertyValue(r)); else if (i) { var s = i.error ? \"error\" : \"log\"; i[s].call(i, \"getComputedStyle returning null, its possible modernizr test results are inaccurate\") } } else o = !n && t.currentStyle && t.currentStyle[r]; return o } function d(t, r) { var o = t.length; if (\"CSS\" in e && \"supports\" in e.CSS) { for (; o--;)if (e.CSS.supports(f(t[o]), r)) return !0; return !1 } if (\"CSSSupportsRule\" in e) { for (var i = []; o--;)i.push(\"(\" + f(t[o]) + \":\" + r + \")\"); return i = i.join(\" or \"), l(\"@supports (\" + i + \") { #modernizr { position: absolute; } }\", function (e) { return \"absolute\" === c(e, null, \"position\") }) } return n } function p(e) { return e.replace(/([a-z])-([a-z])/g, function (e, t, n) { return t + n.toUpperCase() }).replace(/^-/, \"\") } function m(e, t, o, i) { function a() { f && (delete L.style, delete L.modElem) } if (i = !r(i, \"undefined\") && i, !r(o, \"undefined\")) { var l = d(e, o); if (!r(l, \"undefined\")) return l } for (var f, c, m, h, v, A = [\"modernizr\", \"tspan\", \"samp\"]; !L.style && A.length;)f = !0, L.modElem = s(A.shift()), L.style = L.modElem.style; for (m = e.length, c = 0; c \u003c m; c++)if (h = e[c], v = L.style[h], u(h, \"-\") && (h = p(h)), L.style[h] !== n) { if (i || r(o, \"undefined\")) return a(), \"pfx\" !== t || h; try { L.style[h] = o } catch (e) { } if (L.style[h] !== v) return a(), \"pfx\" !== t || h } return a(), !1 } function h(e, t) { return function () { return e.apply(t, arguments) } } function v(e, t, n) { var o; for (var i in e) if (e[i] in t) return !1 === n ? e[i] : (o = t[e[i]], r(o, \"function\") ? h(o, n || t) : o); return !1 } function A(e, t, n, o, i) { var s = e.charAt(0).toUpperCase() + e.slice(1), a = (e + \" \" + z.join(s + \" \") + s).split(\" \"); return r(t, \"string\") || r(t, \"undefined\") ? m(a, t, o, i) : (a = (e + \" \" + x.join(s + \" \") + s).split(\" \"), v(a, t, n)) } function g(e, t, r) { return A(e, n, n, t, r) } var y = [], w = { _version: \"3.7.1\", _config: { classPrefix: \"\", enableClasses: !0, enableJSClass: !0, usePrefixes: !0 }, _q: [], on: function (e, t) { var n = this; setTimeout(function () { t(n[e]) }, 0) }, addTest: function (e, t, n) { y.push({ name: e, fn: t, options: n }) }, addAsyncTest: function (e) { y.push({ name: null, fn: e }) } }, Modernizr = function () { }; Modernizr.prototype = w, Modernizr = new Modernizr; var C = [], b = t.documentElement, S = \"svg\" === b.nodeName.toLowerCase(), _ = \"Moz O ms Webkit\", x = w._config.usePrefixes ? _.toLowerCase().split(\" \") : []; w._domPrefixes = x; var T = w._config.usePrefixes ? \" -webkit- -moz- -o- -ms- \".split(\" \") : [\"\", \"\"]; w._prefixes = T; var E; !function () { var e = {}.hasOwnProperty; E = r(e, \"undefined\") || r(e.call, \"undefined\") ? function (e, t) { return t in e && r(e.constructor.prototype[t], \"undefined\") } : function (t, n) { return e.call(t, n) } }(), w._l = {}, w.on = function (e, t) { this._l[e] || (this._l[e] = []), this._l[e].push(t), Modernizr.hasOwnProperty(e) && setTimeout(function () { Modernizr._trigger(e, Modernizr[e]) }, 0) }, w._trigger = function (e, t) { if (this._l[e]) { var n = this._l[e]; setTimeout(function () { var e; for (e = 0; e \u003c n.length; e++)(0, n[e])(t) }, 0), delete this._l[e] } }, Modernizr._q.push(function () { w.addTest = i }); var P = function () { function e(e, r) { var o; return !!e && (r && \"string\" != typeof r || (r = s(r || \"div\")), e = \"on\" + e, o = e in r, !o && t && (r.setAttribute || (r = s(\"div\")), r.setAttribute(e, \"\"), o = \"function\" == typeof r[e], r[e] !== n && (r[e] = n), r.removeAttribute(e)), o) } var t = !(\"onblur\" in b); return e }(); w.hasEvent = P; var k = function () { var t = e.matchMedia || e.msMatchMedia; return t ? function (e) { var n = t(e); return n && n.matches || !1 } : function (t) { var n = !1; return l(\"@media \" + t + \" { #modernizr { position: absolute; } }\", function (t) { n = \"absolute\" === (e.getComputedStyle ? e.getComputedStyle(t, null) : t.currentStyle).position }), n } }(); w.mq = k; var B = function (e, t) { var n = !1, r = s(\"div\"), o = r.style; if (e in o) { var i = x.length; for (o[e] = t, n = o[e]; i-- && !n;)o[e] = \"-\" + x[i] + \"-\" + t, n = o[e] } return \"\" === n && (n = !1), n }; w.prefixedCSSValue = B; var z = w._config.usePrefixes ? _.split(\" \") : []; w._cssomPrefixes = z; var O = { elem: s(\"modernizr\") }; Modernizr._q.push(function () { delete O.elem }); var L = { style: O.elem.style }; Modernizr._q.unshift(function () { delete L.style }), w.testAllProps = A, w.testAllProps = g; w.testProp = function (e, t, r) { return m([e], n, t, r) }, w.testStyles = l; Modernizr.addTest(\"customelements\", \"customElements\" in e), Modernizr.addTest(\"history\", function () { var t = navigator.userAgent; return (-1 === t.indexOf(\"Android 2.\") && -1 === t.indexOf(\"Android 4.0\") || -1 === t.indexOf(\"Mobile Safari\") || -1 !== t.indexOf(\"Chrome\") || -1 !== t.indexOf(\"Windows Phone\") || \"file:\" === location.protocol) && (e.history && \"pushState\" in e.history) }), Modernizr.addTest(\"pointerevents\", function () { var e = !1, t = x.length; for (e = Modernizr.hasEvent(\"pointerdown\"); t-- && !e;)P(x[t] + \"pointerdown\") && (e = !0); return e }); var N = new Boolean(\"postMessage\" in e); N.structuredclones = !0; try { e.postMessage({ toString: function () { N.structuredclones = !1 } }, \"*\") } catch (e) { } Modernizr.addTest(\"postmessage\", N), Modernizr.addTest(\"webgl\", function () { return \"WebGLRenderingContext\" in e }); var R = !1; try { R = \"WebSocket\" in e && 2 === e.WebSocket.CLOSING } catch (e) { } Modernizr.addTest(\"websockets\", R), Modernizr.addTest(\"cssanimations\", g(\"animationName\", \"a\", !0)), function () { Modernizr.addTest(\"csscolumns\", function () { var e = !1, t = g(\"columnCount\"); try { e = !!t, e && (e = new Boolean(e)) } catch (e) { } return e }); for (var e, t, n = [\"Width\", \"Span\", \"Fill\", \"Gap\", \"Rule\", \"RuleColor\", \"RuleStyle\", \"RuleWidth\", \"BreakBefore\", \"BreakAfter\", \"BreakInside\"], r = 0; r \u003c n.length; r++)e = n[r].toLowerCase(), t = g(\"column\" + n[r]), \"breakbefore\" !== e && \"breakafter\" !== e && \"breakinside\" !== e || (t = t || g(n[r])), Modernizr.addTest(\"csscolumns.\" + e, t) }(), Modernizr.addTest(\"flexbox\", g(\"flexBasis\", \"1px\", !0)), Modernizr.addTest(\"picture\", \"HTMLPictureElement\" in e), Modernizr.addAsyncTest(function () { var e, t, n, r = s(\"img\"), o = \"sizes\" in r; !o && \"srcset\" in r ? (t = \"data:image/gif;base64,R0lGODlhAgABAPAAAP///wAAACH5BAAAAAAALAAAAAACAAEAAAICBAoAOw==\", e = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\", n = function () { i(\"sizes\", 2 === r.width) }, r.onload = n, r.onerror = n, r.setAttribute(\"sizes\", \"9px\"), r.srcset = e + \" 1w,\" + t + \" 8w\", r.src = e) : i(\"sizes\", o) }), Modernizr.addTest(\"srcset\", \"srcset\" in s(\"img\")), Modernizr.addTest(\"webworkers\", \"Worker\" in e), function () { var e, t, n, o, i, s, a; for (var l in y) if (y.hasOwnProperty(l)) { if (e = [], t = y[l], t.name && (e.push(t.name.toLowerCase()), t.options && t.options.aliases && t.options.aliases.length)) for (n = 0; n \u003c t.options.aliases.length; n++)e.push(t.options.aliases[n].toLowerCase()); for (o = r(t.fn, \"function\") ? t.fn() : t.fn, i = 0; i \u003c e.length; i++)s = e[i], a = s.split(\".\"), 1 === a.length ? Modernizr[a[0]] = o : (!Modernizr[a[0]] || Modernizr[a[0]] instanceof Boolean || (Modernizr[a[0]] = new Boolean(Modernizr[a[0]])), Modernizr[a[0]][a[1]] = o), C.push((o ? \"\" : \"no-\") + a.join(\"-\")) } }(), o(C), delete w.addTest, delete w.addAsyncTest; for (var j = 0; j \u003c Modernizr._q.length; j++)Modernizr._q[j](); e.Modernizr = Modernizr }(window, document);\n    (function ($) {\n\n        \"use strict\";\n\n\n        /* Screens Shot Slider\n        =============================*/\n        var owl = $(\".touch-slider\");\n        owl.owlCarousel({\n            center: true,\n            navigation: false,\n            pagination: true,\n            slideSpeed: 1000,\n            stopOnHover: true,\n            autoPlay: true,\n            touchDrag: true,\n            responsive: {\n                0: {\n                    items: 1\n                },\n\n                480: {\n                    items: 2\n                },\n\n                768: {\n                    items: 3\n                },\n\n                992: {\n                    items: 4\n                },\n\n                1199: {\n                    items: 5\n                }\n            },\n            items: 5,\n            itemsDesktopSmall: [1024, 3],\n            itemsTablet: [600, 1],\n            itemsMobile: [479, 1]\n        });\n\n\n        // for menu scroll \n        $('.page-scroll').click(function () {\n            var hash = this.hash;\n            var position = $(hash).offset().top - 60;\n            $('html').animate({\n                scrollTop: position\n            }, 900);\n        });\n\n\n        /* \n         One Page Navigation & wow js\n         ========================================================================== */\n\n        $(window).on('load', function () {\n\n            $('body').scrollspy({\n                target: '.navbar-collapse',\n                offset: 195\n            });\n\n            $(window).on('scroll', function () {\n                if ($(window).scrollTop() > 100) {\n                    $('.fixed-top').addClass('menu-bg');\n                } else {\n                    $('.fixed-top').removeClass('menu-bg');\n                }\n            });\n\n        });\n\n        /* Auto Close Responsive Navbar on Click\n        ========================================================*/\n        function close_toggle() {\n            if ($(window).width() \u003c= 768) {\n                $('.navbar-collapse a').on('click', function () {\n                    $('.navbar-collapse').collapse('hide');\n                });\n            }\n            else {\n                $('.navbar .navbar-inverse a').off('click');\n            }\n        }\n        close_toggle();\n        $(window).resize(close_toggle);\n\n        /* Nivo Lightbox\n        ========================================================*/\n        $('.lightbox').nivoLightbox({\n            effect: 'fadeScale',\n            keyboardNav: true,\n        });\n\n    });\n\n    /*\n     * jQuery One Page Nav Plugin\n     * http://github.com/davist11/jQuery-One-Page-Nav\n     *\n     * Copyright (c) 2010 Trevor Davis (http://trevordavis.net)\n     * Dual licensed under the MIT and GPL licenses.\n     * Uses the same license as jQuery, see:\n     * http://jquery.org/license\n     *\n     * @version 3.0.0\n     *\n     * Example usage:\n     * $('#nav').onePageNav({\n     *   currentClass: 'current',\n     *   changeHash: false,\n     *   scrollSpeed: 750\n     * });\n     */\n\n    (function ($, window, document, undefined) {\n\n        // our plugin constructor\n        var OnePageNav = function (elem, options) {\n            this.elem = elem;\n            this.$elem = $(elem);\n            this.options = options;\n            this.metadata = this.$elem.data('plugin-options');\n            this.$win = $(window);\n            this.sections = {};\n            this.didScroll = false;\n            this.$doc = $(document);\n            this.docHeight = this.$doc.height();\n        };\n\n        // the plugin prototype\n        OnePageNav.prototype = {\n            defaults: {\n                navItems: 'a',\n                currentClass: 'current',\n                changeHash: false,\n                easing: 'swing',\n                filter: '',\n                scrollSpeed: 750,\n                scrollThreshold: 0.5,\n                begin: false,\n                end: false,\n                scrollChange: false\n            },\n\n            init: function () {\n                // Introduce defaults that can be extended either\n                // globally or using an object literal.\n                this.config = $.extend({}, this.defaults, this.options, this.metadata);\n\n                this.$nav = this.$elem.find(this.config.navItems);\n\n                //Filter any links out of the nav\n                if (this.config.filter !== '') {\n                    this.$nav = this.$nav.filter(this.config.filter);\n                }\n\n                //Handle clicks on the nav\n                this.$nav.on('click.onePageNav', $.proxy(this.handleClick, this));\n\n                //Get the section positions\n                this.getPositions();\n\n                //Handle scroll changes\n                this.bindInterval();\n\n                //Update the positions on resize too\n                this.$win.on('resize.onePageNav', $.proxy(this.getPositions, this));\n\n                return this;\n            },\n\n            adjustNav: function (self, $parent) {\n                self.$elem.find('.' + self.config.currentClass).removeClass(self.config.currentClass);\n                $parent.addClass(self.config.currentClass);\n            },\n\n            bindInterval: function () {\n                var self = this;\n                var docHeight;\n\n                self.$win.on('scroll.onePageNav', function () {\n                    self.didScroll = true;\n                });\n\n                self.t = setInterval(function () {\n                    docHeight = self.$doc.height();\n\n                    //If it was scrolled\n                    if (self.didScroll) {\n                        self.didScroll = false;\n                        self.scrollChange();\n                    }\n\n                    //If the document height changes\n                    if (docHeight !== self.docHeight) {\n                        self.docHeight = docHeight;\n                        self.getPositions();\n                    }\n                }, 250);\n            },\n\n            getHash: function ($link) {\n                return $link.attr('href').split('#')[1];\n            },\n\n            getPositions: function () {\n                var self = this;\n                var linkHref;\n                var topPos;\n                var $target;\n\n                self.$nav.each(function () {\n                    linkHref = self.getHash($(this));\n                    $target = $('#' + linkHref);\n\n                    if ($target.length) {\n                        topPos = $target.offset().top;\n                        self.sections[linkHref] = Math.round(topPos);\n                    }\n                });\n            },\n\n            getSection: function (windowPos) {\n                var returnValue = null;\n                var windowHeight = Math.round(this.$win.height() * this.config.scrollThreshold);\n\n                for (var section in this.sections) {\n                    if ((this.sections[section] - windowHeight) \u003c windowPos) {\n                        returnValue = section;\n                    }\n                }\n\n                return returnValue;\n            },\n\n            handleClick: function (e) {\n                var self = this;\n                var $link = $(e.currentTarget);\n                var $parent = $link.parent();\n                var newLoc = '#' + self.getHash($link);\n\n                if (!$parent.hasClass(self.config.currentClass)) {\n                    //Start callback\n                    if (self.config.begin) {\n                        self.config.begin();\n                    }\n\n                    //Change the highlighted nav item\n                    self.adjustNav(self, $parent);\n\n                    //Removing the auto-adjust on scroll\n                    self.unbindInterval();\n\n                    //Scroll to the correct position\n                    self.scrollTo(newLoc, function () {\n                        //Do we need to change the hash?\n                        if (self.config.changeHash) {\n                            window.location.hash = newLoc;\n                        }\n\n                        //Add the auto-adjust on scroll back in\n                        self.bindInterval();\n\n                        //End callback\n                        if (self.config.end) {\n                            self.config.end();\n                        }\n                    });\n                }\n\n                e.preventDefault();\n            },\n\n            scrollChange: function () {\n                var windowTop = this.$win.scrollTop();\n                var position = this.getSection(windowTop);\n                var $parent;\n\n                //If the position is set\n                if (position !== null) {\n                    $parent = this.$elem.find('a[href$=\"#' + position + '\"]').parent();\n\n                    //If it's not already the current section\n                    if (!$parent.hasClass(this.config.currentClass)) {\n                        //Change the highlighted nav item\n                        this.adjustNav(this, $parent);\n\n                        //If there is a scrollChange callback\n                        if (this.config.scrollChange) {\n                            this.config.scrollChange($parent);\n                        }\n                    }\n                }\n            },\n\n            scrollTo: function (target, callback) {\n                var offset = $(target).offset().top;\n\n                $('html, body').animate({\n                    scrollTop: offset\n                }, this.config.scrollSpeed, this.config.easing, callback);\n            },\n\n            unbindInterval: function () {\n                clearInterval(this.t);\n                this.$win.unbind('scroll.onePageNav');\n            }\n        };\n      \n      \n\n        OnePageNav.defaults = OnePageNav.prototype.defaults;\n\n        $.fn.onePageNav = function (options) {\n            return this.each(function () {\n                new OnePageNav(this, options).init();\n            });\n        };\n\n    });\n\n\n    //jQuery to collapse the navbar on scroll\n    window.addEventListener('scroll', function () {\n        if (window.pageYOffset > 50) {\n            $(\".navbar-fixed-top\").addClass(\"top-nav-collapse\");\n        } else {\n            $(\".navbar-fixed-top\").removeClass(\"top-nav-collapse\");\n        }\n    });\n    //jQuery for page scrolling feature - requires jQuery Easing plugin\n    $(function () {\n\n        $('a.page-scroll[href*=\"#\"]:not([href=\"#\"])').on('click', function () {\n            if (location.pathname.replace(/^\\//, '') == this.pathname.replace(/^\\//, '') && location.hostname == this.hostname) {\n                var target = $(this.hash);\n                target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');\n                if (target.length) {\n                    $('html, body').animate({\n                        scrollTop: (target.offset().top - 80)\n                    }, 1500, \"easeInOutExpo\");\n                    return false;\n                }\n            }\n        });\n\n    });\n  // sticky menu \n$(window).on('scroll', function (event) {\n    var scroll = $(window).scrollTop();\n    if (scroll \u003c 20) {\n        $(\".navbar-area\").removeClass(\"sticky menu-bg\");\n    } else {\n        $(\".navbar-area\").addClass(\"sticky menu-bg\");\n    }\n    //===== Section Menu Active\n    var scrollLink = $('.page-scroll');\n    var scrollbarLocation = $(this).scrollTop();\n    scrollLink.each(function () {\n        var sectionOffset = $(this.hash).offset().top - 73;\n        if (sectionOffset \u003c= scrollbarLocation) {\n            $(this).parent().addClass('active');\n            $(this).parent().siblings().removeClass('active');\n        }\n    });\n});\n\n\n//checklist modal \n  function showModal() {\n        \n    document.getElementById(\"checklist-modal\").style.display = \"block\";\n    \n  }\n\n  function closeModal() {\n    document.getElementById(\"checklist-modal\").style.display = \"none\";\n  }\n\n  window.onclick = function (event) {\n    var modal = document.getElementById(\"checklist-modal\");\n    if (event.target == modal) {\n      modal.style.display = \"none\";\n    }\n  }\n\n//===== close navbar-collapse when a  clicked\n\n$(\".navbar-nav a\").on('click', function () {\n    $(\".navbar-collapse\").removeClass(\"show\");\n});\n\n$(\".navbar-toggler\").on('click', function () {\n    $(this).toggleClass(\"active\");\n});\n\n$(\".navbar-nav a\").on('click', function () {\n    $(\".navbar-toggler\").removeClass('active');\n}); \n\n            const steps = document.querySelectorAll('input[name=\"step\"]');\n            let currentStep = 0;\n\n            function updateButtons() {\n                const buttons = document.getElementsByTagName('button');\n                for (let button of buttons) {\n                    if (button.id === 'prev-button') {\n                        button.disabled = currentStep === 0;\n                    } else if (button.id === 'next-button') {\n                      if(currentStep === steps.length - 1){\n                      button.outerHTML = '\u003cbutton id=\"next-button\" onclick=\"closeModal()\">\u003cspan>Finish\u003c/span>\u003c/button>';\n                      }else{\n                        button.outerHTML = '\u003cbutton id=\"next-button\" onclick=\"moveStep(1)\">\u003cspan>&#9654;\u003c/span>\u003c/button>'\n                      }\n                       \n                    }\n                }\n            }\n\n            function moveStep(direction) {\n                steps[currentStep].checked = false;\n                currentStep += direction;\n                steps[currentStep].checked = true;\n                updateButtons();\n            }\n\n            // Initial button state\n            updateButtons();\n}\n// Replace client flow with bearer token flow\nlet capturedScopes = [];\n\nconsole.log('[Scopes] Script loaded');\n\n// Extract scopes from the Tippy dropdown after clicking\nfunction captureScopesFromDropdown() {\n  console.log('[Scopes] captureScopesFromDropdown called');\n  \n  if (capturedScopes.length > 0) {\n    console.log('[Scopes] Already have scopes:', capturedScopes);\n    return;\n  }\n  \n  const scopesButton = document.querySelector('.rm-APIAuth [class*=\"oauth-scopes\"] .Dropdown-toggle');\n  console.log('[Scopes] Scopes button found:', !!scopesButton);\n  \n  if (!scopesButton) return;\n  \n  // Click to open the Tippy dropdown\n  console.log('[Scopes] Clicking dropdown to reveal scopes...');\n  scopesButton.click();\n  \n  setTimeout(() => {\n    // Find scope items in the Tippy popup - look for Menu-Item elements\n    const menuItems = document.querySelectorAll('.tippy-box .Menu-Item, [data-tippy-root] .Menu-Item');\n    console.log('[Scopes] Menu items found:', menuItems.length);\n    \n    menuItems.forEach(item => {\n      // Get scope name from the scopes-text span\n      const nameEl = item.querySelector('[class*=\"oauth-scopes-text\"]');\n      const descEl = item.querySelector('.Menu-Item-description');\n      \n      const name = nameEl?.textContent?.trim();\n      const description = descEl?.textContent?.trim() || `OAuth2 scope: ${name}`;\n      \n      console.log('[Scopes] Found scope:', name, '-', description);\n      \n      if (name && !capturedScopes.find(s => s.name === name)) {\n        capturedScopes.push({ name, description });\n      }\n    });\n    \n    console.log('[Scopes] Captured scopes:', capturedScopes);\n    \n    // Close the dropdown\n    scopesButton.click();\n  }, 0);\n}\n\n// Create custom scopes pills\nfunction createScopesPills(scopes) {\n  const container = document.createElement('div');\n  container.className = 'custom-scopes';\n  \n  if (scopes.length === 0) {\n    container.innerHTML = '\u003cdiv class=\"custom-scopes-label\">No scopes required\u003c/div>';\n    return container;\n  }\n  \n  const label = document.createElement('div');\n  label.className = 'custom-scopes-label';\n  label.textContent = 'Scopes';\n  container.appendChild(label);\n  \n  scopes.forEach(scope => {\n    const pill = document.createElement('span');\n    pill.className = 'scope-pill';\n    pill.textContent = scope.name;\n    \n    const tooltip = document.createElement('span');\n    tooltip.className = 'scope-tooltip';\n    tooltip.textContent = scope.description;\n    pill.appendChild(tooltip);\n    \n    container.appendChild(pill);\n  });\n  \n  return container;\n}\n\n// Inject scopes after token input\nfunction injectCustomScopes() {\n  console.log('[Scopes] injectCustomScopes called');\n  const tokenRow = document.querySelector('.InputGroup-oauth-flow-token');\n  const existing = document.querySelector('.custom-scopes');\n  \n  console.log('[Scopes] Token row found:', !!tokenRow);\n  console.log('[Scopes] Existing custom scopes:', !!existing);\n  console.log('[Scopes] Captured scopes count:', capturedScopes.length);\n  \n  if (tokenRow && !existing && capturedScopes.length > 0) {\n    console.log('[Scopes] Injecting scopes pills...');\n    tokenRow.after(createScopesPills(capturedScopes));\n  } else if (tokenRow && !existing && capturedScopes.length === 0) {\n    console.log('[Scopes] No scopes to inject');\n  }\n}\n\n// Click \"Use Your Own Token\" button\nfunction clickUseOwnToken() {\n  console.log('[Scopes] clickUseOwnToken called');\n  const buttons = document.querySelectorAll('.rm-APIAuth button');\n  console.log('[Scopes] Found buttons:', buttons.length);\n  \n  for (const btn of buttons) {\n    console.log('[Scopes] Button text:', btn.textContent.trim());\n    if (btn.textContent.trim() === 'Use Your Own Token') {\n      console.log('[Scopes] Clicking \"Use Your Own Token\" button');\n      btn.click();\n      return true;\n    }\n  }\n  console.log('[Scopes] \"Use Your Own Token\" button not found');\n  return false;\n}\n\n// Main flow - runs on each page load\nfunction initBearerTokenMode() {\n  console.log('[Scopes] initBearerTokenMode called');\n  capturedScopes = []; // Reset for new page\n  \n  const scopesDropdown = document.querySelector('.rm-APIAuth [class*=\"oauth-scopes\"]');\n  const clientFlow = document.querySelector('.InputGroup-oauth-flow-client');\n  \n  console.log('[Scopes] Scopes dropdown found:', !!scopesDropdown);\n  console.log('[Scopes] Client flow found:', !!clientFlow);\n  \n  // First capture scopes while original dropdown exists\n  if (scopesDropdown) {\n    captureScopesFromDropdown();\n  }\n  \n  // Delay to allow scope capture (dropdown opens, captures, closes), then switch to token mode\n  setTimeout(() => {\n    console.log('[Scopes] After 500ms delay, captured scopes:', capturedScopes);\n    if (document.querySelector('.InputGroup-oauth-flow-client')) {\n      clickUseOwnToken();\n    }\n    \n    // Inject custom scopes after switching\n    setTimeout(() => {\n      console.log('[Scopes] After 400ms delay, injecting...');\n      if (document.querySelector('.InputGroup-oauth-flow-token')) {\n        injectCustomScopes();\n      } else {\n        console.log('[Scopes] Token flow not found after switching');\n      }\n    }, 400);\n  }, 500);\n}\n\n// Use ReadMe's pageLoad event\n$(window).on('pageLoad', () => {\n  console.log('[Scopes] pageLoad event fired');\n  initBearerTokenMode();\n});\n\n// Also run on initial load\n$(document).ready(() => {\n  console.log('[Scopes] document.ready fired');\n  initBearerTokenMode();\n});\n\n\n\n\n// Track the current URL path to detect changes\nvar lastPath = window.location.pathname;\n\n// Simple banner display function\nfunction displayBanner() {\n    // Get the container element\n    var contentElement = document.getElementById('hub-search-results');\n    if (!contentElement) return;\n    \n    // Update lastPath for future comparisons\n    lastPath = window.location.pathname;\n    \n    // Remove any existing banners first\n    var existingRecipeCallout = contentElement.querySelector('.onetrust-custom-callout');\n  \tvar existingCMPCallout = contentElement.querySelector('.onetrust-custom-callout-cmp');    \n\t\tvar existingOASCallout = contentElement.querySelector('.onetrust-custom-callout-oas');\n\n\n    \n    if (existingRecipeCallout && existingRecipeCallout.parentElement) {\n        existingRecipeCallout.parentElement.removeChild(existingRecipeCallout);\n    }\n    if (existingCMPCallout && existingCMPCallout.parentElement) {\n        existingCMPCallout.parentElement.removeChild(existingCMPCallout);\n    }\n\t\tif (existingOASCallout && existingOASCallout.parentElement) {\n        existingOASCallout.parentElement.removeChild(existingOASCallout);\n    }\n    \n    // Get current path\n    var path = window.location.pathname;\n    \n    // New element for banner\n    var newElement = document.createElement('div');\n    newElement.className = 'rm-Markdown markdown-body';\n    newElement.setAttribute('data-testid', 'RDMD');\n    \n    // Choose banner based on path\n    if (path === '/onetrust/recipes') {\n        //console.log('Displaying Recipe banner');\n        newElement.innerHTML = `\u003cblockquote class=\"callout callout_warning onetrust-custom-callout\" theme=\"🚧\">\n            \u003cp>The code samples provided here are intended as starting points for various use cases. We encourage you to thoroughly test any code. Use of these samples is at your own risk. Please note that OneTrust does not offer implementation support for these Recipes but welcomes your feedback and suggestions for new Recipes. If you want to provide feedback, please leverage the Help widget in the bottom right corner of your screen.\u003c/p>\n        \u003c/blockquote>`;\n        contentElement.insertBefore(newElement, contentElement.firstChild);\n    } else if (path.includes('/docs/')) {\n        //console.log('Displaying CMP banner');\n        newElement.innerHTML = `\u003cblockquote class=\"callout callout_error onetrust-custom-callout-cmp\" theme=\"❗\">\n            \u003cp style=\"color: black;\">We strongly recommend all CMP users deploying Mobile &amp; OTT/CTV SDKs to migrate to our next generation of CMP SDKs for a seamless experience and enhanced efficiency and scalability. For more information, see \u003ca href=\"https://developer.onetrust.com/onetrust/docs/onetrusts-next-generation-cmp-sdks\" target=\"_blank\" rel=\"noopener noreferrer\">OneTrust Next Generation CMP SDKs\u003c/a>.\u003c/p>\n        \u003c/blockquote>`;\n        contentElement.insertBefore(newElement, contentElement.firstChild);\n    } else {\n        //console.log('No banner needed for path: ' + path);\n    }\n}\n\n// Check if URL has changed\nfunction checkURLChange() {\n    var currentPath = window.location.pathname;\n    if (currentPath !== lastPath) {\n        //console.log('URL changed from', lastPath, 'to', currentPath);\n        setTimeout(displayBanner, 500);\n    }\n}\n\n// Hook into history API to detect client-side navigation\nfunction addHistoryChangeListener() {\n    // Store references to original history methods\n    var originalPushState = history.pushState;\n    var originalReplaceState = history.replaceState;\n    \n    // Override history.pushState\n    history.pushState = function() {\n        originalPushState.apply(this, arguments);\n        setTimeout(displayBanner, 500);\n    };\n    \n    // Override history.replaceState\n    history.replaceState = function() {\n        originalReplaceState.apply(this, arguments);\n        setTimeout(displayBanner, 500);\n    };\n}\n\n// Set up periodic URL checking\nfunction startURLMonitoring() {\n    // Check URL every 500ms\n    setInterval(checkURLChange, 500);\n    \n    // Add listener for click events on anchor tags\n    document.addEventListener('click', function(e) {\n        if (e.target.tagName === 'A' || e.target.closest('a')) {\n            // A link was clicked, check for URL change after a delay\n            setTimeout(checkURLChange, 500);\n        }\n    });\n}\n\n// Set up one-time event listeners\ndocument.addEventListener('DOMContentLoaded', function() {\n    // First attempt when DOM is ready with 1000ms delay\n    setTimeout(displayBanner, 1000);\n    \n    // Hook into history API\n    addHistoryChangeListener();\n    \n    // Start URL monitoring\n    startURLMonitoring();\n    \n    // Set up a single listener for popstate (browser back/forward)\n    window.addEventListener('popstate', function() {\n        // Add delay before showing banner after navigation\n        setTimeout(displayBanner, 500);\n    });\n});\n\n// Add banner when page load is complete (backup)\nwindow.addEventListener('load', function() {\n    setTimeout(displayBanner, 1000);\n});\n\n\n// Brave Shield Warning \nfunction isBraveShieldsUp() {\n    if (window.navigator.brave != undefined) {\n        if (window.navigator.brave.isBrave.name == \"isBrave\") {\n            //if (!window.navigator.plugins[0][0].type){\n            document.getElementById(\"brave-warning\").style.display = \"block\";\n            return true;\n            // }\n        } else {\n            return false;\n        }\n    } else {\n        return false;\n    }\n}\nisBraveShieldsUp();\n\n// start of x-onetrust\n// Creates x-onetrust Tags in UI \n// function createTags(tags, data, oasUrl, callback) {\n//     /*\n//     \"x-onetrust\": {\n//        \"highly-available\": true,\n//        \"highly-available-link\": \"Helpful Link for HA\",\n//        \"release-status\": \"Public Preview | Sunset Period | Deprecated\",\n//        \"release-status-link\": \"link to changelog if needed\",\n//        \"spec-label\": \"OpenAPI 3.1.0\"\n//      }\n//      */\n//     const fragment = document.createDocumentFragment();\n//     const divTags = document.createElement(\"div\");\n//     divTags.className = \"ot-tags-container\";\n//     divTags.id = \"ot-tags-container\";\n\n//     // Check if highly-available is true\n//     if (tags && tags[\"highly-available\"] === true) {\n//         const haSpan = document.createElement(\"span\");\n//         haSpan.className = \"ot-tags ot-tags-ha\";\n//         haSpan.onclick = function () {\n//             window.open(\"https://developer.onetrust.com/onetrust/reference/consent-preference-management-api-service-level-objectives\", \"_blank\");\n//         };\n//         haSpan.setAttribute(\"style\", \"float: right;margin-top: 10px;\");\n//         haSpan.setAttribute(\"apimethod_version\", \"\");\n//         haSpan.textContent = \"Highly Available\";\n//         divTags.appendChild(haSpan);\n//     }\n\n//     // Check if release-status exists\n//     if (tags && tags[\"release-status\"]) {\n//         const rsSpan = document.createElement(\"span\");\n//         rsSpan.className = \"ot-tags ot-tags-rs\";\n//         rsSpan.onclick = function () {\n//             if (tags[\"release-status-link\"]) {\n//                 window.open(tags[\"release-status-link\"], \"_blank\");\n//             }\n//         };\n//         rsSpan.setAttribute(\"style\", \"float: right;margin-top: 10px;\");\n//         rsSpan.setAttribute(\"apimethod_version\", \"\");\n//         rsSpan.textContent = tags[\"release-status\"];\n//         divTags.appendChild(rsSpan);\n\n//         // Add hover CSS\n//         rsSpan.addEventListener('mouseenter', function () {\n//             if (tags[\"release-status-link\"]) {\n//                 rsSpan.style.background = \"firebrick\";\n//                 rsSpan.style.cursor = \"pointer\";\n//             }\n//         });\n\n//         rsSpan.addEventListener('mouseleave', function () {\n//             if (tags[\"release-status-link\"]) {\n//                 rsSpan.style.background = \"\"; // Reset to default\n//                 rsSpan.style.cursor = \"\"; // Reset to default\n//             }\n//         });\n//     }\n\n//     // Check if spec version exists\n//     if (data[\"x-onetrust\"][\"spec-label\"]) {\n//         const slSpan = document.createElement(\"span\");\n//         slSpan.className = \"ot-tags ot-tags-sl\";\n//         slSpan.onclick = function () {\n//             window.open(oasUrl, \"_blank\"); // Replace with the actual hyperlink\n//         };\n//         slSpan.setAttribute(\"style\", \"float: right;margin-top: 10px;\");\n//         slSpan.setAttribute(\"apimethod_version\", \"\");\n//         slSpan.textContent = data[\"x-onetrust\"][\"spec-label\"];\n//         divTags.appendChild(slSpan);\n//     }\n\n//     fragment.appendChild(divTags);\n\n//     // Call the callback function with the created element\n//     callback(fragment);\n// }\n\n\n// Creates Scopes Element in UI \nfunction createScopeElement(scopes, data, callback) {\n    // Create a new div element to contain the scopes\n    const newElement = document.createElement('div');\n    newElement.classList.add('Info-infoBadge3luOwOnjfNiR');\n    newElement.setAttribute('role', '');\n\n    // Create the heading for scopes\n    const heading = document.createElement('div');\n    heading.classList.add('APISectionHeader-heading4MUMLbp4_nLs');\n    heading.textContent = 'SCOPES';\n    heading.title = 'The scope signifies the level of access granted to the API endpoint. It is recommended to always choose the scope with the least access to minimize security risks.';\n    newElement.appendChild(heading);\n\n    // Create a container for badges\n    const badgesContainer = document.createElement('div');\n    badgesContainer.classList.add('badges-container');\n    badgesContainer.style.paddingLeft = '3px';\n\n    // Create and append badge elements for each scope\n    for (const scope of Object.values(scopes)) {\n        const badge = document.createElement('span');\n        badge.classList.add('Badge', 'Badge_light', 'Badge_circular');\n        badge.style.marginLeft = '3px';\n        badge.textContent = scope;\n        badge.title = data.components.securitySchemes.oauth2.flows.clientCredentials.scopes[scope];\n        badgesContainer.appendChild(badge);\n    }\n\n    newElement.appendChild(badgesContainer);\n\n    // Call the callback function with the created element\n    callback(newElement);\n}\n\n\n// Check for data-raycast-oas attribute and invoke tag/scope rendering\n// If data-raycast-oas is missing, \"false\", or \"[object Object]\", fetch \u003ccurrent URL>?json=on and use doc.api.apiSetting as fallback\n(async function resolveOasAndRender() {\n    let oasValue = null;\n    let operationId = null;\n\n    // Check for data-raycast-oas\n    const raycastOas = document.querySelector('[data-raycast-oas]');\n    const raycastOperationId = document.querySelector('[data-raycast-operation-id]');\n\n    if (raycastOas && raycastOas.dataset.raycastOas !== 'false' && raycastOas.dataset.raycastOas !== '[object Object]') {\n        oasValue = raycastOas.dataset.raycastOas;\n        operationId = raycastOperationId?.dataset.raycastOperationId;\n    }\n\n    // If no valid OAS value found, try to get it from the URL\n    if (!oasValue) {\n        const urlParams = new URLSearchParams(window.location.search);\n        if (urlParams.has('json') && urlParams.get('json') === 'on') {\n            try {\n                const response = await fetch(window.location.href);\n                const data = await response.json();\n                oasValue = data.api.apiSetting;\n                operationId = urlParams.get('operationId');\n            } catch (error) {\n                console.error('Error fetching JSON:', error);\n            }\n        }\n    }\n\n    if (oasValue) {\n        const oasUrl = URLValidator.constructOasUrl(oasValue);\n        await printScopesEnhanced(oasUrl, operationId);\n    }\n})();\n\n// Gets the Scopes from the OAS spec\nasync function printScopesEnhanced(oasUrl, operationIdToFind) {\n    try {\n        const response = await fetch(oasUrl);\n        if (!response.ok) {\n            throw new Error('Failed to fetch OpenAPI spec');\n        }\n        const data = await response.json();\n        const paths = data.paths;\n        for (const [path, pathValue] of Object.entries(paths)) {\n            for (const [method, methodValue] of Object.entries(pathValue)) {\n                if (methodValue.operationId && methodValue.operationId.toLowerCase() === operationIdToFind.toLowerCase()) {\n                    if (methodValue.security && methodValue.security.length > 0) {\n                        for (const security of methodValue.security) {\n                            for (const [securityKey, scopes] of Object.entries(security)) {\n                                if (securityKey === 'oauth2' && scopes.length > 0) {\n                                    await new Promise(r => setTimeout(r, 200));\n                                    createScopeElement(scopes, data, function (newElement) {\n                                        const elementToReplace = document.querySelector('.Info-infoBadge3luOwOnjfNiR');\n                                        if (elementToReplace) {\n                                            elementToReplace.parentNode.replaceChild(newElement, elementToReplace);\n                                        }\n                                    });\n                                    return;\n                                }\n                            }\n                        }\n                    }\n                    return;\n                }\n            }\n        }\n    } catch (error) {\n        console.error('Error fetching or processing OpenAPI spec:', error);\n    }\n}\n// end of x-onetrust\n\n\n// Scripts for Partner Page\n// Guard to ensure jQuery is loaded before running the UI enhancement block\nif (typeof window.jQuery !== 'undefined') {\n    (function ($) {\n\n        \"use strict\";\n\n        /* Page Loader active\n        ========================================================*/\n        $('#preloader').fadeOut();\n\n\n        /* Screens Shot Slider\n        =============================*/\n        var owl = $(\".touch-slider\");\n        owl.owlCarousel({\n            center: true,\n            navigation: false,\n            pagination: true,\n            slideSpeed: 1000,\n            stopOnHover: true,\n            autoPlay: true,\n            touchDrag: true,\n            responsive: {\n                0: {\n                    items: 1\n                },\n\n                480: {\n                    items: 2\n                },\n\n                768: {\n                    items: 3\n                },\n\n                992: {\n                    items: 4\n                },\n\n                1199: {\n                    items: 5\n                }\n            },\n            items: 5,\n            itemsDesktopSmall: [1024, 3],\n            itemsTablet: [600, 1],\n            itemsMobile: [479, 1]\n        });\n\n\n        // sticky menu \n        $(window).on('scroll', function (event) {\n            var scroll = $(window).scrollTop();\n            if (scroll \u003c 20) {\n                $(\".navbar-area\").removeClass(\"sticky menu-bg\");\n            } else {\n                $(\".navbar-area\").addClass(\"sticky menu-bg\");\n            }\n        });\n\n        // for menu scroll \n        $('.page-scroll').click(function () {\n            var hash = this.hash;\n            var position = $(hash).offset().top - 60;\n            $('html').animate({\n                scrollTop: position\n            }, 900);\n        });\n\n        //===== Section Menu Active\n\n        var scrollLink = $('.page-scroll');\n        // Active link switching\n        $(window).scroll(function () {\n            var scrollbarLocation = $(this).scrollTop();\n\n            scrollLink.each(function () {\n\n                var sectionOffset = $(this.hash).offset().top - 73;\n\n                if (sectionOffset \u003c= scrollbarLocation) {\n                    $(this).parent().addClass('active');\n                    $(this).parent().siblings().removeClass('active');\n                }\n            });\n        });\n\n\n        //===== close navbar-collapse when a  clicked\n\n        $(\".navbar-nav a\").on('click', function () {\n            $(\".navbar-collapse\").removeClass(\"show\");\n        });\n\n        $(\".navbar-toggler\").on('click', function () {\n            $(this).toggleClass(\"active\");\n        });\n\n        $(\".navbar-nav a\").on('click', function () {\n            $(\".navbar-toggler\").removeClass('active');\n        });\n\n\n\n        /* \n         Back Top Link\n         ========================================================================== */\n        var offset = 200;\n        var duration = 500;\n        $(window).scroll(function () {\n            if ($(this).scrollTop() > offset) {\n                $('.back-to-top').fadeIn(400);\n            } else {\n                $('.back-to-top').fadeOut(400);\n            }\n        });\n\n        $('.back-to-top').on('click', function (event) {\n            event.preventDefault();\n            $('html, body').animate({\n                scrollTop: 0\n            }, 600);\n            return false;\n        })\n\n        /* \n         One Page Navigation & wow js\n         ========================================================================== */\n\n        $(window).on('load', function () {\n\n            $('body').scrollspy({\n                target: '.navbar-collapse',\n                offset: 195\n            });\n\n            $(window).on('scroll', function () {\n                if ($(window).scrollTop() > 100) {\n                    $('.fixed-top').addClass('menu-bg');\n                } else {\n                    $('.fixed-top').removeClass('menu-bg');\n                }\n            });\n\n        });\n\n        /* Auto Close Responsive Navbar on Click\n        ========================================================*/\n        function close_toggle() {\n            if ($(window).width() \u003c= 768) {\n                $('.navbar-collapse a').on('click', function () {\n                    $('.navbar-collapse').collapse('hide');\n                });\n            }\n            else {\n                $('.navbar .navbar-inverse a').off('click');\n            }\n        }\n        close_toggle();\n        $(window).resize(close_toggle);\n\n        /* Nivo Lightbox\n        ========================================================*/\n        $('.lightbox').nivoLightbox({\n            effect: 'fadeScale',\n            keyboardNav: true,\n        });\n\n    }(window.jQuery));\n} // end jQuery guard\n\n/*\n// Load Vue.js if not already loaded\nif (typeof Vue === 'undefined') {\n    const script = document.createElement('script');\n    script.src = 'https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.10/vue.min.js';\n    script.onload = initVueComponents;\n    document.head.appendChild(script);\n} else {\n    initVueComponents();\n}\n*/\n\n/*\nfunction initVueComponents() {\n    Vue.component('boardal', {\n        template: `\n        \u003ctransition name=\"boardal\">\n          \u003cdiv class=\"boardal\">\n            \u003cdiv class=\"boardal__mask\" v-if=\"hasMask\" @click=\"clickMask\">\u003c/div>\n            \u003cdiv class=\"boardal__wrapper\">\n              \u003cslot>\u003c/slot>\n              \u003cdiv class=\"boardal__x\" v-if=\"hasX\" @click=\"clickX\">&times;\u003c/div>\n            \u003c/div>\n          \u003c/div>\n        \u003c/transition>\n        `,\n        props: [\n            'hasX',\n            'hasMask',\n            'canClickMask'\n        ],\n        methods: {\n            clickX: function () {\n                this.$emit('toggle')\n            },\n            clickMask: function () {\n                if (this.canClickMask) {\n                    this.$emit('toggle')\n                }\n            }\n        }\n    })\n\n    let vm = new Vue({\n        el: 'main',\n        data: {\n            modal: {\n                isOpen: false,\n                hasMask: true,\n                canClickMask: false,\n                hasX: false\n            },\n            step: 1,\n            max: 1,\n            showDots: true,\n            orientation: 'row',\n            xray: 'hidden',\n            currentSection: null,\n            $sections: []\n        },\n        mounted() {\n            // Initialize any mounted logic here\n            this.$sections = this.$el.querySelectorAll('section');\n            this.max = this.$sections.length;\n            this.setCssVars();\n        },\n        computed: {\n            isFirstStep: function () {\n                return (this.step === 1)\n            },\n            isLastStep: function () {\n                return (this.step === this.max)\n            },\n            hasDots: function () {\n                return (this.max > 1 && this.showDots)\n            },\n            x_multiplier: function () {\n                return (this.orientation === 'row' ? -1 : 0)\n            },\n            y_multiplier: function () {\n                return (this.orientation === 'row' ? 0 : -1)\n            },\n            axis: function () {\n                return (this.orientation === 'row' ? 'row' : 'column')\n            },\n            axisReverse: function () {\n                return (this.orientation === 'row' ? 'row-reverse' : 'column-reverse')\n            },\n            cross: function () {\n                return (this.orientation === 'row' ? 'column' : 'row')\n            },\n            crossReverse: function () {\n                return (this.orientation === 'row' ? 'column-reverse' : 'row-reverse')\n            },\n            nextIcon: function () {\n                return (this.orientation === 'row' ? 'fa-arrow-right' : 'fa-arrow-down')\n            },\n            backIcon: function () {\n                return (this.orientation === 'row' ? 'fa-arrow-left' : 'fa-arrow-up')\n            },\n        },\n        watch: {\n            orientation: 'setCssVars',\n        },\n        methods: {\n            toggleChecklistModal(step) {\n                step = step || 1;\n                this.modal.isOpen = !this.modal.isOpen;\n                if (this.modal.isOpen) {\n                    let self = this;\n                    setTimeout(function () {\n                        self.$sections = self.$el.querySelectorAll('section');\n                        self.max = self.$sections.length;\n                        self.goToStep(step);\n                    }, 1);\n                }\n            },\n            setCssVars() {\n                this.$el.style.setProperty('--x', (((this.step * 100) - 100) * this.x_multiplier) + '%');\n                this.$el.style.setProperty('--y', (((this.step * 100) - 100) * this.y_multiplier) + '%');\n                this.$el.style.setProperty('--axis', this.axis);\n                this.$el.style.setProperty('--axis-reverse', this.axisReverse);\n                this.$el.style.setProperty('--cross', this.cross);\n                this.$el.style.setProperty('--cross-reverse', this.crossReverse);\n            },\n            goToStep(step) {\n                this.step = step > this.max ? this.max : step \u003c 1 ? 1 : step;\n                this.currentSection = this.$sections[this.step - 1];\n                this.$sections.forEach(function (section) {\n                    section.classList.remove('current');\n                });\n                this.currentSection.classList.add('current');\n                this.currentSection.scrollTop = 0;\n                this.setCssVars();\n            },\n            skip(step) {\n                this.step += step;\n                this.goToStep(this.step);\n            },\n            resetChecklist() {\n                this.goToStep(1);\n            },\n            finish() {\n                this.toggleChecklistModal();\n                return (this.max > 1 && this.showDots);\n            }\n        }\n    })\n    }\n*/\n\n//Help Widget\n   // Function to extract data-raycast-oas value from HTML\n        async function getLinksfromSpec() {\n            let oasValue = null;\n\n            // Primary: try the data-raycast-oas attribute\n            const headerElement = document.querySelector('[data-raycast-oas]');\n            if (headerElement) {\n                const attr = headerElement.getAttribute('data-raycast-oas');\n                if (attr && attr !== 'false' && attr !== '[object Object]') {\n                    oasValue = attr.trim();\n                }\n            }\n\n            // Fallback: fetch the current page and get from URL params\n            if (!oasValue) {\n                const urlParams = new URLSearchParams(window.location.search);\n                if (urlParams.has('json') && urlParams.get('json') === 'on') {\n                    try {\n                        const response = await fetch(window.location.href);\n                        const data = await response.json();\n                        oasValue = data.api.apiSetting;\n                    } catch (error) {\n                        console.error('Error fetching JSON:', error);\n                    }\n                }\n            }\n\n            if (oasValue) {\n                const oasUrl = `https://developer.onetrust.com/onetrust/openapi/${oasValue}`;\n                try {\n                    const response = await fetch(oasUrl);\n                    if (!response.ok) {\n                        throw new Error('Failed to fetch OpenAPI spec');\n                    }\n                    const data = await response.json();\n                    if (data.hasOwnProperty(\"x-onetrust\")) {\n                        return data[\"x-onetrust\"][\"links\"];\n                    }\n                } catch (error) {\n                    //console.error('Error fetching or processing OpenAPI spec:', error);\n                    return null;\n                }\n            }\n            return null;\n        }\n        // Initialize the OneTrust container and help button\n        function initHelpWidget() {\n            console.log('Initializing help widget');\n            var container = document.getElementById('onetrust-container');\n            var helpButton = document.getElementById('helpButton');\n\n            if (container) {\n                container.style.display = 'none';\n            }\n\n            if (helpButton) {\n                console.log('Adding click event to help button');\n                helpButton.onclick = toggleHelpContainer;\n            } else {\n                console.error('Help button not found');\n            }\n\n            // Initialize rating feature buttons\n            console.log('Setting up rating feature buttons');\n\n            // Rate your Experience button functionality\n            var rateExperienceBtn = document.getElementById('rateExperienceBtn');\n            if (rateExperienceBtn) {\n                console.log('Adding click event to rate experience button');\n                rateExperienceBtn.addEventListener('click', function () {\n                    document.getElementById('thumbsOptions').style.display = 'flex';\n                    document.getElementById('rateExperienceBtn').style.display = 'none';\n                    document.getElementById('voteNewFeatures').style.display = 'none';\n                });\n            } else {\n                console.error('Rate experience button not found');\n            }\n\n            // Thumbs Up button functionality\n            var thumbsUpBtn = document.getElementById('thumbsUpBtn');\n            if (thumbsUpBtn) {\n                thumbsUpBtn.addEventListener('click', function () {\n                    document.getElementById('commentInput').style.display = 'block';\n                    document.getElementById('thumbsUpBtn').style.color = 'darkgreen';\n                    document.getElementById('thumbsDownBtn').style.color = 'currentcolor';\n                    document.getElementById('thumbsOptions').style.display = 'flex';\n                    document.getElementById('submitButton').style.display = 'block';\n                });\n            }\n\n            // Thumbs Down button functionality\n            var thumbsDownBtn = document.getElementById('thumbsDownBtn');\n            if (thumbsDownBtn) {\n                thumbsDownBtn.addEventListener('click', function () {\n                    document.getElementById('commentInput').style.display = 'block';\n                    document.getElementById('thumbsUpBtn').style.color = 'currentcolor';\n                    document.getElementById('thumbsDownBtn').style.color = 'darkred';\n                    document.getElementById('thumbsOptions').style.display = 'flex';\n                    document.getElementById('submitButton').style.display = 'block';\n                });\n            }\n\n            // Submit button functionality\n            var submitButton = document.getElementById('submitButton');\n            if (submitButton) {\n                submitButton.addEventListener('click', async function () {\n                    var feedback = document.getElementById(\"feedbackTextarea\").value;\n                    if (!feedback.trim()) {\n                        document.getElementById(\"commentError\").style.display = \"block\";\n                        return;\n                    } else {\n                        document.getElementById(\"commentError\").style.display = \"none\";\n                    }\n\n                    try {\n                        const scriptElement = document.getElementById(\"hub-me\");\n                        // Get the value of the data-json attribute\n                        const jsonData = scriptElement ? scriptElement.getAttribute(\"data-json\") : null;\n                        // Parse the JSON data if available\n                        const parsedData = jsonData ? JSON.parse(jsonData) : {};\n\n                        // Get email if available\n                        const emailElement = document.getElementById(\"feedbackEmail\");\n                        const email = emailElement ? emailElement.value.trim() || null : null;\n\n                        var feedbackData = {\n                            vote: document.getElementById(\"thumbsUpBtn\").style.color === \"darkgreen\" ? 1 : 0,\n                            comments: document.getElementById(\"commentInput\").querySelector('textarea').value,\n                            path: window.location.pathname,\n                            requestType: \"pageQuality\",\n                            type: \"doc\"\n                        };\n\n                        // Adding the email to the comment since readme changed the api to not accept email\n                        if (email) {\n                            feedbackData.comments = email + \": \" + feedbackData.comments;\n                            feedbackData.email = email; // Doesn't seem to be used anymore by readme via the API\n                        }\n\n                        // Show success message immediately\n                        document.getElementById('successMessage').style.display = 'block';\n                        document.getElementById('commentInput').style.display = 'none';\n                        document.getElementById('submitButton').style.display = 'none';\n                        document.getElementById('thumbsOptions').style.display = 'none';\n\n                        // Send feedback to API\n                        fetch('https://developer.onetrust.com/onetrust/api-next/v2/versions/1.0/metrics-proxy/create/thumb', {\n                            method: 'POST',\n                            headers: {\n                                'Content-Type': 'application/json',\n                            },\n                            body: JSON.stringify(feedbackData),\n                        })\n                            .then(response => {\n                                if (!response.ok) {\n                                    throw new Error('Network response was not ok');\n                                }\n                                return response.json();\n                            })\n                            .then(data => {\n                                console.log('Feedback submitted successfully');\n                            })\n                            .catch(error => {\n                                console.error('Error submitting feedback:', error);\n                            });\n\n                        // Reset after delay regardless of API response\n                        setTimeout(function () {\n                            resetRateExperience();\n                            populateLinks();\n                        }, 3000);\n\n                    } catch (error) {\n                        console.error('Error processing feedback:', error);\n                        resetRateExperience();\n                    }\n                });\n            }\n        }\n\n        // Function to toggle OneTrust container visibility\n        function toggleHelpContainer() {\n            console.log('Help button clicked');\n            var container = document.getElementById('onetrust-container');\n            if (!container) {\n                console.error('Container not found');\n                return;\n            }\n\n            if (container.style.display === 'none') {\n                fetchHighestComponentGroupStatus();\n                container.style.display = \"block\";\n                document.querySelector('.help-icon').innerHTML = '\u003ci class=\"fas fa-times\">\u003c/i>';\n                // Get the \u003cscript> element by its id\n                const scriptElement = document.getElementById(\"hub-me\");\n                // Get the value of the data-json attribute\n                const jsonData = scriptElement.getAttribute(\"data-json\");\n                // Parse the JSON data\n                const parsedData = JSON.parse(jsonData);\n                // Extract the email from the parsed data\n                const name = parsedData.user?.name;\n                const email = parsedData.user?.email;\n                if (name) {\n                    const firstName = name.match(/^(\\S+)/)[1];\n                    // Updating the greeting message with the first name\n                    document.getElementById(\"greeting-name\").textContent = \"👋 Hi, \" + firstName + \"!\";\n                    document.getElementById(\"voteNewFeatures\").onclick = function () {\n                        window.open('https://ideas.onetrust.com/portal_session/new?email=' + encodeURIComponent(email), '_blank');\n                    };\n                }\n                if (email) {\n                    // Updating the email field with user's email \n                    document.getElementById(\"feedbackEmail\").value = email;\n                }\n                populateLinks();\n            } else {\n                resetRateExperience();\n                container.style.display = \"none\";\n                document.querySelector('.help-icon').innerHTML = '\u003ci class=\"fas fa-question\">\u003c/i>';\n            }\n        }\n\n        async function sleep(ms) {\n            return new Promise(resolve => setTimeout(resolve, ms));\n        }\n\n        // Function to populate Links\n        async function populateLinks() {\n            // Populate Links to Display based on current page\n            const currentPath = window.location.pathname;\n            let links = {}\n            if (currentPath.includes('/onetrust/reference')) {\n                let moduleLinks = await getLinksfromSpec();\n                links = {\n                    \"Getting Started: OneTrust APIs\": \"https://developer.onetrust.com/onetrust/reference/quick-start-guide\",\n                    \"API Rate Limiting\": \"https://developer.onetrust.com/onetrust/reference/rate-limits-overview\",\n                    \"Implementing Pagination\": \"https://developer.onetrust.com/onetrust/reference/understanding-implementing-pagination\",\n                    \"Explore our LLMs.txt file – Help AI understand our docs smarter and faster\": \"https://developer.onetrust.com/onetrust/v1.0/llms.txt\"\n                };\n                links = moduleLinks ? Object.assign(links, moduleLinks) : links;\n            } else if (currentPath.includes('/onetrust/docs')) {\n                links = {\n                    \"Getting Started: OneTrust SDKs\": \"https://my.onetrust.com/s/article/UUID-0297af95-8515-28ff-6f86-0f489f3c3e54?topicId=0TO1Q000000wxmbWAA\",\n                    \"Server-Side CMP APIs\": \"https://developer.onetrust.com/onetrust/docs/server-side-cmp-api-introduction\",\n                    \"Third-Party Integration Guides\": \"https://developer.onetrust.com/onetrust/docs/add-script-to-website\",\n                    \"Explore our LLMs.txt file – Help AI understand our docs smarter and faster\": \"https://developer.onetrust.com/onetrust/v1.0/llms.txt\"\n                };\n            } else if (currentPath.includes('/onetrust/changelog')) {\n                links = {\n                    \"Release Notes\": \"https://my.onetrust.com/s/release-notes\",\n                    \"Scheduled Maintenance\": \"https://my.onetrust.com/s/article/Scheduled-Maintenance\",\n                    \"System Status\": \"https://my.onetrust.com/s/system-status\",\n                    \"Explore our LLMs.txt file – Help AI understand our docs smarter and faster\": \"https://developer.onetrust.com/onetrust/v1.0/llms.txt\"\n                };\n            } else if (currentPath.includes('/onetrust/recipes')) {\n                links = {\n                    \"Download API Specs\": \"https://developer.onetrust.com/onetrust/openapi\",\n                    \"Integrations Knowledge Base\": \"https://my.onetrust.com/s/topic/0TO1Q000000ItT9WAK/integrations\",\n                    \"Explore our LLMs.txt file – Help AI understand our docs smarter and faster\": \"https://developer.onetrust.com/onetrust/v1.0/llms.txt\"\n                };\n            } else if (currentPath.includes('/onetrust/page/partners')) {\n                links = {\n                    \"Integrations Knowledge Base\": \"https://my.onetrust.com/s/topic/0TO1Q000000ItT9WAK/integrations\",\n                    \"Getting Started: OneTrust APIs\": \"https://developer.onetrust.com/onetrust/reference/quick-start-guide\",\n                    \"API Rate Limiting\": \"https://developer.onetrust.com/onetrust/reference/rate-limits-overview\",\n                    \"Implementing Pagination\": \"https://developer.onetrust.com/onetrust/reference/understanding-implementing-pagination\",\n                    \"Explore our LLMs.txt file – Help AI understand our docs smarter and faster\": \"https://developer.onetrust.com/onetrust/v1.0/llms.txt\"\n                };\n            } else {\n                links = {\n                    \"Developer Forum\": \"https://my.onetrust.com/s/group/0F91Q000000hGyPSAU/developer-experience\",\n                    \"Explore our LLMs.txt file – Help AI understand our docs smarter and faster\": \"https://developer.onetrust.com/onetrust/v1.0/llms.txt\"\n                };\n            }\n\n            // Get the Links Div\n            const container = document.querySelector('.onetrust-floating-links');\n            // Iterate over the links object and create \u003ca> elements\n            Object.entries(links).forEach(([title, url]) => {\n                const a = document.createElement('a');\n                a.href = url;\n                a.target = '_blank';\n                a.textContent = title;\n                container.appendChild(a);\n            });\n        }\n        // Function to reset Rate your Experience button\n        function resetRateExperience() {\n            document.getElementById(\"rateExperienceBtn\").style.display = \"flex\";\n            document.getElementById(\"voteNewFeatures\").style.display = \"flex\";\n            document.getElementById(\"thumbsOptions\").style.display = \"none\";\n            document.getElementById(\"commentInput\").style.display = \"none\";\n            document.getElementById(\"submitButton\").style.display = \"none\";\n            document.getElementById(\"thumbsUpBtn\").blur();\n            document.getElementById(\"thumbsUpBtn\").style.color = \"currentcolor\";\n            document.getElementById(\"thumbsDownBtn\").style.color = \"currentcolor\";\n            document.getElementById(\"thumbsDownBtn\").blur();\n            document.getElementById(\"commentInput\").querySelector('textarea').value = \"\";\n            document.getElementById(\"otStatusAlert\").style.display = \"none\";\n            document.getElementById(\"successMessage\").style.display = \"none\";\n            const a = document.querySelectorAll('.onetrust-floating-links a');\n            a.forEach((link) => {\n                link.parentNode.removeChild(link);\n            });\n        }\n        async function fetchHighestComponentGroupStatus() {\n            const url = 'https://try.readme.io/https://onetruststatus-1564678085559.site24x7statusiq.com/sp/api/public/summary_details/statuspages/ap5x50QW8NIw4SPq2SZXYXycmr53nFVf_CF7exQFdPY=?period=27&timezone=America/Chicago';\n\n            try {\n                const response = await fetch(url, {\n                    headers: {\n                        \"Content-Type\": \"application/json\",\n                    }, referrerPolicy: \"origin\" // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url\n                });\n                if (!response.ok) {\n                    throw new Error(`HTTP error! status: ${response.status}`);\n                }\n                const data = await response.json();\n                if (data.code !== 0 || !data.data || !data.data.current_status) {\n                    throw new Error('Unexpected response format');\n                }\n                // Extract componentgroup_status values and filter out undefined or non-numeric values\n                const statuses = data.data.current_status.map(status => status.componentgroup_status).filter(status => typeof status === 'number' && !isNaN(status));\n                // Get the highest status, default to -Infinity if no valid statuses are found\n                const highestStatus = statuses.length > 0 ? Math.max(...statuses) : -Infinity;\n                if (highestStatus > 2) { //1: Good, 2: Info, 3: Maint, etc. \n                    document.getElementById(\"otStatusAlert\").style.display = \"block\";\n                }\n                return highestStatus;\n            } catch (error) {\n                console.error('Error fetching data:', error);\n            }\n        }\n\n\n        // Start Thumb Voting Spam HONEYPOT\n        document.addEventListener(\"DOMContentLoaded\", function () {\n            const observer = new MutationObserver(function () {\n                const commentTextarea = document.querySelector(\".PageThumbs-comment_input\");\n                const voteButton = document.querySelector(\".PageThumbs-comment_submit\");\n\n                // Function to evaluate the state of the form\n                const evaluateFormState = () => {\n                    const honeypot = document.querySelector(\n                        'input[name=\"commentConfirmationRequired\"]'\n                    );\n                    if (honeypot && voteButton) {\n                        // Disable the button if the honeypot is filled or the comment box is empty\n                        voteButton.disabled =\n                            commentTextarea.value.trim() === \"\" || honeypot.value.trim() !== \"\";\n                    }\n                };\n\n                if (commentTextarea && voteButton) {\n                    // If both elements exist, proceed with the rest of the code\n\n                    // Change the entire comment prompt to \"Please comment to vote\"\n                    const commentLabel = commentTextarea\n                        .closest(\".Box2uBHSWG8DzPz\")\n                        .querySelector(\"label\");\n                    if (commentLabel) {\n                        commentLabel.childNodes.forEach((node) => {\n                            if (node.nodeType === Node.TEXT_NODE) {\n                                node.nodeValue = \"Please comment to vote\";\n                            }\n                        });\n                    }\n\n                    // Continuously monitor and enforce the disabled state based on form conditions\n                    setInterval(evaluateFormState, 100);\n\n                    // Ensure the honeypot field is added only once\n                    if (\n                        !document.querySelector('input[name=\"commentConfirmationRequired\"]')\n                    ) {\n                        const honeypot = document.createElement(\"input\");\n                        honeypot.setAttribute(\"type\", \"text\");\n                        honeypot.setAttribute(\"name\", \"commentConfirmationRequired\");\n                        honeypot.style.opacity = \"0\";\n                        honeypot.style.position = \"absolute\";\n                        honeypot.setAttribute(\"tabindex\", \"-1\");\n                        commentTextarea.parentNode.insertBefore(\n                            honeypot,\n                            commentTextarea.nextSibling\n                        );\n                    }\n\n                    // Evaluate form state on input\n                    commentTextarea.addEventListener(\"input\", evaluateFormState);\n                    document\n                        .querySelector('input[name=\"commentConfirmationRequired\"]')\n                        .addEventListener(\"input\", evaluateFormState);\n\n                    // Double-check before submission\n                    const form = voteButton.closest(\"form\");\n                    if (form) {\n                        form.addEventListener(\"submit\", function (event) {\n                            evaluateFormState(); // Ensure the form state is evaluated one last time before submission\n                            if (voteButton.disabled) {\n                                event.preventDefault(); // Prevent form submission if conditions are not met\n\n                            }\n                        });\n                    }\n                }\n            });\n\n            observer.observe(document.body, { childList: true, subtree: true });\n        });\n\n        /* Disabling for now since its taking out the emails, if we get spam, we will enable \n        // Thumb Voting Spam METRICS\n        document.addEventListener(\"DOMContentLoaded\", function () {\n          // Check if fetch has already been overridden to avoid multiple overrides\n          if (window.fetch.isOverridden) return;\n        \n          // Save the original fetch function\n          const originalFetch = window.fetch;\n        \n          // Override fetch to intercept requests\n          window.fetch = async (input, init) => {\n            // Check if the request matches the voting endpoint\n            if (typeof input === 'string' && input.includes('/metrics-proxy/create/thumb')) {\n              try {\n                // Check if it's a POST request with a JSON body\n                if (init && init.method === 'POST' && init.body) {\n                  const payload = JSON.parse(init.body);\n        \n                  // Retrieve the actual comment text from the text input field on the page\n                  const commentTextarea = document.querySelector(\".PageThumbs-comment_input\");\n                  console.log(commentTextarea);\n                  const actualComment = commentTextarea ? commentTextarea.value.trim() : \"\";\n                  console.log(actualComment);\n        \n                  // Define patterns for known spam and injection attempts\n                  const suspiciousPatterns = [\n                    /\u003cscript.*?>|\u003c\\/.*?>/i, // HTML tags or any closing tags\n                    /DBMS_PIPE|PG_SLEEP|waitfor delay|sleep|sysdate/i, // SQL injection and delay keywords\n                    /['\";|&@$%\u003c>]/, // Special characters common in injection attacks\n                    /[\\'\\\"]{2,}/, // Multiple consecutive quotes (e.g., '' or \"\")\n                    /^\\s*✅ VERIFIED\\s*$/ // Matches exactly \"✅ VERIFIED\"\n                  ];\n        \n                  // Check for suspicious patterns\n                  const isSuspicious = suspiciousPatterns.some((pattern) => pattern.test(actualComment));\n                  if (isSuspicious) {\n                    console.warn(\"Blocked suspicious submission due to spam/injection pattern.\");\n                    return; // Cancel the fetch by returning early\n                  }\n        \n                  // Apply conditional verification based on actual comment field content\n                  if (actualComment !== \"\") {\n                    // If there's a non-empty comment in the input, append \" | ✅ APPROVED\"\n                    payload.comments = actualComment + \" | ✅ APPROVED\";\n                    console.log(payload.comments);\n                  } else {\n                    // If comments are empty, log and cancel the fetch\n                    console.warn(\"Blocked submission due to empty comment.\");\n                    return; // Cancel the fetch by returning early\n                  }\n        \n                  // Fallback: if payload.comments is empty after all checks, mark as \"❌ UNVERIFIED\"\n                  if (!payload.comments || payload.comments.trim() === \"\") {\n                    payload.comments = \"❌ UNVERIFIED\";\n                  }\n        \n                  // Replace the original body with the modified payload\n                  init.body = JSON.stringify(payload);\n                }\n              } catch (error) {\n                console.error(\"Error modifying payload:\", error);\n              }\n            }\n        \n            // Proceed with the original fetch function using the (potentially modified) init\n            return originalFetch(input, init);\n          };\n        \n          // Mark fetch as overridden\n          window.fetch.isOverridden = true;\n        });\n        */\n        // End Thumb Voting Spam HONEYPOT\n\n        // Initialize the help widget when the page loads\n        window.addEventListener('DOMContentLoaded', initHelpWidget);\n\n        // Fallback initialization in case DOMContentLoaded already fired\n        if (document.readyState === 'complete' || document.readyState === 'interactive') {\n            console.log('Document already loaded, initializing help widget now');\n            setTimeout(initHelpWidget, 1000);\n        }\n\n        // Add a global click handler as another fallback\n        document.addEventListener('click', function (e) {\n            if (e.target.closest('#helpButton')) {\n                console.log('Help button clicked via global handler');\n                toggleHelpContainer();\n            }\n        });","html_promo":"","html_body":"","html_footer":"\u003cfooter class=\"ot-footer\" aria-hidden=\"false\">\n  \u003cdiv class=\"ot-footer-container ot-footer-text-color--white\">\n    \u003cdiv class=\"ot-footer-content ot-footer-padding-right-64 ot-footer-padding-left-64\">\n      \u003cdiv class=\"ot-footer-separator\">\n        \u003chr class=\"ot-footer-separator__horizontal-rule ot-footer-separator__spacing--large\">\n      \u003c/div>\n      \u003cdiv class=\"ot-footer-separator\">\n        \u003chr class=\"ot-footer-separator__horizontal-rule ot-footer-separator__spacing--large\">\n      \u003c/div>\n      \u003cdiv class=\"ot-footer-links\">\n        \u003cdiv class=\"ot-footer-links_content\">\n          \u003cdiv class=\"ot-footer-links-block\">\n            \u003cdiv class=\"ot-footer-font-weight-thin\">Getting Started\u003c/div>\n            \u003cul class=\"ot-footer-list\">\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://developer.onetrust.com/onetrust/reference/quick-start-guide\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Quick Start Guide: APIs\u003c/span>\u003c/a>\u003c/li>\n                    \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://developer.onetrust.com/onetrust/docs/onetrust-sdk-reference\">\u003cspan\n                    class=\"ot-footer-list__item-title\">SDK Reference\u003c/span>\u003c/a>\u003c/li>\n                    \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://developer.onetrust.com/onetrust/recipes\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Recipes\u003c/span>\u003c/a>\u003c/li>\n                    \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://developer.onetrust.com/onetrust/changelog\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Changelog\u003c/span>\u003c/a>\u003c/li>\n                    \n            \u003c/ul>\n          \u003c/div>\n          \u003cdiv class=\"ot-footer-links-block\">\n            \u003cdiv class=\"ot-footer-font-weight-thin\">Knowledge Base\u003c/div>\n            \u003cul class=\"ot-footer-list\">\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/topiccatalog\">\u003cspan class=\"ot-footer-list__item-title\">Articles\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/documents\">\u003cspan class=\"ot-footer-list__item-title\">Documents\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/group/0F91Q000000hGyPSAU\">\u003cspan class=\"ot-footer-list__item-title\">Developer Forum\u003c/span>\u003c/a>\u003c/li>\n            \u003c/ul>\n          \u003c/div>\n          \u003cdiv class=\"ot-footer-links-block\">\n            \u003cdiv class=\"ot-footer-font-weight-thin\">Help Options\u003c/div>\n            \u003cul class=\"ot-footer-list\">\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/contactsupport\">\u003cspan class=\"ot-footer-list__item-title\">Help\n                    Options\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/case/Case/Default\">\u003cspan class=\"ot-footer-list__item-title\">View My\n                    Cases\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/system-status\">\u003cspan class=\"ot-footer-list__item-title\">System\n                    Status\u003c/span>\u003c/a>\u003c/li>\n            \u003c/ul>\n          \u003c/div>\n        \u003c/div>\n        \u003cdiv class=\"ot-footer-links_content\">\n          \u003cdiv class=\"ot-footer-links-block\">\n            \u003cdiv class=\"ot-footer-font-weight-thin\">OneTrust Seasonal Releases\u003c/div>\n            \u003cul class=\"ot-footer-list\">\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/article/UUID-6acbde09-4c77-1494-98b0-43aac83196ff\">\u003cspan\n                    class=\"ot-footer-list__item-title\">OneTrust\n                    Seasonal Releases\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/release-notes\">\u003cspan class=\"ot-footer-list__item-title\">Release\n                    Notes\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/article/UUID-20d037bc-96c1-e6f2-28ea-2c892a25483e\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Release\n                    Videos\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/article/Scheduled-Maintenance\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Scheduled\n                    Maintenace\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/https://podcast.onetrust.com/\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Talks Tech\n                    Podcast\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/article/UUID-8ee8e008-2561-dd9e-73c7-cd5d21af75bf\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Known Defect\n                    Database\u003c/span>\u003c/a>\u003c/li>\n            \u003c/ul>\n          \u003c/div>\n          \u003cdiv class=\"ot-footer-links-block\">\n            \u003cdiv class=\"ot-footer-font-weight-thin\">Consumer Resources\u003c/div>\n            \u003cul class=\"ot-footer-list\">\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/customer-resources\">\u003cspan class=\"ot-footer-list__item-title\">Consumer\n                    Resources\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://ideas.onetrust.com/\">\u003cspan class=\"ot-footer-list__item-title\">Idea\n                    Exchange\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://www.onetrust.com/news/\">\u003cspan class=\"ot-footer-list__item-title\">OneTrust\n                    News\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://developer.onetrust.com/onetrust/docs/taking-a-onetrust-hands-on-lab\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Hands-On\n                    Labs\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://www.onetrust.com/partners/\">\u003cspan class=\"ot-footer-list__item-title\">OneTrust\n                    Partner List\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://www.onetrust.com/resources/?resource-type=webinar\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Product\n                    Webinars\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://www.onetrust.com/certifications/\">\u003cspan class=\"ot-footer-list__item-title\">Training\n                    &amp; Certifications\u003c/span>\u003c/a>\u003c/li>\n            \u003c/ul>\n          \u003c/div>\n        \u003c/div>\n      \u003c/div>\n      \u003cdiv class=\"ot-footer-separator\">\n        \u003chr class=\"ot-footer-separator__horizontal-rule ot-footer-separator__spacing--large\">\n      \u003c/div>\n      \u003cdiv class=\"ot-footer-separator\">\n        \u003chr class=\"ot-footer-separator__horizontal-rule ot-footer-separator__spacing--large\">\n      \u003c/div>\n      \u003cdiv class=\"ot-footer-privacy-container\">\n        \u003cdiv class=\"ot-footer-privacy ot-footer-padding-left-40 ot-footer-padding-bottom-16\">\n          \u003cdiv class=\"ot-footer-separator\">\n            \u003chr class=\"ot-footer-separator__horizontal-rule ot-footer-separator__spacing--medium\">\n          \u003c/div>\n          \u003cdiv>\n            \u003ch2 class=\"ot-footer-title__text\">Privacy Matters\u003c/h2>\n            \u003ch4>\u003cspan class=\"ot-footer-body-1 ot-footer-font-weight-light ot-footer-height-38\">Our privacy center makes\n                it easy to see how\u003cbr>we collect and use your information.\u003c/span>\u003c/h4>\n          \u003c/div>\n          \u003cdiv class=\"ot-footer-separator\">\n            \u003chr class=\"ot-footer-separator__horizontal-rule ot-footer-separator__spacing--small\">\n          \u003c/div>\n          \u003cdiv class=\"ot-footer-links\">\n            \u003cdiv class=\"ot-footer-links-block ot-footer-flex-direction ot-footer-padding-right-32\">\n              \u003cdiv class=\"ot-footer-font-weight-light\">Your privacy\u003c/div>\n              \u003cp>\u003cspan class=\"ot-footer-font-weight-light\">When we\n                  collect your personal information, we always inform you of your rights\n                  and make it easy for you to exercise them. Where possible, we also let\n                  you manage your preferences about how much information you choose to\n                  share with us, or our partners.\u003c/span>\u003c/p>\n              \u003cdiv class=\"ot-footer-separator\">\n                \u003chr class=\"ot-footer-separator__horizontal-rule ot-footer-separator__spacing--small\">\n              \u003c/div>\n              \u003cp>\u003cspan class=\"ot-footer-text\">© 2026\n                  OneTrust, LLC. All Rights Reserved.\u003c/span>\u003c/p>\n            \u003c/div>\n            \u003cdiv class=\"ot-footer-links-block\">\n              \u003cdiv class=\"ot-footer-links-block ot-footer-flex-direction\">\n                \u003cdiv class=\"ot-footer-font-weight-thin\">Privacy Overview\u003c/div>\n                \u003cul class=\"ot-footer-list\">\n                  \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                      href=\"https://www.onetrust.com/privacy/\">\u003cspan class=\"ot-footer-list__item-title\">Privacy\n                        Overview\u003c/span>\u003c/a>\u003c/li>\n                  \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                      href=\"https://www.onetrust.com/privacy-notice/\">\u003cspan class=\"ot-footer-list__item-title\">Privacy\n                        Notice\u003c/span>\u003c/a>\u003c/li>\n                  \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                      href=\"https://www.onetrust.com/cookie-policy/\">\u003cspan class=\"ot-footer-list__item-title\">Cookie\n                        Notice\u003c/span>\u003c/a>\u003c/li>\n                  \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                      href=\"https://developer.onetrust.com/onetrust/page/cookie-list\">\u003cspan\n                        class=\"ot-footer-list__item-title\">Cookie List\u003c/span>\u003c/a>\u003c/li>\n                \u003c/ul>\n              \u003c/div>\n              \u003cdiv class=\"ot-footer-links-block ot-footer-flex-direction\">\n                \u003cdiv class=\"ot-footer-font-weight-thin\">Exercise Your Rights\u003c/div>\n                \u003cul class=\"ot-footer-list\">\n                  \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                      href=\"https://privacyportal-cdn.onetrust.com/dsarwebform/37bcc497-a196-48f1-a08b-e897b5a77859/08a01c64-41fd-4b4e-9d42-cde44371a422.html\">\u003cspan\n                        class=\"ot-footer-list__item-title\">Exercise Your Rights\u003c/span>\u003c/a>\u003c/li>\n                  \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                      href=\"https://trustcenter-privacy.my.onetrust.com/ui/#/preferences/multipage/login/2013df68-fd2a-4de0-89ff-973214c626b1\">\u003cspan\n                        class=\"ot-footer-list__item-title\">Manage Your Comunication\u003c/span>\u003c/a>\u003c/li>\n                  \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                      href=\"https://trustcenter-privacy.my.onetrust.com/ui/#/preferences/multipage/login/2013df68-fd2a-4de0-89ff-973214c626b1\">\u003cspan\n                        class=\"ot-footer-list__item-title\">Prefereces\u003c/span>\u003c/a>\u003c/li>\n                \u003c/ul>\n              \u003c/div>\n            \u003c/div>\n          \u003c/div>\n        \u003c/div>\n      \u003c/div>\n    \u003c/div>\n  \u003c/div>\n\u003c/footer>\n\u003chead>\n\n\n\n\n    \u003cstyle>\n        /* Floating button */\n        .onetrust-floating-button {\n            position: fixed;\n            bottom: 20px;\n            right: 20px;\n            background: linear-gradient(to top, #4F9D81, #6672C4);\n            color: #fff;\n            width: 60px;\n            height: 60px;\n            border-radius: 50%;\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            cursor: pointer;\n            transition: transform ease-out 0.1s, background 0.2s;\n            transition: background-color 0.3s, transform 0.3s;\n            z-index: 1000;\n            box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);\n        }\n\n        .onetrust-floating-button:hover {\n            background-color: #388e3c;\n            transform: scale(1.1);\n            cursor: pointer\n        }\n\n        /* Container */\n        #onetrust-container {\n            position: fixed;\n            bottom: 90px;\n            right: 30px;\n            width: 410px;\n            border-radius: 10px;\n            box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);\n            z-index: 999;\n            overflow: hidden;\n            /* Ensure content does not overflow */\n        }\n\n        #onetrust-container>.onetrust-top {\n            background: linear-gradient(to top, #4F9D81, #6672C4);\n            color: #fff;\n            padding: 20px;\n            border-radius: 10px 10px 0 0;\n            position: relative;\n        }\n\n        #onetrust-container>.onetrust-bottom {\n            background-color: white;\n            padding: 20px;\n            border-radius: 0 0 10px 10px;\n        }\n\n        #onetrust-container>.onetrust-bottom::before {\n            content: \"\";\n            position: absolute;\n            top: -20px;\n            left: 0;\n            width: 100%;\n            height: 0px;\n            background-color: white;\n        }\n\n        #onetrust-container>.onetrust-top::after {\n            content: \"\";\n            position: absolute;\n            bottom: -20px;\n            left: 0;\n            width: 100%;\n            height: 0px;\n            background: transparent;\n        }\n\n        .onetrust-floating-header {\n            display: flex;\n            align-items: center;\n            justify-content: space-between;\n            padding-bottom: 10px;\n        }\n\n        .onetrust-floating-header h1 {\n            color: #fff;\n            font-size: 20px;\n        }\n\n        .onetrust-floating-greeting {\n            color: #fff;\n            font-size: 28px;\n            font-weight: bold;\n        }\n\n        .onetrust-floating-links {\n            margin-top: 20px;\n            color: #fff;\n        }\n\n        .onetrust-floating-links a {\n            display: list-item;\n            color: #fff;\n            margin-bottom: 5px;\n            text-decoration: none;\n            transition: color 0.3s;\n            margin-left: 30px;\n            font-size: 18px;\n        }\n\n        .onetrust-floating-links span {\n            margin-bottom: 10px;\n            display: block;\n            font-size: 18px;\n        }\n\n        .onetrust-floating-links a:hover {\n            text-decoration: underline\n        }\n\n        .onetrust-floating-buttons {\n            display: flex;\n            flex-direction: column;\n            text-align: left;\n        }\n\n        .onetrust-top {\n            max-height: 400px;\n            /* Set your desired maximum height */\n            overflow-y: auto;\n            /* Enable vertical scrolling */\n        }\n\n        .onetrust-button {\n            background-color: #fff;\n            color: #4F9D81;\n            border: 1px solid;\n            border-radius: 5px;\n            padding: 10px;\n            font-size: 16px;\n            margin-bottom: 10px;\n            display: flex;\n            align-items: center;\n            transition: background-color 0.3s;\n        }\n\n        .onetrust-button:hover {\n            background-color: #f1f1f1;\n            cursor: pointer;\n        }\n\n        .onetrust-button-span {\n            margin-left: 10px;\n            margin-right: 10px;\n            text-align: left;\n        }\n\n        i.onetrust-svg.fas {\n            font-size: xx-large;\n        }\n\n        i.onetrust-svg.fas.fa-lightbulb {\n            padding-left: 5px;\n            width: 1em;\n        }\n\n        svg.svg-inline--fa.fa-thumbs-up.fa-w-16 {\n            font-size: x-large;\n        }\n\n        svg.svg-inline--fa.fa-thumbs-down.fa-w-16 {\n            font-size: x-large;\n        }\n\n        span.onetrust-svg-inline.help-icon {\n            font-size: xx-large;\n        }\n\n        svg.onetrust-svg {\n            font-size: xx-large;\n        }\n\n        svg.svg-inline--fa.fa-lightbulb.onetrust-svg {\n            width: 1.2em;\n        }\n\n        /* Additional styles for thumbs up/down options */\n        .thumbs-options {\n            display: none;\n            justify-content: space-evenly;\n            align-items: center;\n            color: var(--slate);\n            /* Apply this rule through a CSS class */\n        }\n\n        .thumbs-options button {\n            border: none;\n            color: currentcolor;\n            margin-bottom: 0px;\n        }\n\n\n        .comment-input {\n            display: none;\n            margin-top: 10px;\n        }\n\n        .comment-input textarea {\n            width: 100%;\n            resize: vertical;\n            margin-top: 5px;\n            background: white;\n          \tcolor: var(--gray20);\n        }\n      \n        .PageThumbs-email_input {\n            width: 100%;\n            resize: vertical;\n            margin-top: 5px;\n            background: white;\n          \tcolor: var(--gray20);\n        }\n\n        .submit-btn {\n            display: none;\n            margin-top: 10px;\n            font-weight: bold;\n        }\n\n        .alert-icon {\n            position: absolute;\n            top: 35px;\n            right: 35px;\n            font-size: 25px;\n            color: white;\n            animation: pulsate 1.5s infinite;\n        }\n\n        .alert-icon:hover {\n            cursor: pointer;\n        }\n\n        @keyframes pulsate {\n            0% {\n                transform: scale(1);\n            }\n\n            50% {\n                transform: scale(1.3);\n            }\n\n            100% {\n                transform: scale(1);\n            }\n        }\n    \u003c/style>\n\u003c/head>\n\n\u003cbody>\n    \u003c!-- Floating button with help icon -->\n    \u003cdiv class=\"onetrust-floating-button\" id=\"helpButton\">\n        \u003cspan class=\"onetrust-svg-inline help-icon\">\u003ci class=\"fas fa-question\">\u003c/i>\u003c/span>\n    \u003c/div>\n    \u003c!-- OneTrust container -->\n    \u003cdiv id=\"onetrust-container\" style=\"display: none;\">\n        \u003cdiv class=\"onetrust-top\">\n            \u003ca id=\"otStatusAlert\" style=\"display: none;\"\n                href=\"https://onetruststatus-1564678085559.site24x7statusiq.com/\" target=\"_blank\">\u003ci\n                    class=\"fas fa-triangle-exclamation alert-icon\">\u003c/i>\u003c/a>\n            \u003cdiv class=\"onetrust-floating-header\">\n            \u003c/div>\n            \u003cdiv class=\"onetrust-floating-greeting\">\n                \u003cspan id=\"greeting-name\" style=\"padding-bottom:10px\">👋 Hi there!\u003c/span>\u003cbr>\u003cbr>\n                \u003cspan style=\"font-size:23px\">Start Learning.\u003c/span>\n                \u003cspan style=\"font-size:23px\">Start Building.\u003c/span>\n                \u003cspan style=\"font-size:23px\">Start Launching! 🚀\u003c/span>\n            \u003c/div>\n            \u003cdiv class=\"onetrust-floating-links\">\n                \u003cspan>These resources can help you get started:\u003c/span>\n\n            \u003c/div>\n        \u003c/div>\n        \u003cdiv class=\"onetrust-bottom\">\n            \u003cdiv class=\"onetrust-floating-buttons\">\n                \u003cbutton class=\"onetrust-button\" id=\"rateExperienceBtn\">\n                    \u003cspan class=\"onetrust-button-span\">\u003ci class=\"onetrust-svg fas fa-star\">\u003c/i>\u003c/span>\n                    \u003cspan class=\"onetrust-button-span\">\u003cstrong>Rate your Experience\u003c/strong>\u003cbr>\u003csmall>Share overall\n                            feedback\u003c/small>\u003c/span>\n                \u003c/button>\n                \u003cdiv class=\"thumbs-options\" id=\"thumbsOptions\">\n                    \u003cspan>\u003cstrong>Did this page help you?\u003c/strong>\u003c/span>\u003cbr>\u003cbr>\n                    \u003cbutton class=\"onetrust-button\" id=\"thumbsUpBtn\">\u003ci class=\"onetrust-svg fas fa-thumbs-up\">\u003c/i>\u003cspan\n                            class=\"onetrust-button-span\">Yes\u003c/span>\u003c/button>\n                    \u003cbutton class=\"onetrust-button\" id=\"thumbsDownBtn\">\u003ci\n                            class=\"onetrust-svg fas fa-thumbs-down\">\u003c/i>\u003cspan\n                            class=\"onetrust-button-span\">No\u003c/span>\u003c/button>\n                \u003c/div>\n                \u003cdiv class=\"comment-input\" id=\"commentInput\">\n                   \u003cinput id=\"feedbackEmail\"\n                        class=\"Input Input_md Input_touched PageThumbs-email_input\"\n                        placeholder=\"Optional: Provide your email for a response\">\u003c/input>\n                    \u003ctextarea id=\"feedbackTextarea\"\n                        class=\"Textarea Textarea_md Textarea_vertical PageThumbs-comment_input\"\n                        placeholder=\"Please provide additional comments...\">\u003c/textarea>\n                    \u003cspan class=\"onetrust-button-span\" id=\"commentError\" style=\"color: darkred; display: none;\">Please\n                        enter your feedback.\u003c/span>\n                    \u003cspan class=\"onetrust-button-span\" id=\"successMessage\"\n                        style=\"color: darkgreen; display: none;\">Feedback submitted\n                        successfully!\u003c/span>\n                \u003c/div>\n                \u003cbutton class=\"submit-btn onetrust-button\" id=\"submitButton\">Submit Feedback\u003c/button>\n                \u003cbutton class=\"onetrust-button\" id=\"voteNewFeatures\"\n                    onclick=\"window.open('https://ideas.onetrust.com','_blank');\" type=\"button\">\n                    \u003cspan class=\"onetrust-button-span\">\u003ci class=\"onetrust-svg fas fa-lightbulb\">\u003c/i>\u003c/span>\n                    \u003cspan class=\"onetrust-button-span\">\u003cstrong>Vote on New Features\u003c/strong>\u003cbr>\u003csmall>Have a say in\n                            what we build\n                            next\u003c/small>\u003c/span>\n                \u003c/button>\n\n            \u003c/div>\n        \u003c/div>\n    \u003c/div>\n\u003c/body>\n\n\u003c/html>","html_head":"\u003c!--\u003cmeta http-equiv=\"Content-Security-Policy\" content=\"block-all-mixed-content ; default-src 'self'; script-src 'self' 'report-sample' 'unsafe-inline' 'unsafe-eval' geolocation.onetrust.com privacyportal.onetrust.com cdn.cookielaw.org cdn.readme.io github.com unpkg.com cdn.onetrust.com *.wistia.com *.wistia.net *.litix.io cdnjs.cloudflare.com *.onetrust.com; style-src 'self' 'unsafe-inline' fonts.gstatic.com fonts.googleapis.com cdn.lineicons.com cdnjs.cloudflare.com cdn.readme.io unpkg.com fast.wistia.com *.onetrust.com; object-src 'none'; frame-src 'self' cdn.embedly.com fast.wistia.com fast.wistia.net *.onetrust.com; child-src 'self' *.wistia.com *.onetrust.com; img-src 'self' data: blob: cdn.cookielaw.org *.pstmn.io files.readme.io unpkg.com img.shields.io *.onetrust.com *.wistia.com *.wistia.net embedwistia-a.akamaihd.net *.onetrust.com; font-src 'self' data: cdnjs.cloudflare.com fonts.gstatic.com fonts.googleapis.com cdn.lineicons.com cdn.readme.io unpkg.com *.wistia.com *.onetrust.com; connect-src 'self' geolocation.onetrust.com privacyportal.onetrust.com cdn.cookielaw.org *.onetrust.com try.readme.io *.ingest.sentry.io *.algolianet.com *.algolia.net *.algolia.io *.wistia.com *.wistia.net embedwistia-a.akamaihd.net embed-e.wistia.com *.litix.io; manifest-src 'self'; base-uri 'self'; form-action 'self'; media-src 'self' *.wistia.net *.wistia.com embedwistia-a.akamaihd.net; worker-src 'self';\">-->\n\u003cmeta http-equiv=\"Content-Security-Policy\" content=\"block-all-mixed-content; default-src 'self'; script-src 'self' 'report-sample' 'unsafe-inline' 'unsafe-eval' geolocation.onetrust.com privacyportal.onetrust.com cdn.cookielaw.org cdn.readme.io github.com unpkg.com cdn.onetrust.com *.wistia.com *.wistia.net *.litix.io cdnjs.cloudflare.com *.onetrust.com; style-src 'self' 'unsafe-inline' fonts.gstatic.com fonts.googleapis.com cdn.lineicons.com cdnjs.cloudflare.com cdn.readme.io unpkg.com fast.wistia.com *.onetrust.com; object-src 'none'; frame-src 'self' *.readme.com *.readme.io cdn.embedly.com fast.wistia.com fast.wistia.net *.onetrust.com; child-src 'self' *.wistia.com *.onetrust.com; img-src 'self' data: blob: cdn.cookielaw.org *.pstmn.io files.readme.io unpkg.com img.shields.io *.onetrust.com *.wistia.com *.wistia.net embedwistia-a.akamaihd.net *.onetrust.com; font-src 'self' data: cdnjs.cloudflare.com fonts.gstatic.com fonts.googleapis.com cdn.lineicons.com cdn.readme.io unpkg.com *.wistia.com *.onetrust.com; connect-src 'self' geolocation.onetrust.com privacyportal.onetrust.com cdn.cookielaw.org *.onetrust.com *.readme.io *.readme.com *.ingest.sentry.io *.algolianet.com *.algolia.net *.algolia.io *.wistia.com *.wistia.net embedwistia-a.akamaihd.net embed-e.wistia.com *.litix.io; manifest-src 'self'; base-uri 'self'; form-action 'self'; media-src 'self' *.wistia.net *.wistia.com embedwistia-a.akamaihd.net *.readme.io; worker-src 'self'; frame-ancestors 'self' cdn.readme.io *.readme.io *.readme.com *.onetrust.com;\">\n\u003c!-- OneTrust Cookies Consent Notice start for developer.onetrust.com -->\n\u003cscript src=\"https://cdn.cookielaw.org/consent/018f9b70-7823-7874-9581-b4ecf0e526a2/otSDKStub.js\"  type=\"text/javascript\" charset=\"UTF-8\" data-domain-script=\"018f9b70-7823-7874-9581-b4ecf0e526a2\" >\u003c/script>\n\u003cscript type=\"text/javascript\">\nfunction OptanonWrapper() { }\n\u003c/script>\n\u003c!-- OneTrust Cookies Consent Notice end for developer.onetrust.com -->\n\u003clink href=\"https://fonts.googleapis.com/css?family=Open+Sans\" rel=\"stylesheet\">\n\u003clink rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Rubik:400,400i,500\">\n\u003clink rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Poppins:400,500,600\">\n\u003clink href=\"https://cdn.lineicons.com/4.0/lineicons.css\" rel=\"stylesheet\" />\n\u003c!-- Google Site Verication -->\n\u003cmeta name=\"google-site-verification\" content=\"uKX18lBpCRTZkC5CvXhQfZ4NFHBxaWgJmrJNopgj6KA\" />\n\u003cdiv id=\"brave-warning\" class=\"Banner2qY-Hhfqm_Gx Banner_secondary1reFai47T0j4 Banner_smUPcJRlth4_Dl Banner_fixeda1mFpjcc1TJ6\" style=\"display:none\">\u003ci class=\"icon-warning\">\u003c/i>We've detected that you are using the Brave browser. This site does not display correctly when the Brave Shields are enabled. Please set your Shields to Down.\u003c/div>\n\u003clink href='https://fonts.googleapis.com/css?family=Open Sans' rel='stylesheet'>","html_footer_meta":"","html_hidelinks":false,"showVersion":false,"hideTableOfContents":false,"nextStepsLabel":"","promos":[{"extras":{"type":"search","buttonPrimary":"get-started","buttonSecondary":"reference"},"title":"Welcome to the OneTrust Developer Portal","text":"The OneTrust Developer Portal allows you to leverage APIs and SDKs to seamlessly integrate external systems and streamline the flow of data with the OneTrust platform.","_id":"620d23a442d78f05786a49c6"}],"loginLogo":[],"logo_large":false,"colorScheme":"system","changelog":{"layoutExpanded":false,"showAuthor":false,"showExactDate":true},"allowApiExplorerJsonEditor":true,"ai_dropdown":"enabled","ai_options":{"chatgpt":"enabled","claude":"enabled","clipboard":"enabled","view_as_markdown":"enabled","copilot":"enabled","perplexity":"enabled","ask_ai":"disabled","mcp":{"command":"enabled","config":"enabled","cursor":"enabled","vscode":"enabled"}},"showPageIcons":true,"layout":{"full_width":true,"style":"classic"},"methodBadgeStyle":"classic","showMethodInSidebar":true,"showBreadcrumbs":true,"collapsibleCategories":true,"oneOfLayout":"dropdown"},"child":{"_id":"620d23a442d78f05786a49c4","accessRules":{"branch_merge":{"admin":true,"editor":false},"branch_approve":{"admin":true,"editor":false}},"ai":{"chat":{"knowledge":{"custom_knowledge":null,"use_project_knowledge":false},"models":[]},"discovery":{"enabled":true,"content_signal":{"ai_train":false,"search":false,"ai_input":false},"link_headers":true,"markdown_negotiation":true,"agent_hint_banner":true,"api_catalog":true,"agent_skills_index":true,"mcp_server_card":true,"webmcp":true,"oauth":{"type":"none","issuer_url":"","authorization_servers":[],"resource_identifier":"","scopes_supported":[]}}},"appearance":{"rdmd":{"callouts":{"useIconFont":false},"theme":{"background":"","border":"","markdownEdge":"","markdownFont":"","markdownFontSize":"","markdownLineHeight":"","markdownRadius":"","markdownText":"","markdownTitle":"","markdownTitleFont":"","mdCodeBackground":"","mdCodeFont":"","mdCodeRadius":"","mdCodeTabs":"","mdCodeText":"","tableEdges":"","tableHead":"","tableHeadText":"","tableRow":"","tableStripe":"","tableText":"","text":"","title":""}},"main_body":{"type":"links"},"colors":{"highlight":"","main":"#000000","main_alt":"#2C6145","header_text":"","body_highlight":"#2C6145","custom_login_link_color":"","body_highlight_dark":""},"typography":{"headline":"Open+Sans:400:sans-serif","body":"Open+Sans:400:sans-serif","typekit":false,"tk_key":"","tk_headline":"","tk_body":"","code":"","custom_heading":null,"custom_body":null,"custom_code":null,"spacing":null},"header":{"style":"solid","img":["https://files.readme.io/32e2a364828b6b166fdd52768a9ee523d5481289d3a9406df47108ba727edaad-myot-hero-background.svg","32e2a364828b6b166fdd52768a9ee523d5481289d3a9406df47108ba727edaad-myot-hero-background.svg",null,null,"#007cc0",null,"6942ed9682fc97a0bb01ce5f"],"img_size":"cover","img_pos":"tl","linkStyle":"buttons"},"body":{"style":"none"},"global_landing_page":{"html":"","redirect":""},"referenceSimpleMode":true,"referenceLayout":"row","link_logo_to_url":true,"theme":"solid","overlay":"triangles","landing":true,"sticky":false,"hide_logo":true,"childrenAsPills":false,"subheaderStyle":"links","splitReferenceDocs":false,"showMetricsInReference":false,"logo":["https://files.readme.io/f83b3a1d97917287a00a51d521682cab46c9329551a2a7413cf6dba86bcf2708-ot-logo-lockup-white.svg","f83b3a1d97917287a00a51d521682cab46c9329551a2a7413cf6dba86bcf2708-ot-logo-lockup-white.svg",null,null,"#000000",null,"69c14d85923a290549918164"],"logo_white":["https://files.readme.io/0df333c-small-OT-logo-white-transparent-1200px.png","OT-logo-white-transparent-1200px.png",453,80,"#ffffff","https://files.readme.io/697279d-OT-logo-white-transparent-1200px.png"],"logo_white_use":true,"favicon":["https://files.readme.io/40ffb5b-OT-favicon.ico","OT-favicon.ico",32,32,"#000000"],"stylesheet":"","stylesheet_hub2":"/*\n(OneTrust Logo White Image | 2026/03/23 09:29:13 | null x null)\nhttps://files.readme.io/0459ab07c12f3bd23da65e2652e71cb7def368d1fa9a127aa83145dbe79f3dff-ot-logo-lockup-white.svg\n*/\n/*\n(API Landing Platform from myOT Image | 2026/01/14 14:18:59 | 88 x 85)\nhttps://files.readme.io/c2798a8f6906986f4645aaac8b3b73f3853d6d06052d52b685d4c6891bcd4a56-platform_myOT.png\n*/\n/*\n(API Landing Platform from myOT Image | 2026/01/14 14:17:50 | 130 x 129)\nhttps://files.readme.io/cc29d7007540d1b93da235524b8c4be595da0c2fcec872ebd39f49265ce631a7-platform_myOT.png\n*/\n\n/*\n(API Landing Platform Image | 2026/01/13 22:58:43 | null x null)\nhttps://files.readme.io/0a9056427106a578ee67bafd0f635e6ddaff86685a89cb2a91964791eb9d7428-OT-graphic-platform-break-down-silos.svg\n*/\n/*\n(API Landing AI Governance Image | 2025/12/18 10:44:38 | null x null)\nhttps://files.readme.io/fb566c6921532531c0c047cf3715e47200fac2dc3a6193c6971701e9f450348d-ai-gov-icon.svg\n*/\n/*\n(API Landing Consent & Preferences Image | 2025/12/18 10:44:25 | null x null)\nhttps://files.readme.io/dae3449f736e828fd7e4d85dc096374c684d9ab9010c85a7a61503e3b8f2a988-icon-consent-and-preferences-gradient.svg\n*/\n/*\n(API Landing Data Use Governance Image | 2025/12/18 10:44:10 | null x null)\nhttps://files.readme.io/d475c8ee55b97fc7811fd59651c3a772f145f755e41144ed95aeccddf16fe8f7-icon-data-use-governance-gradient.svg\n*/\n/*\n(API Landing Privacy Automation Image | 2025/12/18 10:43:57 | null x null)\nhttps://files.readme.io/f568abf1056140b6ab8d3e119597ae4c200fef6b2c72e6710dd775d5736b5d29-icon-privacy-automation-gradient.svg\n*/\n/*\n(API Landing Tech Risk & Compliance Image | 2025/12/18 10:43:40 | null x null)\nhttps://files.readme.io/76a6ec610698a99ef27d4509b2a1a14400a17b53c4c4299b17538fca5fb7a175-icon-tech-risk-gradient.svg\n*/\n/*\n(API Landing Third-Party Management Image | 2025/12/18 10:43:05 | null x null)\nhttps://files.readme.io/b0ad89df2cbd93051e02edc4d8e4dff390af2148a19f14785ef1cfa1f1eeff19-icon-third-party-management-gradient.svg\n*/\n/*\n(Hero Background Image | 2025/12/17 11:15:00 | null x null)\nhttps://files.readme.io/7d6fd955d8d1e65a4ca4b5a24742445a04c34b276186724ceaeddd8e7133955b-myot-hero-background.svg\n*/\n/*\n(Landing Page Image | 2025/12/17 10:38:28 | 1248 x 1160)\nhttps://files.readme.io/2ba63e7e6b9148487dd574ce2ba6710d4e5c71913dbe0a75c792e8b3bcd0bd01-ot-graphic-hero-dev-portal_1.png\n*/\n/*\n(Hosted Image | 2025/12/17 10:18:26 | null x null)\nhttps://files.readme.io/a262709fc6f5f8d5233c260741f69ea15ec746dd560902818bc0c94d7dd3a7cc-OT-thumbnail-homepage-ai-governance-use-case-800x800.svg\n*/\n/*\n(Hosted Image | 2025/12/17 10:18:22 | null x null)\nhttps://files.readme.io/e7c59e179174c162f631a94691182a39ee0e1291f1ee06dcea5be27fe70c117b-OT-thumbnail-homepage-data-use-governance-icon-800-800.svg\n*/\n/*\n(Hosted Image | 2025/12/17 10:18:14 | null x null)\nhttps://files.readme.io/12fa03d4da5f7013f91774823aaa77cc7eb858c5b04f3a96fbf87e58253dca97-OT-thumbnail-homepage-first-party-data-consent-preferences-use-case-800x800.svg\n*/\n/*\n(Hosted Image | 2025/12/17 10:18:08 | null x null)\nhttps://files.readme.io/6f8b5f31da4433cff262494202abf2cbf6ddc50595da98c2836d2c60507c6f35-OT-thumbnail-homepage-first-party-data-consent-preferences-use-case-800x800.svg\n*/\n/*\n(Hosted Image | 2025/12/17 10:18:04 | null x null)\nhttps://files.readme.io/992191fb0844b92753f6582910c9e07822fecfe88d0135dd7420974aa8cee9bb-OT-thumbnail-homepage-third-party-management-use-case-800x800.svg\n*/\n/*\n(Hosted Image | 2025/12/17 10:17:55 | null x null)\nhttps://files.readme.io/67083efb1756e06d17267c00a68fd421b00641911d512a39245b0d1be3526372-OT-thumbnail-homepage-privacy-management-use-case-800x800.svg\n*/\n\n\n/* Bearer Token Only Mode */\nbutton.Button.Button_xs.APIAuth-oauth-footer-reauthorize3rGALj24H4ZX.Button_primary_ghost.Button_primary {\n    display: none;\n}\n\n/* Custom Scopes Pills */\n.custom-scopes {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n  margin-top: 12px;\n  padding: 8px 0;\n}\n\n.custom-scopes-label {\n  font-size: 12px;\n  font-weight: 600;\n  color: var(--color-text-muted, #6b7280);\n  width: 100%;\n  margin-bottom: 4px;\n}\n\n.scope-pill {\n  position: relative;\n  display: inline-flex;\n  align-items: center;\n  padding: 6px 12px;\n  font-size: 12px;\n  font-weight: 500;\n  font-family: monospace;\n  background: var(--color-bg-page, #f3f4f6);\n  color: var(--color-text-default, #374151);\n  border: 1px solid var(--color-border-default, #d1d5db);\n  border-radius: 16px;\n  cursor: default;\n  transition: all 0.15s ease;\n}\n\n.scope-pill:hover {\n  background: var(--color-primary, #2563eb);\n  color: white;\n  border-color: var(--color-primary, #2563eb);\n}\n\n\n/* Tooltip */\n.scope-pill .scope-tooltip {\n  position: absolute;\n  bottom: calc(100% + 8px);\n  left: 50%;\n  transform: translateX(-50%);\n  padding: 8px 12px;\n  background: var(--color-bg-tooltip, #1f2937);\n  color: white;\n  font-size: 11px;\n  font-family: inherit;\n  border-radius: 6px;\n  white-space: nowrap;\n  opacity: 0;\n  visibility: hidden;\n  transition: opacity 0.15s ease, visibility 0.15s ease;\n  z-index: 100;\n  max-width: 250px;\n  white-space: normal;\n  text-align: center;\n}\n\n.scope-pill .scope-tooltip::after {\n  content: '';\n  position: absolute;\n  top: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  border: 6px solid transparent;\n  border-top-color: var(--color-bg-tooltip, #1f2937);\n}\n\n.scope-pill:hover .scope-tooltip {\n  opacity: 1;\n  visibility: visible;\n}\n\n\n/* OneTrust Green Base */\n:root {\n  --onetrust-green: #50af51;\n  --onetrust-green-dark: #55a05e;\n}\n\n/* Update CSS for Cookie List Page */\n#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy #cookie-policy-title {\n    color: transparent!important;\n}\n/* System dark mode (user's OS prefers dark) */\n@media (prefers-color-scheme: dark) {\n  html[data-color-mode=\"system\"] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy :is(\n    h5, h6, li, p, a, span, td, #cookie-policy-description, .ot-sdk-cookie-policy-group\n  ) {\n    color: #fff !important;\n  }\n  html[data-color-mode=\"system\"] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a,\n  html[data-color-mode=\"system\"] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a:hover {\n    background: transparent;\n  }\n}\n/* Explicit ReadMe dark mode */\nhtml[data-color-mode=\"dark\"] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy :is(\n  h5, h6, li, p, a, span, td, #cookie-policy-description, .ot-sdk-cookie-policy-group\n) {\n  color: #fff !important;\n}\nhtml[data-color-mode=\"dark\"] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a,\nhtml[data-color-mode=\"dark\"] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a:hover {\n  background: transparent;\n}\n\n\n\n\n\n/* CSS for Recipe Support Statement */\nblockquote.callout.callout_warning.onetrust-custom-callout {\n    color: var(--slate);\n    --Callout-bg: #fcf8f2!important;\n}\n\n/* CSS for SDK Statement */\nblockquote.callout.callout_error.onetrust-custom-callout-cmp {\n    --Callout-bg: #fdf7f7!important;\n    --Callout-border: rgb(216.56875, 83.4, 78.93125);\n\n    /* BUGFIX: Ensure link renders black instead of white on light background so the link is visible */\n    a {\n        color: black !important;\n    }\n}\n\n/* CSS for OAS Migration Statement */\nblockquote.callout.callout_warning.onetrust-custom-callout-oas {\n    color: var(--slate);\n    --Callout-bg: #fcf8f2!important;\n}\n\n\n/* CSS to prevent Recipe Labels for cloud and lang to not be clickable */\nimg.ot-recipe-label {\n    pointer-events: none;\n}\n\n.TutorialCard-Description2yaRK8FfwVRG {\n    overflow: hidden!important;\n    display: -webkit-box!important;\n    -webkit-line-clamp: 8!important;\n    -webkit-box-orient: vertical!important;\n}\n\n.Avatar.Avatar_md.TutorialCard-Avatar2GqJCrkbnRPc.Avatar_emoji {\n    content-visibility: hidden;\n    display: none;\n}\n\n\n/* CSS for x-ontrust tags in API spec header */\n.ot-tags-container {\n    padding-left: 15px;\n    flex-shrink: 0;\n}\n.ot-tags {\n    -webkit-box-flex: 0;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    margin-right: 5px;\n    margin-top: 2px;\n  border-radius: var(--border-radius-lg);\n    -webkit-box-shadow: var(--box-shadow-pill);\n    box-shadow: var(--box-shadow-pill);\n    -webkit-box-sizing: border-box;\n    box-sizing: border-box;\n    color: #fff;\n    display: -webkit-inline-box;\n    display: -ms-inline-flexbox;\n    display: inline-flex;\n  flex-direction: row-reverse;\n    font-family: var(--font-family);\n    font-size: 12px;\n    font-weight: var(--font-weight-bold);\n    height: 20px;\n    -webkit-box-pack: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n    line-height: 20px;\n    padding-left: 8px;\n    padding-right: 8px;\n    text-align: center;\n    text-transform: uppercase;\n    white-space: nowrap;\n  \n}\n/* highly availible */\n.ot-tags-ha {\n    background: mediumpurple;\n    text-shadow: 1px 1px 0 rebeccapurple,0 1px 0 rebeccapurple,1px 0 0 rebeccapurple;\n}\n\n.ot-tags-ha:hover {\n    background: rebeccapurple;\n  \tcursor: pointer;\n}\n/* spec label */\n.ot-tags-sl {\n    background: gray;\n    text-shadow: 1px 1px 0 dimgray,0 1px 0 dimgray,1px 0 0 dimgray;\n}\n\n.ot-tags-sl:hover {\n    background: dimgray;\n  \tcursor: pointer;\n}\n/* release status */\n.ot-tags-rs {\n    background: tomato;\n    text-shadow: 1px 1px 0 firebrick,0 1px 0 firebrick,1px 0 0 firebrick;\n}\n\n/*\n.ot-tags-rs:hover {\n    background: firebrick;\n  \tcursor: pointer;\n}*/\n\n\n/* Suggested Edits Animation */\n.rm-Guides #content-head .col-xs-3 .icon {\n\tanimation: jump 0.8s infinite alternate;\n}\n\n/* Animation for Page Feedback - Thumbs Up/Down Icons */\n.PageThumbs-button .icon {\n  animation: jump 0.8s infinite alternate;\n  padding-right: 5px;\n}\n  /* For jumping animation */\n  @keyframes jump {\n    0% {\n      transform: translateY(0);\n    }\n    50% {\n      transform: translateY(-5px);\n    }\n    100% {\n      transform: translateY(0);\n    }\n  } \n\n/* Left Align All Text in Tables */\n\n.markdown-body table td, .markdown-body table th {\n    text-align: left !important;\n}\n\n/* Fix Space at Top while Loading */\n/*.rm-ReferenceMain .rm-Article {\n    display: block !important;\n}*/\n\n/* 404 Page Formatting */\n/* hides title for custom pages e.g. 404 page */\n.App .rm-CustomPage #content-head h1 {\n  display: none !important;\n}\n\n#notfound {\n  position: relative;\n  height: 100vh;\n}\n\n#notfound .notfound {\n  position: absolute;\n  left: 50%;\n  top: 30%;\n  -webkit-transform: translate(-50%, -50%);\n      -ms-transform: translate(-50%, -50%);\n          transform: translate(-50%, -50%);\n}\n\n.notfound {\n  max-width: 767px;\n  width: 100%;\n  line-height: 1.4;\n  text-align: center;\n  padding: 15px;\n}\n\n.notfound .notfound-404 {\n  position: relative;\n  height: 220px;\n}\n\n.notfound .notfound-404 h1 {\n  font-family: 'Kanit', sans-serif;\n  position: absolute;\n  left: 50%;\n  top: 50%;\n  -webkit-transform: translate(-50%, -50%);\n      -ms-transform: translate(-50%, -50%);\n          transform: translate(-50%, -50%);\n  font-size: 186px;\n  font-weight: 200;\n  margin: 0px;\n  background: linear-gradient(130deg, #2C6145, #55A05E);\n  color:transparent;\n  -webkit-background-clip: text;\n  background-clip: text;\n  text-transform: uppercase;\n}\n\n.notfound h2 {\n  font-family: 'Kanit', sans-serif;\n  font-size: 33px;\n  font-weight: 200;\n  text-transform: uppercase;\n  margin-top: 0px;\n  margin-bottom: 25px;\n  letter-spacing: 3px;\n}\n\n\n.notfound p {\n  font-family: 'Kanit', sans-serif;\n  font-size: 16px;\n  font-weight: 200;\n  margin-top: 0px;\n  margin-bottom: 25px;\n}\n\n\n.notfound a {\n  font-family: 'Kanit', sans-serif;\n  color: #55A05E;\n  font-weight: 200;\n  text-decoration: none;\n  border-bottom: 1px dashed #55A05E;\n  border-radius: 2px;\n}\n\n.notfound-social>a {\n  display: inline-block;\n  height: 40px;\n  line-height: 40px;\n  width: 40px;\n  font-size: 14px;\n  color: #2C6145;\n  border: 1px solid #2C6145;\n  border-radius: 50%;\n  margin: 3px;\n  -webkit-transition: 0.2s all;\n  transition: 0.2s all;\n}\n.notfound-social>a:hover {\n  color: #fff;\n  background-color: #55A05E;\n  border-color: #55A05E;\n}\n\n@media only screen and (max-width: 480px) {\n  .notfound .notfound-404 {\n    position: relative;\n    height: 168px;\n  }\n\n  .notfound .notfound-404 h1 {\n    font-size: 142px;\n  }\n\n  .notfound h2 {\n    font-size: 22px;\n  }\n}\n\n/* Full Width no Whitespace on Sides */\n\n:root {\n    --container: 1200px!important;\n    --container-lg: 98%!important;\n    --hub-main-max-width: 80%!important;\n    --hub-playground-width: 30%!important;\n    --hub-sidebar-width: 20%!important;\n\t  --hub-toc-width: 20%!important;\n  \t--hub-content-max-width: 100%!important;\n\n\n}\n\n.rm-Guides .content-body {\n    padding-right: 80px;\n}\n\n.Header-bottom2eLKOFXMEmh5 {\n    margin: auto;\n    width: 100%;\n    max-width: 100% !important;\n    padding: 5px;\n}\n\n.Header-topuTMpygDG4e1V {\n  border: none !important;\n}\n\n.rm-SearchToggle {\n    width: 300px !important;\n}\n\n/* Reordering Menu Items */\n.Header-leftADQdGVqx1wqU .Dropdown_toggle {\n    order: 1; /* v1.0 */\n}\n\n.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*=\"/onetrust/\"] {\n    order: 2; /* Home */\n}\n\n.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*=\"/onetrust/docs\"] {\n    order: 4; /* Documentation */\n}\n\n.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*=\"/onetrust/recipes\"] {\n    order: 5; /* Recipes */\n}\n\n.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*=\"/onetrust/reference\"] {\n    order: 3; /* API Reference */\n}\n\n.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*=\"/onetrust/changelog\"] {\n    order: 6; /* Changelog */\n}\n\n/* Set Font Family to match myOT */\n\n.App {\n  --font-family: 'Open Sans', sans-serif !important;\n}\n\n/* Set Color for Catagory Text to Green */\n\n.rm-Sidebar-heading {\n    color: #346E4A !important;\n}\n\n@media (prefers-color-scheme: dark) {\n  [data-color-mode=\"system\"] .rm-Sidebar-heading {\n    color: #55A05E !important;\n}}\n\n[data-color-mode=\"dark\"] .rm-Sidebar-heading {\n    color: #55A05E !important;\n}\n\n/* Styling for Tiles on Overview Pages */\n\n.ProductsWrapper {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    text-decoration: none;\n}\n\n.SDKWrapper {\n    display: flex;\n    flex-wrap: wrap;\n    text-decoration: none;\n}\n\n.ProductCard {\n    width: 45%;\n    margin: 10px;\n    padding: 15px;\n    border: 1px solid #ddd;\n    border-radius: 8px;\n    text-align: center;\n    text-decoration: none;\n    color: #333;\n    transition: box-shadow 0.3s;\n    position: relative;\n}\n\n.SDKCard {\n    width: 20%;\n    margin: 10px;\n    padding: 10px;\n    border: 1px solid #ddd;\n    border-radius: 8px;\n    text-align: center;\n    text-decoration: none;\n    color: #333;\n    transition: box-shadow 0.3s;\n    position: relative;\n}\n\n/* Light mode animated drop shadow */\n.ProductCard:hover {\n\t\tbox-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);\n    transform: translateY(-2px);}\n\n.SDKCard:hover {\n\t\tbox-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);\n    transform: translateY(-2px);}\n\n.ProductCard a {\n    text-decoration: none !important;\n    display: flex;\n    flex-direction: row;\n    align-items: flex-start;\n    justify-content: center;\n    height: 100%;\n}\n\n.SDKCard a {\n    text-decoration: none !important;\n    display: flex;\n    flex-direction: column !important;\n    align-items: center;\n    justify-content: center;\n    height: 100%;\n}\n\n.ProductCard img {\n    width: 80px;\n    height: 80px;\n    margin-bottom: 10px;\n    margin-right: 10px;\n}\n\n.SDKCard svg {\n    width: 95%;\n    height: 80px;\n    position: relative;\n    top: 40%;\n    -webkit-transform: translateY(-60%);\n    -ms-transform: translateY(-60%);\n    transform: translateY(-60%);\n    left: 0;\n    right: 0;\n    margin: auto;\n    text-align: center;\n}\n\n.ProductCard_dark_icon {\n    display: none !important;\n}\n\n.ProductCard_light_icon {\n    display: inline-block;\n}\n\n.ProductCard_text {\n    flex: 1;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n}\n\n.ProductCard h4 {\n    margin-top: 0;\n    margin-bottom: 0;\n    font-size: 1.1rem;\n    text-decoration: none;\n}\n\n.SDKCard h4 {\n    margin-top: 15px;\n    margin-bottom: 0;\n    font-size: 0.9rem;\n    text-decoration: none !important;\n    color: black\n}\n\n.ProductCard p {\n    margin: 5px 0 0;\n    font-size: .8rem;\n    color: #333;\n    text-decoration: none;\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    overflow: hidden;\n    -webkit-line-clamp: 3;\n    /* Adjust the value to the maximum number of lines */\n    text-overflow: ellipsis;\n    max-height: 5em;\n    /* Adjust the value as needed for browsers without -webkit prefix */\n    white-space: normal;\n    /* Reset white-space property */\n}\n\n/* Dark mode styles */\n@media (prefers-color-scheme: dark) {\n    [data-color-mode=\"system\"] .ProductCard p {\n        color: white;\n    }\n\n    [data-color-mode=\"system\"] .SDKCard h4 {\n        color: white;\n    }\n\n    [data-color-mode=\"system\"] .SDKCard path[fill=\"white\"] {\n    /* Override the previous rule and set the fill color to transparent */\n    fill: var(--color-bg-page);\n}\n      [data-color-mode=\"system\"] .SDKCard path {\n    fill: white;\n}\n  /* Target only the MAUI logo by using its specific container */\n[data-color-mode=\"system\"] .SDKCard path[fill=\"#A213EC\"] {\n    fill: var(--color-bg-page); /* Makes the purple background transparent */\n}\n\n[data-color-mode=\"system\"] .SDKCard svg[title=\"MAUI\"] path[fill=\"#FFFFFF\"] {\n    fill: #FFFFFF;\n}\n\n\n    [data-color-mode=\"system\"] .ProductCard:hover {\n        box-shadow: 0 4px 8px rgba(255, 255, 255, 0.1);\n          transform: translateY(-2px);\n    }\n  \t[data-color-mode=\"system\"] .SDKCard:hover {\n        box-shadow: 0 4px 8px rgba(255, 255, 255, 0.1);\n          transform: translateY(-2px);\n    }\n}\n\n@media (prefers-color-scheme: dark) {\n    [data-color-mode=\"system\"] .ProductCard_dark_icon {\n        display: inline-block !important;\n        /* Display light image in light mode */\n    }\n\n}\n\n@media (prefers-color-scheme: dark) {\n    [data-color-mode=\"system\"] .ProductCard_light_icon {\n        display: none;\n        /* Display light image in light mode */\n    }\n\n}\n\n[data-color-mode=\"dark\"] .SDKCard h4 {\n    color: white;\n}\n\n[data-color-mode=\"dark\"] .ProductCard:hover {\n    box-shadow: 0 4px 8px rgba(255, 255, 255, 0.1);\n      transform: translateY(-2px);\n}\n\n[data-color-mode=\"dark\"] .SDKCard:hover {\n    box-shadow: 0 4px 8px rgba(255, 255, 255, 0.1);\n      transform: translateY(-2px);\n}\n\n[data-color-mode=\"dark\"] .SDKCard path[fill=\"white\"] {\n    /* Override the previous rule and set the fill color to transparent */\n    fill: var(--color-bg-page);\n}\n[data-color-mode=\"dark\"] .SDKCard path {\n    fill: white;\n}\n\n/* Target only the MAUI logo by using its specific container */\n[data-color-mode=\"dark\"] .SDKCard path[fill=\"#A213EC\"] {\n    fill: var(--color-bg-page); /* Makes the purple background transparent */\n}\n[data-color-mode=\"dark\"] .SDKCard svg[title=\"MAUI\"] path[fill=\"#FFFFFF\"] {\n    fill: #FFFFFF;\n}\n\n[data-color-mode=\"dark\"] .ProductCard p {\n    color: white;\n}\n\n[data-color-mode=\"dark\"] .ProductCard_dark_icon {\n    display: inline-block !important;\n    /* Display light image in light mode */\n}\n\n[data-color-mode=\"dark\"] .ProductCard_light_icon {\n    display: none;\n    /* Display light image in light mode */\n}\n\n/* Grid box for footer */\n.slds-p-top_xx-large,\n.slds-p-top--xx-large {\n    padding-top: var(--lwc-spacingXxLarge, 3rem)\n}\n\n.slds-p-bottom_xx-large,\n.slds-p-bottom--xx-large {\n    padding-bottom: var(--lwc-spacingXxLarge, 3rem)\n}\n\n.slds-grid {\n    display: flex\n}\n\n.slds-wrap {\n    flex-wrap: wrap;\n    align-items: flex-start\n}\n\n.slds-p-around_small,\n.slds-p-around--small {\n    padding: var(--lwc-spacingSmall, 0.75rem)\n}\n\n.slds-size_1-of-1,\n.slds-size--1-of-1 {\n    width: 100%\n}\n\n.slds-medium-size_3-of-12,\n.slds-medium-size--3-of-12 {\n    width: 25%\n}\n\n.slds-large-size_2-of-12,\n.slds-large-size--2-of-12 {\n    width: 16.6666666667%\n}\n\n.slds-p-top_small,\n.slds-p-top--small {\n    padding-top: var(--lwc-spacingSmall, 0.75rem)\n}\n\n.slds-medium-size_12-of-12,\n.slds-medium-size--12-of-12 {\n    width: 100%\n}\n\n.slds-medium-size_12-of-12,\n.slds-medium-size--12-of-12 {\n    width: 100%\n}\n\n.slds-grid_overflow .slds-col,\n.slds-grid--overflow .slds-col {\n    min-width: 11.25em;\n    max-width: 22.5em\n}\n\n/* Changes size of the main OneTrust Logo */\nbody {\n    --header-logo-height: 30px;\n}\n\n/* Changes HR element to a white line */\nhr {\n    border: solid rgba(255, 255, 255) !important;\n    border-width: 1px 0 0 !important;\n}\n\n/* Needed for Footer */\n.cMyOT_FooterComponent.myOTFooter {\n    background-color: #2c3643;\n    color: white;\n    font-family: \"Open Sans\"\n}\n\n.cMyOT_FooterComponent .myOTFooterHeading {\n    font-size: 18px;\n    font-weight: 500\n}\n\n.cMyOT_FooterComponent .myOTFooterLink,\n.cMyOT_FooterComponent .myOTPrivacySection {\n    font-size: 16px;\n    font-weight: 200;\n    color: white !important\n}\n\n.cMyOT_FooterComponent .myOT2020-onetrust-all,\n.cMyOT_FooterComponent .myOTPrivacySection {\n    font-weight: 200;\n    font-size: 14px;\n    line-height: 19px\n}\n\n.cMyOT_FooterComponent.myOTFooter a:hover {\n    text-decoration: none !important;\n    color: rgb(108, 192, 74) !important\n}\n\n.cMyOT_FooterComponent hr {\n    margin: 0\n}\n\n@media only screen and (max-width:800px) {\n    .cMyOT_FooterComponent .myOTEventsHeading {\n        font-size: 25px !important;\n        padding: 1rem !important\n    }\n}\n\n@media only screen and (min-width:1025px) {\n    .cMyOT_FooterComponent .myOTFooterOTSection {\n        margin-left: 10%;\n        margin-right: 10%\n    }\n\n    .cMyOT_FooterComponent .myOT2020-onetrust-all {\n        float: left\n    }\n\n    .cMyOT_FooterComponent .myOTPrivacySection {\n        float: right;\n        display: flex\n    }\n}","stylesheet_hub3":"","javascript":"","javascript_hub2":"// Replace client flow with bearer token flow\nlet capturedScopes = [];\n\nconsole.log('[Scopes] Script loaded');\n\n// Extract scopes from the Tippy dropdown after clicking\nfunction captureScopesFromDropdown() {\n  console.log('[Scopes] captureScopesFromDropdown called');\n  \n  if (capturedScopes.length > 0) {\n    console.log('[Scopes] Already have scopes:', capturedScopes);\n    return;\n  }\n  \n  const scopesButton = document.querySelector('.rm-APIAuth [class*=\"oauth-scopes\"] .Dropdown-toggle');\n  console.log('[Scopes] Scopes button found:', !!scopesButton);\n  \n  if (!scopesButton) return;\n  \n  // Click to open the Tippy dropdown\n  console.log('[Scopes] Clicking dropdown to reveal scopes...');\n  scopesButton.click();\n  \n  setTimeout(() => {\n    // Find scope items in the Tippy popup - look for Menu-Item elements\n    const menuItems = document.querySelectorAll('.tippy-box .Menu-Item, [data-tippy-root] .Menu-Item');\n    console.log('[Scopes] Menu items found:', menuItems.length);\n    \n    menuItems.forEach(item => {\n      // Get scope name from the scopes-text span\n      const nameEl = item.querySelector('[class*=\"oauth-scopes-text\"]');\n      const descEl = item.querySelector('.Menu-Item-description');\n      \n      const name = nameEl?.textContent?.trim();\n      const description = descEl?.textContent?.trim() || `OAuth2 scope: ${name}`;\n      \n      console.log('[Scopes] Found scope:', name, '-', description);\n      \n      if (name && !capturedScopes.find(s => s.name === name)) {\n        capturedScopes.push({ name, description });\n      }\n    });\n    \n    console.log('[Scopes] Captured scopes:', capturedScopes);\n    \n    // Close the dropdown\n    scopesButton.click();\n  }, 0);\n}\n\n// Create custom scopes pills\nfunction createScopesPills(scopes) {\n  const container = document.createElement('div');\n  container.className = 'custom-scopes';\n  \n  if (scopes.length === 0) {\n    container.innerHTML = '\u003cdiv class=\"custom-scopes-label\">No scopes required\u003c/div>';\n    return container;\n  }\n  \n  const label = document.createElement('div');\n  label.className = 'custom-scopes-label';\n  label.textContent = 'Scopes';\n  container.appendChild(label);\n  \n  scopes.forEach(scope => {\n    const pill = document.createElement('span');\n    pill.className = 'scope-pill';\n    pill.textContent = scope.name;\n    \n    const tooltip = document.createElement('span');\n    tooltip.className = 'scope-tooltip';\n    tooltip.textContent = scope.description;\n    pill.appendChild(tooltip);\n    \n    container.appendChild(pill);\n  });\n  \n  return container;\n}\n\n// Inject scopes after token input\nfunction injectCustomScopes() {\n  console.log('[Scopes] injectCustomScopes called');\n  const tokenRow = document.querySelector('.InputGroup-oauth-flow-token');\n  const existing = document.querySelector('.custom-scopes');\n  \n  console.log('[Scopes] Token row found:', !!tokenRow);\n  console.log('[Scopes] Existing custom scopes:', !!existing);\n  console.log('[Scopes] Captured scopes count:', capturedScopes.length);\n  \n  if (tokenRow && !existing && capturedScopes.length > 0) {\n    console.log('[Scopes] Injecting scopes pills...');\n    tokenRow.after(createScopesPills(capturedScopes));\n  } else if (tokenRow && !existing && capturedScopes.length === 0) {\n    console.log('[Scopes] No scopes to inject');\n  }\n}\n\n// Click \"Use Your Own Token\" button\nfunction clickUseOwnToken() {\n  console.log('[Scopes] clickUseOwnToken called');\n  const buttons = document.querySelectorAll('.rm-APIAuth button');\n  console.log('[Scopes] Found buttons:', buttons.length);\n  \n  for (const btn of buttons) {\n    console.log('[Scopes] Button text:', btn.textContent.trim());\n    if (btn.textContent.trim() === 'Use Your Own Token') {\n      console.log('[Scopes] Clicking \"Use Your Own Token\" button');\n      btn.click();\n      return true;\n    }\n  }\n  console.log('[Scopes] \"Use Your Own Token\" button not found');\n  return false;\n}\n\n// Main flow - runs on each page load\nfunction initBearerTokenMode() {\n  console.log('[Scopes] initBearerTokenMode called');\n  capturedScopes = []; // Reset for new page\n  \n  const scopesDropdown = document.querySelector('.rm-APIAuth [class*=\"oauth-scopes\"]');\n  const clientFlow = document.querySelector('.InputGroup-oauth-flow-client');\n  \n  console.log('[Scopes] Scopes dropdown found:', !!scopesDropdown);\n  console.log('[Scopes] Client flow found:', !!clientFlow);\n  \n  // First capture scopes while original dropdown exists\n  if (scopesDropdown) {\n    captureScopesFromDropdown();\n  }\n  \n  // Delay to allow scope capture (dropdown opens, captures, closes), then switch to token mode\n  setTimeout(() => {\n    console.log('[Scopes] After 500ms delay, captured scopes:', capturedScopes);\n    if (document.querySelector('.InputGroup-oauth-flow-client')) {\n      clickUseOwnToken();\n    }\n    \n    // Inject custom scopes after switching\n    setTimeout(() => {\n      console.log('[Scopes] After 400ms delay, injecting...');\n      if (document.querySelector('.InputGroup-oauth-flow-token')) {\n        injectCustomScopes();\n      } else {\n        console.log('[Scopes] Token flow not found after switching');\n      }\n    }, 400);\n  }, 500);\n}\n\n// Use ReadMe's pageLoad event\n$(window).on('pageLoad', () => {\n  console.log('[Scopes] pageLoad event fired');\n  initBearerTokenMode();\n});\n\n// Also run on initial load\n$(document).ready(() => {\n  console.log('[Scopes] document.ready fired');\n  initBearerTokenMode();\n});\n\n\n\n\n// Track the current URL path to detect changes\nvar lastPath = window.location.pathname;\n\n// Simple banner display function\nfunction displayBanner() {\n    // Get the container element\n    var contentElement = document.getElementById('hub-search-results');\n    if (!contentElement) return;\n    \n    // Update lastPath for future comparisons\n    lastPath = window.location.pathname;\n    \n    // Remove any existing banners first\n    var existingRecipeCallout = contentElement.querySelector('.onetrust-custom-callout');\n  \tvar existingCMPCallout = contentElement.querySelector('.onetrust-custom-callout-cmp');    \n\t\tvar existingOASCallout = contentElement.querySelector('.onetrust-custom-callout-oas');\n\n\n    \n    if (existingRecipeCallout && existingRecipeCallout.parentElement) {\n        existingRecipeCallout.parentElement.removeChild(existingRecipeCallout);\n    }\n    if (existingCMPCallout && existingCMPCallout.parentElement) {\n        existingCMPCallout.parentElement.removeChild(existingCMPCallout);\n    }\n\t\tif (existingOASCallout && existingOASCallout.parentElement) {\n        existingOASCallout.parentElement.removeChild(existingOASCallout);\n    }\n    \n    // Get current path\n    var path = window.location.pathname;\n    \n    // New element for banner\n    var newElement = document.createElement('div');\n    newElement.className = 'rm-Markdown markdown-body';\n    newElement.setAttribute('data-testid', 'RDMD');\n    \n    // Choose banner based on path\n    if (path === '/onetrust/recipes') {\n        //console.log('Displaying Recipe banner');\n        newElement.innerHTML = `\u003cblockquote class=\"callout callout_warning onetrust-custom-callout\" theme=\"🚧\">\n            \u003cp>The code samples provided here are intended as starting points for various use cases. We encourage you to thoroughly test any code. Use of these samples is at your own risk. Please note that OneTrust does not offer implementation support for these Recipes but welcomes your feedback and suggestions for new Recipes. If you want to provide feedback, please leverage the Help widget in the bottom right corner of your screen.\u003c/p>\n        \u003c/blockquote>`;\n        contentElement.insertBefore(newElement, contentElement.firstChild);\n    } else if (path.includes('/docs/')) {\n        //console.log('Displaying CMP banner');\n        newElement.innerHTML = `\u003cblockquote class=\"callout callout_error onetrust-custom-callout-cmp\" theme=\"❗\">\n            \u003cp style=\"color: black;\">We strongly recommend all CMP users deploying Mobile &amp; OTT/CTV SDKs to migrate to our next generation of CMP SDKs for a seamless experience and enhanced efficiency and scalability. For more information, see \u003ca href=\"https://developer.onetrust.com/onetrust/docs/onetrusts-next-generation-cmp-sdks\" target=\"_blank\" rel=\"noopener noreferrer\">OneTrust Next Generation CMP SDKs\u003c/a>.\u003c/p>\n        \u003c/blockquote>`;\n        contentElement.insertBefore(newElement, contentElement.firstChild);\n    } else {\n        //console.log('No banner needed for path: ' + path);\n    }\n}\n\n// Check if URL has changed\nfunction checkURLChange() {\n    var currentPath = window.location.pathname;\n    if (currentPath !== lastPath) {\n        //console.log('URL changed from', lastPath, 'to', currentPath);\n        setTimeout(displayBanner, 500);\n    }\n}\n\n// Hook into history API to detect client-side navigation\nfunction addHistoryChangeListener() {\n    // Store references to original history methods\n    var originalPushState = history.pushState;\n    var originalReplaceState = history.replaceState;\n    \n    // Override history.pushState\n    history.pushState = function() {\n        originalPushState.apply(this, arguments);\n        setTimeout(displayBanner, 500);\n    };\n    \n    // Override history.replaceState\n    history.replaceState = function() {\n        originalReplaceState.apply(this, arguments);\n        setTimeout(displayBanner, 500);\n    };\n}\n\n// Set up periodic URL checking\nfunction startURLMonitoring() {\n    // Check URL every 500ms\n    setInterval(checkURLChange, 500);\n    \n    // Add listener for click events on anchor tags\n    document.addEventListener('click', function(e) {\n        if (e.target.tagName === 'A' || e.target.closest('a')) {\n            // A link was clicked, check for URL change after a delay\n            setTimeout(checkURLChange, 500);\n        }\n    });\n}\n\n// Set up one-time event listeners\ndocument.addEventListener('DOMContentLoaded', function() {\n    // First attempt when DOM is ready with 1000ms delay\n    setTimeout(displayBanner, 1000);\n    \n    // Hook into history API\n    addHistoryChangeListener();\n    \n    // Start URL monitoring\n    startURLMonitoring();\n    \n    // Set up a single listener for popstate (browser back/forward)\n    window.addEventListener('popstate', function() {\n        // Add delay before showing banner after navigation\n        setTimeout(displayBanner, 500);\n    });\n});\n\n// Add banner when page load is complete (backup)\nwindow.addEventListener('load', function() {\n    setTimeout(displayBanner, 1000);\n});\n\n\n// Brave Shield Warning \nfunction isBraveShieldsUp() {\n    if (window.navigator.brave != undefined) {\n        if (window.navigator.brave.isBrave.name == \"isBrave\") {\n            //if (!window.navigator.plugins[0][0].type){\n            document.getElementById(\"brave-warning\").style.display = \"block\";\n            return true;\n            // }\n        } else {\n            return false;\n        }\n    } else {\n        return false;\n    }\n}\nisBraveShieldsUp();\n\n// start of x-onetrust\n// Creates x-onetrust Tags in UI \n// function createTags(tags, data, oasUrl, callback) {\n//     /*\n//     \"x-onetrust\": {\n//        \"highly-available\": true,\n//        \"highly-available-link\": \"Helpful Link for HA\",\n//        \"release-status\": \"Public Preview | Sunset Period | Deprecated\",\n//        \"release-status-link\": \"link to changelog if needed\",\n//        \"spec-label\": \"OpenAPI 3.1.0\"\n//      }\n//      */\n//     const fragment = document.createDocumentFragment();\n//     const divTags = document.createElement(\"div\");\n//     divTags.className = \"ot-tags-container\";\n//     divTags.id = \"ot-tags-container\";\n\n//     // Check if highly-available is true\n//     if (tags && tags[\"highly-available\"] === true) {\n//         const haSpan = document.createElement(\"span\");\n//         haSpan.className = \"ot-tags ot-tags-ha\";\n//         haSpan.onclick = function () {\n//             window.open(\"https://developer.onetrust.com/onetrust/reference/consent-preference-management-api-service-level-objectives\", \"_blank\");\n//         };\n//         haSpan.setAttribute(\"style\", \"float: right;margin-top: 10px;\");\n//         haSpan.setAttribute(\"apimethod_version\", \"\");\n//         haSpan.textContent = \"Highly Available\";\n//         divTags.appendChild(haSpan);\n//     }\n\n//     // Check if release-status exists\n//     if (tags && tags[\"release-status\"]) {\n//         const rsSpan = document.createElement(\"span\");\n//         rsSpan.className = \"ot-tags ot-tags-rs\";\n//         rsSpan.onclick = function () {\n//             if (tags[\"release-status-link\"]) {\n//                 window.open(tags[\"release-status-link\"], \"_blank\");\n//             }\n//         };\n//         rsSpan.setAttribute(\"style\", \"float: right;margin-top: 10px;\");\n//         rsSpan.setAttribute(\"apimethod_version\", \"\");\n//         rsSpan.textContent = tags[\"release-status\"];\n//         divTags.appendChild(rsSpan);\n\n//         // Add hover CSS\n//         rsSpan.addEventListener('mouseenter', function () {\n//             if (tags[\"release-status-link\"]) {\n//                 rsSpan.style.background = \"firebrick\";\n//                 rsSpan.style.cursor = \"pointer\";\n//             }\n//         });\n\n//         rsSpan.addEventListener('mouseleave', function () {\n//             if (tags[\"release-status-link\"]) {\n//                 rsSpan.style.background = \"\"; // Reset to default\n//                 rsSpan.style.cursor = \"\"; // Reset to default\n//             }\n//         });\n//     }\n\n//     // Check if spec version exists\n//     if (data[\"x-onetrust\"][\"spec-label\"]) {\n//         const slSpan = document.createElement(\"span\");\n//         slSpan.className = \"ot-tags ot-tags-sl\";\n//         slSpan.onclick = function () {\n//             window.open(oasUrl, \"_blank\"); // Replace with the actual hyperlink\n//         };\n//         slSpan.setAttribute(\"style\", \"float: right;margin-top: 10px;\");\n//         slSpan.setAttribute(\"apimethod_version\", \"\");\n//         slSpan.textContent = data[\"x-onetrust\"][\"spec-label\"];\n//         divTags.appendChild(slSpan);\n//     }\n\n//     fragment.appendChild(divTags);\n\n//     // Call the callback function with the created element\n//     callback(fragment);\n// }\n\n\n// Creates Scopes Element in UI \nfunction createScopeElement(scopes, data, callback) {\n    // Create a new div element to contain the scopes\n    const newElement = document.createElement('div');\n    newElement.classList.add('Info-infoBadge3luOwOnjfNiR');\n    newElement.setAttribute('role', '');\n\n    // Create the heading for scopes\n    const heading = document.createElement('div');\n    heading.classList.add('APISectionHeader-heading4MUMLbp4_nLs');\n    heading.textContent = 'SCOPES';\n    heading.title = 'The scope signifies the level of access granted to the API endpoint. It is recommended to always choose the scope with the least access to minimize security risks.';\n    newElement.appendChild(heading);\n\n    // Create a container for badges\n    const badgesContainer = document.createElement('div');\n    badgesContainer.classList.add('badges-container');\n    badgesContainer.style.paddingLeft = '3px';\n\n    // Create and append badge elements for each scope\n    for (const scope of Object.values(scopes)) {\n        const badge = document.createElement('span');\n        badge.classList.add('Badge', 'Badge_light', 'Badge_circular');\n        badge.style.marginLeft = '3px';\n        badge.textContent = scope;\n        badge.title = data.components.securitySchemes.oauth2.flows.clientCredentials.scopes[scope];\n        badgesContainer.appendChild(badge);\n    }\n\n    newElement.appendChild(badgesContainer);\n\n    // Call the callback function with the created element\n    callback(newElement);\n}\n\n\n// Check for data-raycast-oas attribute and invoke tag/scope rendering\n// If data-raycast-oas is missing, \"false\", or \"[object Object]\", fetch \u003ccurrent URL>?json=on and use doc.api.apiSetting as fallback\n(async function resolveOasAndRender() {\n    let oasValue = null;\n    let operationId = null;\n\n    // Check for data-raycast-oas\n    const raycastOas = document.querySelector('[data-raycast-oas]');\n    const raycastOperationId = document.querySelector('[data-raycast-operation-id]');\n\n    if (raycastOas && raycastOas.dataset.raycastOas !== 'false' && raycastOas.dataset.raycastOas !== '[object Object]') {\n        oasValue = raycastOas.dataset.raycastOas;\n        operationId = raycastOperationId?.dataset.raycastOperationId;\n    }\n\n    // If no valid OAS value found, try to get it from the URL\n    if (!oasValue) {\n        const urlParams = new URLSearchParams(window.location.search);\n        if (urlParams.has('json') && urlParams.get('json') === 'on') {\n            try {\n                const response = await fetch(window.location.href);\n                const data = await response.json();\n                oasValue = data.api.apiSetting;\n                operationId = urlParams.get('operationId');\n            } catch (error) {\n                console.error('Error fetching JSON:', error);\n            }\n        }\n    }\n\n    if (oasValue) {\n        const oasUrl = URLValidator.constructOasUrl(oasValue);\n        await printScopesEnhanced(oasUrl, operationId);\n    }\n})();\n\n// Gets the Scopes from the OAS spec\nasync function printScopesEnhanced(oasUrl, operationIdToFind) {\n    try {\n        const response = await fetch(oasUrl);\n        if (!response.ok) {\n            throw new Error('Failed to fetch OpenAPI spec');\n        }\n        const data = await response.json();\n        const paths = data.paths;\n        for (const [path, pathValue] of Object.entries(paths)) {\n            for (const [method, methodValue] of Object.entries(pathValue)) {\n                if (methodValue.operationId && methodValue.operationId.toLowerCase() === operationIdToFind.toLowerCase()) {\n                    if (methodValue.security && methodValue.security.length > 0) {\n                        for (const security of methodValue.security) {\n                            for (const [securityKey, scopes] of Object.entries(security)) {\n                                if (securityKey === 'oauth2' && scopes.length > 0) {\n                                    await new Promise(r => setTimeout(r, 200));\n                                    createScopeElement(scopes, data, function (newElement) {\n                                        const elementToReplace = document.querySelector('.Info-infoBadge3luOwOnjfNiR');\n                                        if (elementToReplace) {\n                                            elementToReplace.parentNode.replaceChild(newElement, elementToReplace);\n                                        }\n                                    });\n                                    return;\n                                }\n                            }\n                        }\n                    }\n                    return;\n                }\n            }\n        }\n    } catch (error) {\n        console.error('Error fetching or processing OpenAPI spec:', error);\n    }\n}\n// end of x-onetrust\n\n\n// Scripts for Partner Page\n// Guard to ensure jQuery is loaded before running the UI enhancement block\nif (typeof window.jQuery !== 'undefined') {\n    (function ($) {\n\n        \"use strict\";\n\n        /* Page Loader active\n        ========================================================*/\n        $('#preloader').fadeOut();\n\n\n        /* Screens Shot Slider\n        =============================*/\n        var owl = $(\".touch-slider\");\n        owl.owlCarousel({\n            center: true,\n            navigation: false,\n            pagination: true,\n            slideSpeed: 1000,\n            stopOnHover: true,\n            autoPlay: true,\n            touchDrag: true,\n            responsive: {\n                0: {\n                    items: 1\n                },\n\n                480: {\n                    items: 2\n                },\n\n                768: {\n                    items: 3\n                },\n\n                992: {\n                    items: 4\n                },\n\n                1199: {\n                    items: 5\n                }\n            },\n            items: 5,\n            itemsDesktopSmall: [1024, 3],\n            itemsTablet: [600, 1],\n            itemsMobile: [479, 1]\n        });\n\n\n        // sticky menu \n        $(window).on('scroll', function (event) {\n            var scroll = $(window).scrollTop();\n            if (scroll \u003c 20) {\n                $(\".navbar-area\").removeClass(\"sticky menu-bg\");\n            } else {\n                $(\".navbar-area\").addClass(\"sticky menu-bg\");\n            }\n        });\n\n        // for menu scroll \n        $('.page-scroll').click(function () {\n            var hash = this.hash;\n            var position = $(hash).offset().top - 60;\n            $('html').animate({\n                scrollTop: position\n            }, 900);\n        });\n\n        //===== Section Menu Active\n\n        var scrollLink = $('.page-scroll');\n        // Active link switching\n        $(window).scroll(function () {\n            var scrollbarLocation = $(this).scrollTop();\n\n            scrollLink.each(function () {\n\n                var sectionOffset = $(this.hash).offset().top - 73;\n\n                if (sectionOffset \u003c= scrollbarLocation) {\n                    $(this).parent().addClass('active');\n                    $(this).parent().siblings().removeClass('active');\n                }\n            });\n        });\n\n\n        //===== close navbar-collapse when a  clicked\n\n        $(\".navbar-nav a\").on('click', function () {\n            $(\".navbar-collapse\").removeClass(\"show\");\n        });\n\n        $(\".navbar-toggler\").on('click', function () {\n            $(this).toggleClass(\"active\");\n        });\n\n        $(\".navbar-nav a\").on('click', function () {\n            $(\".navbar-toggler\").removeClass('active');\n        });\n\n\n\n        /* \n         Back Top Link\n         ========================================================================== */\n        var offset = 200;\n        var duration = 500;\n        $(window).scroll(function () {\n            if ($(this).scrollTop() > offset) {\n                $('.back-to-top').fadeIn(400);\n            } else {\n                $('.back-to-top').fadeOut(400);\n            }\n        });\n\n        $('.back-to-top').on('click', function (event) {\n            event.preventDefault();\n            $('html, body').animate({\n                scrollTop: 0\n            }, 600);\n            return false;\n        })\n\n        /* \n         One Page Navigation & wow js\n         ========================================================================== */\n\n        $(window).on('load', function () {\n\n            $('body').scrollspy({\n                target: '.navbar-collapse',\n                offset: 195\n            });\n\n            $(window).on('scroll', function () {\n                if ($(window).scrollTop() > 100) {\n                    $('.fixed-top').addClass('menu-bg');\n                } else {\n                    $('.fixed-top').removeClass('menu-bg');\n                }\n            });\n\n        });\n\n        /* Auto Close Responsive Navbar on Click\n        ========================================================*/\n        function close_toggle() {\n            if ($(window).width() \u003c= 768) {\n                $('.navbar-collapse a').on('click', function () {\n                    $('.navbar-collapse').collapse('hide');\n                });\n            }\n            else {\n                $('.navbar .navbar-inverse a').off('click');\n            }\n        }\n        close_toggle();\n        $(window).resize(close_toggle);\n\n        /* Nivo Lightbox\n        ========================================================*/\n        $('.lightbox').nivoLightbox({\n            effect: 'fadeScale',\n            keyboardNav: true,\n        });\n\n    }(window.jQuery));\n} // end jQuery guard\n\n/*\n// Load Vue.js if not already loaded\nif (typeof Vue === 'undefined') {\n    const script = document.createElement('script');\n    script.src = 'https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.10/vue.min.js';\n    script.onload = initVueComponents;\n    document.head.appendChild(script);\n} else {\n    initVueComponents();\n}\n*/\n\n/*\nfunction initVueComponents() {\n    Vue.component('boardal', {\n        template: `\n        \u003ctransition name=\"boardal\">\n          \u003cdiv class=\"boardal\">\n            \u003cdiv class=\"boardal__mask\" v-if=\"hasMask\" @click=\"clickMask\">\u003c/div>\n            \u003cdiv class=\"boardal__wrapper\">\n              \u003cslot>\u003c/slot>\n              \u003cdiv class=\"boardal__x\" v-if=\"hasX\" @click=\"clickX\">&times;\u003c/div>\n            \u003c/div>\n          \u003c/div>\n        \u003c/transition>\n        `,\n        props: [\n            'hasX',\n            'hasMask',\n            'canClickMask'\n        ],\n        methods: {\n            clickX: function () {\n                this.$emit('toggle')\n            },\n            clickMask: function () {\n                if (this.canClickMask) {\n                    this.$emit('toggle')\n                }\n            }\n        }\n    })\n\n    let vm = new Vue({\n        el: 'main',\n        data: {\n            modal: {\n                isOpen: false,\n                hasMask: true,\n                canClickMask: false,\n                hasX: false\n            },\n            step: 1,\n            max: 1,\n            showDots: true,\n            orientation: 'row',\n            xray: 'hidden',\n            currentSection: null,\n            $sections: []\n        },\n        mounted() {\n            // Initialize any mounted logic here\n            this.$sections = this.$el.querySelectorAll('section');\n            this.max = this.$sections.length;\n            this.setCssVars();\n        },\n        computed: {\n            isFirstStep: function () {\n                return (this.step === 1)\n            },\n            isLastStep: function () {\n                return (this.step === this.max)\n            },\n            hasDots: function () {\n                return (this.max > 1 && this.showDots)\n            },\n            x_multiplier: function () {\n                return (this.orientation === 'row' ? -1 : 0)\n            },\n            y_multiplier: function () {\n                return (this.orientation === 'row' ? 0 : -1)\n            },\n            axis: function () {\n                return (this.orientation === 'row' ? 'row' : 'column')\n            },\n            axisReverse: function () {\n                return (this.orientation === 'row' ? 'row-reverse' : 'column-reverse')\n            },\n            cross: function () {\n                return (this.orientation === 'row' ? 'column' : 'row')\n            },\n            crossReverse: function () {\n                return (this.orientation === 'row' ? 'column-reverse' : 'row-reverse')\n            },\n            nextIcon: function () {\n                return (this.orientation === 'row' ? 'fa-arrow-right' : 'fa-arrow-down')\n            },\n            backIcon: function () {\n                return (this.orientation === 'row' ? 'fa-arrow-left' : 'fa-arrow-up')\n            },\n        },\n        watch: {\n            orientation: 'setCssVars',\n        },\n        methods: {\n            toggleChecklistModal(step) {\n                step = step || 1;\n                this.modal.isOpen = !this.modal.isOpen;\n                if (this.modal.isOpen) {\n                    let self = this;\n                    setTimeout(function () {\n                        self.$sections = self.$el.querySelectorAll('section');\n                        self.max = self.$sections.length;\n                        self.goToStep(step);\n                    }, 1);\n                }\n            },\n            setCssVars() {\n                this.$el.style.setProperty('--x', (((this.step * 100) - 100) * this.x_multiplier) + '%');\n                this.$el.style.setProperty('--y', (((this.step * 100) - 100) * this.y_multiplier) + '%');\n                this.$el.style.setProperty('--axis', this.axis);\n                this.$el.style.setProperty('--axis-reverse', this.axisReverse);\n                this.$el.style.setProperty('--cross', this.cross);\n                this.$el.style.setProperty('--cross-reverse', this.crossReverse);\n            },\n            goToStep(step) {\n                this.step = step > this.max ? this.max : step \u003c 1 ? 1 : step;\n                this.currentSection = this.$sections[this.step - 1];\n                this.$sections.forEach(function (section) {\n                    section.classList.remove('current');\n                });\n                this.currentSection.classList.add('current');\n                this.currentSection.scrollTop = 0;\n                this.setCssVars();\n            },\n            skip(step) {\n                this.step += step;\n                this.goToStep(this.step);\n            },\n            resetChecklist() {\n                this.goToStep(1);\n            },\n            finish() {\n                this.toggleChecklistModal();\n                return (this.max > 1 && this.showDots);\n            }\n        }\n    })\n    }\n*/\n\n//Help Widget\n   // Function to extract data-raycast-oas value from HTML\n        async function getLinksfromSpec() {\n            let oasValue = null;\n\n            // Primary: try the data-raycast-oas attribute\n            const headerElement = document.querySelector('[data-raycast-oas]');\n            if (headerElement) {\n                const attr = headerElement.getAttribute('data-raycast-oas');\n                if (attr && attr !== 'false' && attr !== '[object Object]') {\n                    oasValue = attr.trim();\n                }\n            }\n\n            // Fallback: fetch the current page and get from URL params\n            if (!oasValue) {\n                const urlParams = new URLSearchParams(window.location.search);\n                if (urlParams.has('json') && urlParams.get('json') === 'on') {\n                    try {\n                        const response = await fetch(window.location.href);\n                        const data = await response.json();\n                        oasValue = data.api.apiSetting;\n                    } catch (error) {\n                        console.error('Error fetching JSON:', error);\n                    }\n                }\n            }\n\n            if (oasValue) {\n                const oasUrl = `https://developer.onetrust.com/onetrust/openapi/${oasValue}`;\n                try {\n                    const response = await fetch(oasUrl);\n                    if (!response.ok) {\n                        throw new Error('Failed to fetch OpenAPI spec');\n                    }\n                    const data = await response.json();\n                    if (data.hasOwnProperty(\"x-onetrust\")) {\n                        return data[\"x-onetrust\"][\"links\"];\n                    }\n                } catch (error) {\n                    //console.error('Error fetching or processing OpenAPI spec:', error);\n                    return null;\n                }\n            }\n            return null;\n        }\n        // Initialize the OneTrust container and help button\n        function initHelpWidget() {\n            console.log('Initializing help widget');\n            var container = document.getElementById('onetrust-container');\n            var helpButton = document.getElementById('helpButton');\n\n            if (container) {\n                container.style.display = 'none';\n            }\n\n            if (helpButton) {\n                console.log('Adding click event to help button');\n                helpButton.onclick = toggleHelpContainer;\n            } else {\n                console.error('Help button not found');\n            }\n\n            // Initialize rating feature buttons\n            console.log('Setting up rating feature buttons');\n\n            // Rate your Experience button functionality\n            var rateExperienceBtn = document.getElementById('rateExperienceBtn');\n            if (rateExperienceBtn) {\n                console.log('Adding click event to rate experience button');\n                rateExperienceBtn.addEventListener('click', function () {\n                    document.getElementById('thumbsOptions').style.display = 'flex';\n                    document.getElementById('rateExperienceBtn').style.display = 'none';\n                    document.getElementById('voteNewFeatures').style.display = 'none';\n                });\n            } else {\n                console.error('Rate experience button not found');\n            }\n\n            // Thumbs Up button functionality\n            var thumbsUpBtn = document.getElementById('thumbsUpBtn');\n            if (thumbsUpBtn) {\n                thumbsUpBtn.addEventListener('click', function () {\n                    document.getElementById('commentInput').style.display = 'block';\n                    document.getElementById('thumbsUpBtn').style.color = 'darkgreen';\n                    document.getElementById('thumbsDownBtn').style.color = 'currentcolor';\n                    document.getElementById('thumbsOptions').style.display = 'flex';\n                    document.getElementById('submitButton').style.display = 'block';\n                });\n            }\n\n            // Thumbs Down button functionality\n            var thumbsDownBtn = document.getElementById('thumbsDownBtn');\n            if (thumbsDownBtn) {\n                thumbsDownBtn.addEventListener('click', function () {\n                    document.getElementById('commentInput').style.display = 'block';\n                    document.getElementById('thumbsUpBtn').style.color = 'currentcolor';\n                    document.getElementById('thumbsDownBtn').style.color = 'darkred';\n                    document.getElementById('thumbsOptions').style.display = 'flex';\n                    document.getElementById('submitButton').style.display = 'block';\n                });\n            }\n\n            // Submit button functionality\n            var submitButton = document.getElementById('submitButton');\n            if (submitButton) {\n                submitButton.addEventListener('click', async function () {\n                    var feedback = document.getElementById(\"feedbackTextarea\").value;\n                    if (!feedback.trim()) {\n                        document.getElementById(\"commentError\").style.display = \"block\";\n                        return;\n                    } else {\n                        document.getElementById(\"commentError\").style.display = \"none\";\n                    }\n\n                    try {\n                        const scriptElement = document.getElementById(\"hub-me\");\n                        // Get the value of the data-json attribute\n                        const jsonData = scriptElement ? scriptElement.getAttribute(\"data-json\") : null;\n                        // Parse the JSON data if available\n                        const parsedData = jsonData ? JSON.parse(jsonData) : {};\n\n                        // Get email if available\n                        const emailElement = document.getElementById(\"feedbackEmail\");\n                        const email = emailElement ? emailElement.value.trim() || null : null;\n\n                        var feedbackData = {\n                            vote: document.getElementById(\"thumbsUpBtn\").style.color === \"darkgreen\" ? 1 : 0,\n                            comments: document.getElementById(\"commentInput\").querySelector('textarea').value,\n                            path: window.location.pathname,\n                            requestType: \"pageQuality\",\n                            type: \"doc\"\n                        };\n\n                        // Adding the email to the comment since readme changed the api to not accept email\n                        if (email) {\n                            feedbackData.comments = email + \": \" + feedbackData.comments;\n                            feedbackData.email = email; // Doesn't seem to be used anymore by readme via the API\n                        }\n\n                        // Show success message immediately\n                        document.getElementById('successMessage').style.display = 'block';\n                        document.getElementById('commentInput').style.display = 'none';\n                        document.getElementById('submitButton').style.display = 'none';\n                        document.getElementById('thumbsOptions').style.display = 'none';\n\n                        // Send feedback to API\n                        fetch('https://developer.onetrust.com/onetrust/api-next/v2/versions/1.0/metrics-proxy/create/thumb', {\n                            method: 'POST',\n                            headers: {\n                                'Content-Type': 'application/json',\n                            },\n                            body: JSON.stringify(feedbackData),\n                        })\n                            .then(response => {\n                                if (!response.ok) {\n                                    throw new Error('Network response was not ok');\n                                }\n                                return response.json();\n                            })\n                            .then(data => {\n                                console.log('Feedback submitted successfully');\n                            })\n                            .catch(error => {\n                                console.error('Error submitting feedback:', error);\n                            });\n\n                        // Reset after delay regardless of API response\n                        setTimeout(function () {\n                            resetRateExperience();\n                            populateLinks();\n                        }, 3000);\n\n                    } catch (error) {\n                        console.error('Error processing feedback:', error);\n                        resetRateExperience();\n                    }\n                });\n            }\n        }\n\n        // Function to toggle OneTrust container visibility\n        function toggleHelpContainer() {\n            console.log('Help button clicked');\n            var container = document.getElementById('onetrust-container');\n            if (!container) {\n                console.error('Container not found');\n                return;\n            }\n\n            if (container.style.display === 'none') {\n                fetchHighestComponentGroupStatus();\n                container.style.display = \"block\";\n                document.querySelector('.help-icon').innerHTML = '\u003ci class=\"fas fa-times\">\u003c/i>';\n                // Get the \u003cscript> element by its id\n                const scriptElement = document.getElementById(\"hub-me\");\n                // Get the value of the data-json attribute\n                const jsonData = scriptElement.getAttribute(\"data-json\");\n                // Parse the JSON data\n                const parsedData = JSON.parse(jsonData);\n                // Extract the email from the parsed data\n                const name = parsedData.user?.name;\n                const email = parsedData.user?.email;\n                if (name) {\n                    const firstName = name.match(/^(\\S+)/)[1];\n                    // Updating the greeting message with the first name\n                    document.getElementById(\"greeting-name\").textContent = \"👋 Hi, \" + firstName + \"!\";\n                    document.getElementById(\"voteNewFeatures\").onclick = function () {\n                        window.open('https://ideas.onetrust.com/portal_session/new?email=' + encodeURIComponent(email), '_blank');\n                    };\n                }\n                if (email) {\n                    // Updating the email field with user's email \n                    document.getElementById(\"feedbackEmail\").value = email;\n                }\n                populateLinks();\n            } else {\n                resetRateExperience();\n                container.style.display = \"none\";\n                document.querySelector('.help-icon').innerHTML = '\u003ci class=\"fas fa-question\">\u003c/i>';\n            }\n        }\n\n        async function sleep(ms) {\n            return new Promise(resolve => setTimeout(resolve, ms));\n        }\n\n        // Function to populate Links\n        async function populateLinks() {\n            // Populate Links to Display based on current page\n            const currentPath = window.location.pathname;\n            let links = {}\n            if (currentPath.includes('/onetrust/reference')) {\n                let moduleLinks = await getLinksfromSpec();\n                links = {\n                    \"Getting Started: OneTrust APIs\": \"https://developer.onetrust.com/onetrust/reference/quick-start-guide\",\n                    \"API Rate Limiting\": \"https://developer.onetrust.com/onetrust/reference/rate-limits-overview\",\n                    \"Implementing Pagination\": \"https://developer.onetrust.com/onetrust/reference/understanding-implementing-pagination\",\n                    \"Explore our LLMs.txt file – Help AI understand our docs smarter and faster\": \"https://developer.onetrust.com/onetrust/v1.0/llms.txt\"\n                };\n                links = moduleLinks ? Object.assign(links, moduleLinks) : links;\n            } else if (currentPath.includes('/onetrust/docs')) {\n                links = {\n                    \"Getting Started: OneTrust SDKs\": \"https://my.onetrust.com/s/article/UUID-0297af95-8515-28ff-6f86-0f489f3c3e54?topicId=0TO1Q000000wxmbWAA\",\n                    \"Server-Side CMP APIs\": \"https://developer.onetrust.com/onetrust/docs/server-side-cmp-api-introduction\",\n                    \"Third-Party Integration Guides\": \"https://developer.onetrust.com/onetrust/docs/add-script-to-website\",\n                    \"Explore our LLMs.txt file – Help AI understand our docs smarter and faster\": \"https://developer.onetrust.com/onetrust/v1.0/llms.txt\"\n                };\n            } else if (currentPath.includes('/onetrust/changelog')) {\n                links = {\n                    \"Release Notes\": \"https://my.onetrust.com/s/release-notes\",\n                    \"Scheduled Maintenance\": \"https://my.onetrust.com/s/article/Scheduled-Maintenance\",\n                    \"System Status\": \"https://my.onetrust.com/s/system-status\",\n                    \"Explore our LLMs.txt file – Help AI understand our docs smarter and faster\": \"https://developer.onetrust.com/onetrust/v1.0/llms.txt\"\n                };\n            } else if (currentPath.includes('/onetrust/recipes')) {\n                links = {\n                    \"Download API Specs\": \"https://developer.onetrust.com/onetrust/openapi\",\n                    \"Integrations Knowledge Base\": \"https://my.onetrust.com/s/topic/0TO1Q000000ItT9WAK/integrations\",\n                    \"Explore our LLMs.txt file – Help AI understand our docs smarter and faster\": \"https://developer.onetrust.com/onetrust/v1.0/llms.txt\"\n                };\n            } else if (currentPath.includes('/onetrust/page/partners')) {\n                links = {\n                    \"Integrations Knowledge Base\": \"https://my.onetrust.com/s/topic/0TO1Q000000ItT9WAK/integrations\",\n                    \"Getting Started: OneTrust APIs\": \"https://developer.onetrust.com/onetrust/reference/quick-start-guide\",\n                    \"API Rate Limiting\": \"https://developer.onetrust.com/onetrust/reference/rate-limits-overview\",\n                    \"Implementing Pagination\": \"https://developer.onetrust.com/onetrust/reference/understanding-implementing-pagination\",\n                    \"Explore our LLMs.txt file – Help AI understand our docs smarter and faster\": \"https://developer.onetrust.com/onetrust/v1.0/llms.txt\"\n                };\n            } else {\n                links = {\n                    \"Developer Forum\": \"https://my.onetrust.com/s/group/0F91Q000000hGyPSAU/developer-experience\",\n                    \"Explore our LLMs.txt file – Help AI understand our docs smarter and faster\": \"https://developer.onetrust.com/onetrust/v1.0/llms.txt\"\n                };\n            }\n\n            // Get the Links Div\n            const container = document.querySelector('.onetrust-floating-links');\n            // Iterate over the links object and create \u003ca> elements\n            Object.entries(links).forEach(([title, url]) => {\n                const a = document.createElement('a');\n                a.href = url;\n                a.target = '_blank';\n                a.textContent = title;\n                container.appendChild(a);\n            });\n        }\n        // Function to reset Rate your Experience button\n        function resetRateExperience() {\n            document.getElementById(\"rateExperienceBtn\").style.display = \"flex\";\n            document.getElementById(\"voteNewFeatures\").style.display = \"flex\";\n            document.getElementById(\"thumbsOptions\").style.display = \"none\";\n            document.getElementById(\"commentInput\").style.display = \"none\";\n            document.getElementById(\"submitButton\").style.display = \"none\";\n            document.getElementById(\"thumbsUpBtn\").blur();\n            document.getElementById(\"thumbsUpBtn\").style.color = \"currentcolor\";\n            document.getElementById(\"thumbsDownBtn\").style.color = \"currentcolor\";\n            document.getElementById(\"thumbsDownBtn\").blur();\n            document.getElementById(\"commentInput\").querySelector('textarea').value = \"\";\n            document.getElementById(\"otStatusAlert\").style.display = \"none\";\n            document.getElementById(\"successMessage\").style.display = \"none\";\n            const a = document.querySelectorAll('.onetrust-floating-links a');\n            a.forEach((link) => {\n                link.parentNode.removeChild(link);\n            });\n        }\n        async function fetchHighestComponentGroupStatus() {\n            const url = 'https://try.readme.io/https://onetruststatus-1564678085559.site24x7statusiq.com/sp/api/public/summary_details/statuspages/ap5x50QW8NIw4SPq2SZXYXycmr53nFVf_CF7exQFdPY=?period=27&timezone=America/Chicago';\n\n            try {\n                const response = await fetch(url, {\n                    headers: {\n                        \"Content-Type\": \"application/json\",\n                    }, referrerPolicy: \"origin\" // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url\n                });\n                if (!response.ok) {\n                    throw new Error(`HTTP error! status: ${response.status}`);\n                }\n                const data = await response.json();\n                if (data.code !== 0 || !data.data || !data.data.current_status) {\n                    throw new Error('Unexpected response format');\n                }\n                // Extract componentgroup_status values and filter out undefined or non-numeric values\n                const statuses = data.data.current_status.map(status => status.componentgroup_status).filter(status => typeof status === 'number' && !isNaN(status));\n                // Get the highest status, default to -Infinity if no valid statuses are found\n                const highestStatus = statuses.length > 0 ? Math.max(...statuses) : -Infinity;\n                if (highestStatus > 2) { //1: Good, 2: Info, 3: Maint, etc. \n                    document.getElementById(\"otStatusAlert\").style.display = \"block\";\n                }\n                return highestStatus;\n            } catch (error) {\n                console.error('Error fetching data:', error);\n            }\n        }\n\n\n        // Start Thumb Voting Spam HONEYPOT\n        document.addEventListener(\"DOMContentLoaded\", function () {\n            const observer = new MutationObserver(function () {\n                const commentTextarea = document.querySelector(\".PageThumbs-comment_input\");\n                const voteButton = document.querySelector(\".PageThumbs-comment_submit\");\n\n                // Function to evaluate the state of the form\n                const evaluateFormState = () => {\n                    const honeypot = document.querySelector(\n                        'input[name=\"commentConfirmationRequired\"]'\n                    );\n                    if (honeypot && voteButton) {\n                        // Disable the button if the honeypot is filled or the comment box is empty\n                        voteButton.disabled =\n                            commentTextarea.value.trim() === \"\" || honeypot.value.trim() !== \"\";\n                    }\n                };\n\n                if (commentTextarea && voteButton) {\n                    // If both elements exist, proceed with the rest of the code\n\n                    // Change the entire comment prompt to \"Please comment to vote\"\n                    const commentLabel = commentTextarea\n                        .closest(\".Box2uBHSWG8DzPz\")\n                        .querySelector(\"label\");\n                    if (commentLabel) {\n                        commentLabel.childNodes.forEach((node) => {\n                            if (node.nodeType === Node.TEXT_NODE) {\n                                node.nodeValue = \"Please comment to vote\";\n                            }\n                        });\n                    }\n\n                    // Continuously monitor and enforce the disabled state based on form conditions\n                    setInterval(evaluateFormState, 100);\n\n                    // Ensure the honeypot field is added only once\n                    if (\n                        !document.querySelector('input[name=\"commentConfirmationRequired\"]')\n                    ) {\n                        const honeypot = document.createElement(\"input\");\n                        honeypot.setAttribute(\"type\", \"text\");\n                        honeypot.setAttribute(\"name\", \"commentConfirmationRequired\");\n                        honeypot.style.opacity = \"0\";\n                        honeypot.style.position = \"absolute\";\n                        honeypot.setAttribute(\"tabindex\", \"-1\");\n                        commentTextarea.parentNode.insertBefore(\n                            honeypot,\n                            commentTextarea.nextSibling\n                        );\n                    }\n\n                    // Evaluate form state on input\n                    commentTextarea.addEventListener(\"input\", evaluateFormState);\n                    document\n                        .querySelector('input[name=\"commentConfirmationRequired\"]')\n                        .addEventListener(\"input\", evaluateFormState);\n\n                    // Double-check before submission\n                    const form = voteButton.closest(\"form\");\n                    if (form) {\n                        form.addEventListener(\"submit\", function (event) {\n                            evaluateFormState(); // Ensure the form state is evaluated one last time before submission\n                            if (voteButton.disabled) {\n                                event.preventDefault(); // Prevent form submission if conditions are not met\n\n                            }\n                        });\n                    }\n                }\n            });\n\n            observer.observe(document.body, { childList: true, subtree: true });\n        });\n\n        /* Disabling for now since its taking out the emails, if we get spam, we will enable \n        // Thumb Voting Spam METRICS\n        document.addEventListener(\"DOMContentLoaded\", function () {\n          // Check if fetch has already been overridden to avoid multiple overrides\n          if (window.fetch.isOverridden) return;\n        \n          // Save the original fetch function\n          const originalFetch = window.fetch;\n        \n          // Override fetch to intercept requests\n          window.fetch = async (input, init) => {\n            // Check if the request matches the voting endpoint\n            if (typeof input === 'string' && input.includes('/metrics-proxy/create/thumb')) {\n              try {\n                // Check if it's a POST request with a JSON body\n                if (init && init.method === 'POST' && init.body) {\n                  const payload = JSON.parse(init.body);\n        \n                  // Retrieve the actual comment text from the text input field on the page\n                  const commentTextarea = document.querySelector(\".PageThumbs-comment_input\");\n                  console.log(commentTextarea);\n                  const actualComment = commentTextarea ? commentTextarea.value.trim() : \"\";\n                  console.log(actualComment);\n        \n                  // Define patterns for known spam and injection attempts\n                  const suspiciousPatterns = [\n                    /\u003cscript.*?>|\u003c\\/.*?>/i, // HTML tags or any closing tags\n                    /DBMS_PIPE|PG_SLEEP|waitfor delay|sleep|sysdate/i, // SQL injection and delay keywords\n                    /['\";|&@$%\u003c>]/, // Special characters common in injection attacks\n                    /[\\'\\\"]{2,}/, // Multiple consecutive quotes (e.g., '' or \"\")\n                    /^\\s*✅ VERIFIED\\s*$/ // Matches exactly \"✅ VERIFIED\"\n                  ];\n        \n                  // Check for suspicious patterns\n                  const isSuspicious = suspiciousPatterns.some((pattern) => pattern.test(actualComment));\n                  if (isSuspicious) {\n                    console.warn(\"Blocked suspicious submission due to spam/injection pattern.\");\n                    return; // Cancel the fetch by returning early\n                  }\n        \n                  // Apply conditional verification based on actual comment field content\n                  if (actualComment !== \"\") {\n                    // If there's a non-empty comment in the input, append \" | ✅ APPROVED\"\n                    payload.comments = actualComment + \" | ✅ APPROVED\";\n                    console.log(payload.comments);\n                  } else {\n                    // If comments are empty, log and cancel the fetch\n                    console.warn(\"Blocked submission due to empty comment.\");\n                    return; // Cancel the fetch by returning early\n                  }\n        \n                  // Fallback: if payload.comments is empty after all checks, mark as \"❌ UNVERIFIED\"\n                  if (!payload.comments || payload.comments.trim() === \"\") {\n                    payload.comments = \"❌ UNVERIFIED\";\n                  }\n        \n                  // Replace the original body with the modified payload\n                  init.body = JSON.stringify(payload);\n                }\n              } catch (error) {\n                console.error(\"Error modifying payload:\", error);\n              }\n            }\n        \n            // Proceed with the original fetch function using the (potentially modified) init\n            return originalFetch(input, init);\n          };\n        \n          // Mark fetch as overridden\n          window.fetch.isOverridden = true;\n        });\n        */\n        // End Thumb Voting Spam HONEYPOT\n\n        // Initialize the help widget when the page loads\n        window.addEventListener('DOMContentLoaded', initHelpWidget);\n\n        // Fallback initialization in case DOMContentLoaded already fired\n        if (document.readyState === 'complete' || document.readyState === 'interactive') {\n            console.log('Document already loaded, initializing help widget now');\n            setTimeout(initHelpWidget, 1000);\n        }\n\n        // Add a global click handler as another fallback\n        document.addEventListener('click', function (e) {\n            if (e.target.closest('#helpButton')) {\n                console.log('Help button clicked via global handler');\n                toggleHelpContainer();\n            }\n        });","html_promo":"","html_body":"","html_footer":"\u003chead>\n\n\n\n\n    \u003cstyle>\n        /* Floating button */\n        .onetrust-floating-button {\n            position: fixed;\n            bottom: 20px;\n            right: 20px;\n            background: linear-gradient(to top, #4F9D81, #6672C4);\n            color: #fff;\n            width: 60px;\n            height: 60px;\n            border-radius: 50%;\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            cursor: pointer;\n            transition: transform ease-out 0.1s, background 0.2s;\n            transition: background-color 0.3s, transform 0.3s;\n            z-index: 1000;\n            box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);\n        }\n\n        .onetrust-floating-button:hover {\n            background-color: #388e3c;\n            transform: scale(1.1);\n            cursor: pointer\n        }\n\n        /* Container */\n        #onetrust-container {\n            position: fixed;\n            bottom: 90px;\n            right: 30px;\n            width: 410px;\n            border-radius: 10px;\n            box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);\n            z-index: 999;\n            overflow: hidden;\n            /* Ensure content does not overflow */\n        }\n\n        #onetrust-container>.onetrust-top {\n            background: linear-gradient(to top, #4F9D81, #6672C4);\n            color: #fff;\n            padding: 20px;\n            border-radius: 10px 10px 0 0;\n            position: relative;\n        }\n\n        #onetrust-container>.onetrust-bottom {\n            background-color: white;\n            padding: 20px;\n            border-radius: 0 0 10px 10px;\n        }\n\n        #onetrust-container>.onetrust-bottom::before {\n            content: \"\";\n            position: absolute;\n            top: -20px;\n            left: 0;\n            width: 100%;\n            height: 0px;\n            background-color: white;\n        }\n\n        #onetrust-container>.onetrust-top::after {\n            content: \"\";\n            position: absolute;\n            bottom: -20px;\n            left: 0;\n            width: 100%;\n            height: 0px;\n            background: transparent;\n        }\n\n        .onetrust-floating-header {\n            display: flex;\n            align-items: center;\n            justify-content: space-between;\n            padding-bottom: 10px;\n        }\n\n        .onetrust-floating-header h1 {\n            color: #fff;\n            font-size: 20px;\n        }\n\n        .onetrust-floating-greeting {\n            color: #fff;\n            font-size: 28px;\n            font-weight: bold;\n        }\n\n        .onetrust-floating-links {\n            margin-top: 20px;\n            color: #fff;\n        }\n\n        .onetrust-floating-links a {\n            display: list-item;\n            color: #fff;\n            margin-bottom: 5px;\n            text-decoration: none;\n            transition: color 0.3s;\n            margin-left: 30px;\n            font-size: 18px;\n        }\n\n        .onetrust-floating-links span {\n            margin-bottom: 10px;\n            display: block;\n            font-size: 18px;\n        }\n\n        .onetrust-floating-links a:hover {\n            text-decoration: underline\n        }\n\n        .onetrust-floating-buttons {\n            display: flex;\n            flex-direction: column;\n            text-align: left;\n        }\n\n        .onetrust-top {\n            max-height: 400px;\n            /* Set your desired maximum height */\n            overflow-y: auto;\n            /* Enable vertical scrolling */\n        }\n\n        .onetrust-button {\n            background-color: #fff;\n            color: #4F9D81;\n            border: 1px solid;\n            border-radius: 5px;\n            padding: 10px;\n            font-size: 16px;\n            margin-bottom: 10px;\n            display: flex;\n            align-items: center;\n            transition: background-color 0.3s;\n        }\n\n        .onetrust-button:hover {\n            background-color: #f1f1f1;\n            cursor: pointer;\n        }\n\n        .onetrust-button-span {\n            margin-left: 10px;\n            margin-right: 10px;\n            text-align: left;\n        }\n\n        i.onetrust-svg.fas {\n            font-size: xx-large;\n        }\n\n        i.onetrust-svg.fas.fa-lightbulb {\n            padding-left: 5px;\n            width: 1em;\n        }\n\n        svg.svg-inline--fa.fa-thumbs-up.fa-w-16 {\n            font-size: x-large;\n        }\n\n        svg.svg-inline--fa.fa-thumbs-down.fa-w-16 {\n            font-size: x-large;\n        }\n\n        span.onetrust-svg-inline.help-icon {\n            font-size: xx-large;\n        }\n\n        svg.onetrust-svg {\n            font-size: xx-large;\n        }\n\n        svg.svg-inline--fa.fa-lightbulb.onetrust-svg {\n            width: 1.2em;\n        }\n\n        /* Additional styles for thumbs up/down options */\n        .thumbs-options {\n            display: none;\n            justify-content: space-evenly;\n            align-items: center;\n            color: var(--slate);\n            /* Apply this rule through a CSS class */\n        }\n\n        .thumbs-options button {\n            border: none;\n            color: currentcolor;\n            margin-bottom: 0px;\n        }\n\n\n        .comment-input {\n            display: none;\n            margin-top: 10px;\n        }\n\n        .comment-input textarea {\n            width: 100%;\n            resize: vertical;\n            margin-top: 5px;\n            background: white;\n          \tcolor: var(--gray20);\n        }\n      \n        .PageThumbs-email_input {\n            width: 100%;\n            resize: vertical;\n            margin-top: 5px;\n            background: white;\n          \tcolor: var(--gray20);\n        }\n\n        .submit-btn {\n            display: none;\n            margin-top: 10px;\n            font-weight: bold;\n        }\n\n        .alert-icon {\n            position: absolute;\n            top: 35px;\n            right: 35px;\n            font-size: 25px;\n            color: white;\n            animation: pulsate 1.5s infinite;\n        }\n\n        .alert-icon:hover {\n            cursor: pointer;\n        }\n\n        @keyframes pulsate {\n            0% {\n                transform: scale(1);\n            }\n\n            50% {\n                transform: scale(1.3);\n            }\n\n            100% {\n                transform: scale(1);\n            }\n        }\n    \u003c/style>\n\u003c/head>\n\n\u003cbody>\n    \u003c!-- Floating button with help icon -->\n    \u003cdiv class=\"onetrust-floating-button\" id=\"helpButton\">\n        \u003cspan class=\"onetrust-svg-inline help-icon\">\u003ci class=\"fas fa-question\">\u003c/i>\u003c/span>\n    \u003c/div>\n    \u003c!-- OneTrust container -->\n    \u003cdiv id=\"onetrust-container\" style=\"display: none;\">\n        \u003cdiv class=\"onetrust-top\">\n            \u003ca id=\"otStatusAlert\" style=\"display: none;\"\n                href=\"https://onetruststatus-1564678085559.site24x7statusiq.com/\" target=\"_blank\">\u003ci\n                    class=\"fas fa-triangle-exclamation alert-icon\">\u003c/i>\u003c/a>\n            \u003cdiv class=\"onetrust-floating-header\">\n            \u003c/div>\n            \u003cdiv class=\"onetrust-floating-greeting\">\n                \u003cspan id=\"greeting-name\" style=\"padding-bottom:10px\">👋 Hi there!\u003c/span>\u003cbr>\u003cbr>\n                \u003cspan style=\"font-size:23px\">Start Learning.\u003c/span>\n                \u003cspan style=\"font-size:23px\">Start Building.\u003c/span>\n                \u003cspan style=\"font-size:23px\">Start Launching! 🚀\u003c/span>\n            \u003c/div>\n            \u003cdiv class=\"onetrust-floating-links\">\n                \u003cspan>These resources can help you get started:\u003c/span>\n\n            \u003c/div>\n        \u003c/div>\n        \u003cdiv class=\"onetrust-bottom\">\n            \u003cdiv class=\"onetrust-floating-buttons\">\n                \u003cbutton class=\"onetrust-button\" id=\"rateExperienceBtn\">\n                    \u003cspan class=\"onetrust-button-span\">\u003ci class=\"onetrust-svg fas fa-star\">\u003c/i>\u003c/span>\n                    \u003cspan class=\"onetrust-button-span\">\u003cstrong>Rate your Experience\u003c/strong>\u003cbr>\u003csmall>Share overall\n                            feedback\u003c/small>\u003c/span>\n                \u003c/button>\n                \u003cdiv class=\"thumbs-options\" id=\"thumbsOptions\">\n                    \u003cspan>\u003cstrong>Did this page help you?\u003c/strong>\u003c/span>\u003cbr>\u003cbr>\n                    \u003cbutton class=\"onetrust-button\" id=\"thumbsUpBtn\">\u003ci class=\"onetrust-svg fas fa-thumbs-up\">\u003c/i>\u003cspan\n                            class=\"onetrust-button-span\">Yes\u003c/span>\u003c/button>\n                    \u003cbutton class=\"onetrust-button\" id=\"thumbsDownBtn\">\u003ci\n                            class=\"onetrust-svg fas fa-thumbs-down\">\u003c/i>\u003cspan\n                            class=\"onetrust-button-span\">No\u003c/span>\u003c/button>\n                \u003c/div>\n                \u003cdiv class=\"comment-input\" id=\"commentInput\">\n                   \u003cinput id=\"feedbackEmail\"\n                        class=\"Input Input_md Input_touched PageThumbs-email_input\"\n                        placeholder=\"Optional: Provide your email for a response\">\u003c/input>\n                    \u003ctextarea id=\"feedbackTextarea\"\n                        class=\"Textarea Textarea_md Textarea_vertical PageThumbs-comment_input\"\n                        placeholder=\"Please provide additional comments...\">\u003c/textarea>\n                    \u003cspan class=\"onetrust-button-span\" id=\"commentError\" style=\"color: darkred; display: none;\">Please\n                        enter your feedback.\u003c/span>\n                    \u003cspan class=\"onetrust-button-span\" id=\"successMessage\"\n                        style=\"color: darkgreen; display: none;\">Feedback submitted\n                        successfully!\u003c/span>\n                \u003c/div>\n                \u003cbutton class=\"submit-btn onetrust-button\" id=\"submitButton\">Submit Feedback\u003c/button>\n                \u003cbutton class=\"onetrust-button\" id=\"voteNewFeatures\"\n                    onclick=\"window.open('https://ideas.onetrust.com','_blank');\" type=\"button\">\n                    \u003cspan class=\"onetrust-button-span\">\u003ci class=\"onetrust-svg fas fa-lightbulb\">\u003c/i>\u003c/span>\n                    \u003cspan class=\"onetrust-button-span\">\u003cstrong>Vote on New Features\u003c/strong>\u003cbr>\u003csmall>Have a say in\n                            what we build\n                            next\u003c/small>\u003c/span>\n                \u003c/button>\n\n            \u003c/div>\n        \u003c/div>\n    \u003c/div>\n\u003c/body>\n\n\u003c/html>","html_head":"\u003cdiv id=\"brave-warning\" class=\"Banner2qY-Hhfqm_Gx Banner_secondary1reFai47T0j4 Banner_smUPcJRlth4_Dl Banner_fixeda1mFpjcc1TJ6\" style=\"display:none\">\u003ci class=\"icon-warning\">\u003c/i>We've detected that you are using the Brave browser. This site does not display correctly when the Brave Shields are enabled. Please set your Shields to Down.\u003c/div>\n\u003clink href='https://fonts.googleapis.com/css?family=Open Sans' rel='stylesheet'>","html_footer_meta":"","html_hidelinks":false,"showVersion":false,"hideTableOfContents":false,"nextStepsLabel":"","promos":[{"extras":{"type":"search","buttonPrimary":"get-started","buttonSecondary":"reference"},"title":"Welcome to the OneTrust Developer Portal","text":"The OneTrust Developer Portal allows you to leverage APIs and SDKs to seamlessly integrate external systems and streamline the flow of data with the OneTrust platform.","_id":"620d23a442d78f05786a49c6"}],"loginLogo":[],"logo_large":false,"colorScheme":"system","changelog":{"layoutExpanded":false,"showAuthor":false,"showExactDate":true},"allowApiExplorerJsonEditor":true,"ai_dropdown":"enabled","ai_options":{"chatgpt":"enabled","claude":"enabled","clipboard":"enabled","view_as_markdown":"enabled","copilot":"enabled","perplexity":"enabled","ask_ai":"disabled","mcp":{"command":"enabled","config":"enabled","cursor":"enabled","vscode":"enabled"}},"showPageIcons":true,"layout":{"full_width":true,"style":"classic"},"methodBadgeStyle":"classic","showMethodInSidebar":true,"showBreadcrumbs":true,"collapsibleCategories":true,"oneOfLayout":"dropdown"},"custom_domain":"","childrenProjects":[],"derivedPlan":"enterprise","description":"The OneTrust Developer Portal allows you to leverage APIs and SDKs to seamlessly integrate external systems and streamline the flow of data with the OneTrust platform.","hstsIncludeSubdomains":true,"planSchedule":{"stripeScheduleId":null,"changeDate":null,"nextPlan":null},"planStatus":"","shouldGateDash":false,"isExternalSnippetActive":false,"error404":"404","first_page":"reference","flags":{"allow_hub2":false,"enterprise":false,"alwaysShowDocPublishStatus":false,"hub2":true,"migrationRun":false,"migrationSwaggerRun":false,"oauth":false,"swagger":false,"correctnewlines":false,"rdmdCompatibilityMode":false,"speedyRender":false,"allowXFrame":true,"newEditor":true,"newEditorDash":true,"oldMarkdown":false,"newMarkdownBetaProgram":true,"useReactApp":true,"disableAnonForum":false,"directGoogleToStableVersion":false,"translation":false,"staging":false,"newSearch":true,"graphql":false,"allowApiExplorerJsonEditor":false,"singleProjectEnterprise":false,"dashReact":false,"metricsV2":true,"enableRealtimeExperiences":false,"reviewWorkflow":true,"star":false,"allowDarkMode":false,"forceDarkMode":false,"useReactGLP":false,"disablePasswordlessLogin":false,"personalizedDocs":false,"myDevelopers":false,"superHub":true,"developerDashboard":false,"allowReusableOTPs":false,"dashHomeRefresh":false,"owlbotAi":false,"apiV2":false,"git":{"read":false,"write":false},"superHubBeta":false,"dashQuickstart":false,"disableAutoTranslate":false,"customBlocks":false,"devDashHub":false,"disableSAMLScoping":false,"allowUnsafeCustomHtmlSuggestionsFromNonAdmins":false,"apiAccessRevoked":false,"passwordlessLogin":"default","disableSignups":false,"billingRedesignEnabled":true,"developerPortal":false,"mdx":false,"superHubDevelopment":false,"annualBillingEnabled":true,"devDashBillingRedesignEnabled":false,"enableOidc":false,"customComponents":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":true,"superHubMigrationSelfServeFlow":false,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":true,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false,"superHubBranches":false,"requiresJQuery":true,"externalSdkSnippets":false,"migrationPreview":false,"superHubPreview":false,"superHubBranchReviews":false,"superHubMergePermissions":false,"dryRunMigration":false,"aiDocsAudit":false,"aiPageLinting":false,"githubCloudSync":false,"disableAiChat":false,"enableSuggestedEdits":false,"superHubBranchMergeRules":false,"superHubBranchReviewActions":false,"gitTranslations":false,"bidiSyncGitlabSelfServe":false,"gitlabCloudSync":false,"superHubPlanManagement":false,"bidiSyncBitbucketSelfServe":false,"mdxSanitizeComments":false,"mdxish":true,"disableSuperframe":false,"hideAiFeatures":false,"gittoUseNewIndexer":true,"mdxishEditor":true,"prefetch":false,"aiWriter":false,"superHubBranchReviewDashboard":false,"bidiSyncUseOdbAlternates":true,"mcpMetrics":false,"newDereferencer":false,"newIframeStructure":false,"streamingSsr":false,"googleAuthEnabled":false,"superHubNotifications":false,"superHubTypography":false,"newExplorerReducer":false,"gittoUseExperimentalMDXCache":false,"gittoUseConnectionPooling":false,"askAiOverride":"","superHubSlack":false,"customDomainAdminBypass":false,"aiDiscovery":false,"branchTaggedReviewers":false,"jwtReplacePermissions":false,"mcpOauth":false,"superHubBranchReviewSummaries":false,"superHubSlackNotifications":false,"aiTranslation":false,"superHubUiTesting":false},"fullBaseUrl":"https://onetrust.readme.io/","git":{"aiWriter":{"setup":{"error":{}}},"migration":{"createRepository":{"end":"2025-12-15T10:03:07.632Z","start":"2025-12-15T10:03:07.281Z","status":"successful"},"transformation":{"end":"2025-12-15T10:03:13.757Z","start":"2025-12-15T10:03:09.119Z","status":"successful"},"migratingPages":{"end":"2025-12-15T10:03:15.181Z","start":"2025-12-15T10:03:14.441Z","status":"successful"},"enableSuperhub":{"start":"2025-12-15T11:20:19.355Z","status":"successful","end":"2025-12-15T11:20:19.356Z"}},"sync":{"installationRequest":{},"connections":[],"providers":[]},"migrationType":"preview","renamedSlugs":[]},"glossaryTerms":[{"term":"client_id","definition":"Unique identifier for the OneTrust client credential.","_id":"6944272f3991ecfaaf896a2e"},{"term":"grant_type","definition":"decides the type of access. OneTrust supports both password and client_credentials grant type","_id":"6944272f3991ecfaaf896a2f"},{"term":"client_secret","definition":"a one-time hexadecimal string that is issued and displayed at the time of client credential creation.","_id":"6944272f3991ecfaaf896a30"},{"term":"environment","definition":"The applicable Environment where each OneTrust tenant is hosted can be identified based on the URL, for example, https://app.onetrust.com would be the App Environment.","_id":"6944272f3991ecfaaf896a31"},{"term":"environments","definition":"The applicable Environment where each OneTrust tenant is hosted can be identified based on the URL, for example, https://app.onetrust.com would be the App Environment.","_id":"6944272f3991ecfaaf896a32"},{"term":"account","definition":"OneTrust accounts are hosted in a OneTrust Environment. Accounts are normally provisioned to customers or partners and many users share access to the same account. It is possible for a single user to have access to multiple accounts in an environment. You can switch between accounts by clicking on the User icon in the OneTrust Application and selecting Switch Tenants.","_id":"6944272f3991ecfaaf896a33"}],"graphqlSchema":"","gracePeriod":{"enabled":false,"endsAt":null},"healthCheck":{"provider":"manual","settings":{"page":"","status":true,"url":"https://onetruststatus-1564678085559.site24x7signals.com"}},"i18n":{"defaultLanguage":"en","languages":["en"],"state":"enabled"},"intercom":"","is_active":true,"internal":"","jwtExpirationTime":0,"landing_bottom":[{"type":"html","alignment":"left","html":"\u003cmain class=\"LandingWrap16kRMSdr5J8g rm-LandingPage\" id=\"content\">\n    \u003cdiv class=\"LandingBlock3PM-HyBxby3X LandingBlock_align=leftG1r7ROyW_AGB\">\n        \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n            \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"what-is-onetrust\">\u003c/div>\n                \u003cdiv class=\"heading-text\">\n                    \u003cdiv id=\"section-what-is-one-trust\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>What is\n                    OneTrust?\n                \u003c/div>\u003ca aria-label=\"Skip link to What is OneTrust?\" class=\"heading-anchor-icon fa fa-anchor\"\n                    href=\"#what-is-onetrust\">\u003c/a>\n            \u003c/h2>\n            \u003cp>OneTrust is the #1 most widely used platform to operationalize privacy, security &amp; governance. More\n                than 12,000 customers use OneTrust to build integrated programs that comply with the CCPA, GDPR, LGPD,\n                PDPA, ISO27001, and hundreds of the world’s privacy and security laws.\u003c/p>\n        \u003c/div>\n    \u003c/div>\n    \u003cdiv class=\"LandingBlock3PM-HyBxby3X LandingBlock_align=leftG1r7ROyW_AGB\">\n        \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n            \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"who-is-onetrust-for\">\u003c/div>\n                \u003cdiv class=\"heading-text\">\n                    \u003cdiv id=\"section-who-is-one-trust-for\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>Who is\n                    OneTrust for?\n                \u003c/div>\u003ca aria-label=\"Skip link to Who is OneTrust for?\" class=\"heading-anchor-icon fa fa-anchor\"\n                    href=\"#who-is-onetrust-for\">\u003c/a>\n            \u003c/h2>\n            \u003cp>OneTrust offers Privacy Management, Third-Party Risk, GRC, Data Governance, Preference &amp; Consent\n                Management, and Ethics &amp; Compliance solutions built for those focused on using technology to be a\n                more trusted organization.\u003c/p>\n            \u003chr>\n        \u003c/div>\n    \u003c/div>\n    \u003cdiv class=\"LandingBlock3PM-HyBxby3X LandingBlock_align=leftG1r7ROyW_AGB\">\n        \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n            \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"-getting-started\">\u003c/div>\n                \u003cdiv class=\"heading-text\">\n                    \u003cdiv id=\"section-💡-getting-started\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>💡 Getting\n                    Started\n                \u003c/div>\u003ca aria-label=\"Skip link to 💡 Getting Started\" class=\"heading-anchor-icon fa fa-anchor\"\n                    href=\"#-getting-started\">\u003c/a>\n            \u003c/h2>\n            \u003cp>The OneTrust Developer Portal offers a variety of resources to help you get started with integrating\n                seamlessly into the OneTrust platform. With the OneTrust Developer Portal, you can:\u003c/p>\n        \u003c/div>\n    \u003c/div>\n    \u003cdiv class=\"LandingBlock3PM-HyBxby3X LandingBlock-Three2lm6yBrv1MlV LandingBlock_align=leftG1r7ROyW_AGB\">\n        \u003cdiv class=\"LandingBlock3PM-HyBxby3X\">\n            \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n                \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                    \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"-api-reference\">\u003c/div>\n                    \u003cdiv class=\"heading-text\">\n                        \u003cdiv id=\"section-💻-api-reference\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>\u003ci class=\"icon-references\">\u003c/i> API\n                        Reference\n                    \u003c/div>\u003ca aria-label=\"Skip link to 💻 API Reference\" class=\"heading-anchor-icon fa fa-anchor\"\n                        href=\"#-api-reference\">\u003c/a>\n                \u003c/h2>\n                \u003cp>Explore APIs that you can use to integrate seamlessly into the OneTrust platform.\u003c/p>\n                \u003cp>\u003ca target=\"_self\" href=\"/onetrust/reference\">View More &gt;\u003c/a>\u003c/p>\n            \u003c/div>\n        \u003c/div>\n        \u003cdiv class=\"LandingBlock3PM-HyBxby3X\">\n            \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n                \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                    \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"-sdk-reference\">\u003c/div>\n                    \u003cdiv class=\"heading-text\">\n                        \u003cdiv id=\"section-📱-sdk-reference\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>\u003ci class=\"icon-guides\">\u003c/i> SDK\n                        Reference\n                    \u003c/div>\u003ca aria-label=\"Skip link to 📱 SDK Reference\" class=\"heading-anchor-icon fa fa-anchor\"\n                        href=\"#-sdk-reference\">\u003c/a>\n                \u003c/h2>\n                \u003cp>Discover what you can do with the SDKs and review resources to help you get started.\u003c/p>\n                \u003cp>\u003ca target=\"_self\" href=\"/onetrust/docs\">View More &gt;\u003c/a>\u003c/p>\n            \u003c/div>\n        \u003c/div>\n        \u003cdiv class=\"LandingBlock3PM-HyBxby3X\">\n            \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n                \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                    \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"-recipes\">\u003c/div>\n                    \u003cdiv class=\"heading-text\">\n                        \u003cdiv id=\"section-👨&zwj;🍳-recipes\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>\n                        \u003ci class=\"icon-recipes\">\u003c/i> Recipes\n                    \u003c/div>\u003ca aria-label=\"Skip link to 👨&zwj;🍳 Recipes\" class=\"heading-anchor-icon fa fa-anchor\"\n                        href=\"#-recipes\">\u003c/a>\n                \u003c/h2>\n                \u003cp>Discover code examples accompanied by detailed instructions to quickly initiate your understanding of\n                    the APIs.\u003c/p>\n                \u003cp>\u003ca target=\"_self\" href=\"/onetrust/recipes\">View More &gt;\u003c/a>\u003c/p>\n            \u003c/div>\n        \u003c/div>\n    \u003c/div>\n    \u003cdiv class=\"LandingBlock3PM-HyBxby3X LandingBlock_align=leftG1r7ROyW_AGB\">\n        \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n            \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"-get-help\">\u003c/div>\n                \u003cdiv class=\"heading-text\">\n                    \u003cdiv id=\"section-❓-get-help\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>❓ Get Help\n                \u003c/div>\u003ca aria-label=\"Skip link to ❓ Get Help\" class=\"heading-anchor-icon fa fa-anchor\"\n                    href=\"#-get-help\">\u003c/a>\n            \u003c/h2>\n            \u003cp>Review product documentation to learn more about features and how to configure your system to best\n                support your needs through myOneTrust, the official online community for OneTrust users, partners, and\n                experts.\u003c/p>\n            \u003cp>\u003ca target=\"_self\" href=\"https://my.onetrust.com/s/\">Go to the myOneTrust Community\u003c/a>\u003c/p>\n            \u003chr>\n            \u003cp>Discuss use cases, best practices, and more with other OneTrust users and the OneTrust product team. Our\n                support team is happy to answer any questions, concerns, or feedback from you.\u003c/p>\n            \u003cp>\u003ca target=\"_self\" href=\"https://my.onetrust.com/s/group/0F91Q000000hGyPSAU/developer-experience\">Go to\n                    the Developer Forum\u003c/a>\u003c/p>\n        \u003c/div>\n\u003c/main>"}],"mcp":{"state":"enabled"},"mdxishMigrationStatus":{"migratedFrom":"rdmd"},"metrics":{"monthlyLimit":0,"planLimit":20000000,"thumbsEnabled":true,"realtime":{"dashEnabled":false,"hubEnabled":false},"monthlyPurchaseLimit":0,"meteredBilling":{}},"modules":{"changelog":true,"custompages":false,"discuss":false,"docs":true,"examples":true,"graphql":false,"landing":false,"reference":true,"suggested_edits":false,"tutorials":true},"name":"OneTrust Developer Portal","nav_names":{"docs":"SDK Reference","reference":"API Reference","changelog":"","discuss":"","tutorials":"","recipes":""},"oauth_url":"","onboardingCompleted":{"documentation":true,"appearance":true,"jwt":true,"api":true,"logs":true,"domain":true,"metricsSDK":false,"aiReady":false},"owlbot":{"enabled":false,"isPaying":false,"customization":{"answerLength":"long","customTone":"","defaultAnswer":"","forbiddenWords":"","tone":"neutral","showAiDisclaimer":false,"advancedInstruction":"","advancedModeEnabled":false},"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""},"exampleQuestions":{"question1":"","question2":"","question3":""},"knowledge":"","modelList":[],"newExperience":false,"lastIndexed":"2025-12-01T06:21:54.022Z","knowledgeSegregation":false,"trial":{"isPaying":false},"v2":false,"llmOptions":{"model":{}}},"owner":{"id":"621fdfa10b019b00a39061a7","email":null,"name":null},"plan":"enterprise","planOverride":"","planTrial":"enterprise","readmeScore":{"components":{"newDesign":{"enabled":true,"points":25},"reference":{"enabled":true,"points":50},"tryItNow":{"enabled":true,"points":35},"syncingOAS":{"enabled":true,"points":10},"customLogin":{"enabled":true,"points":25},"metrics":{"enabled":false,"points":40},"recipes":{"enabled":true,"points":15},"pageVoting":{"enabled":true,"points":1},"suggestedEdits":{"enabled":true,"points":10},"support":{"enabled":false,"points":5},"htmlLanding":{"enabled":true,"points":5},"guides":{"enabled":true,"points":10},"changelog":{"enabled":true,"points":5},"glossary":{"enabled":true,"points":1},"variables":{"enabled":true,"points":1},"integrations":{"enabled":false,"points":2}},"totalScore":193},"reCaptchaSiteKey":"6Le7slwqAAAAAFLR-_Uv2FZE8TpMc5C-Dxv9NJ3A","reference":{"alwaysUseDefaults":true,"autoFillRequestExample":false,"defaultExpandResponseExample":true,"defaultExpandResponseSchema":true,"enableOAuthFlows":true,"fillOptionalObjectsOnExpand":true},"seo":{"overwrite_title_tag":true},"ssl":{"minTLS":"1.2"},"stable":{"_id":"620d23a542d78f05786a49c9","version":"1.0","version_clean":"1.0.0","codename":"Production","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["620d23a542d78f05786a49cb","620d23a542d78f05786a49cb","620d23a542d78f05786a49d1","620d2473d0e93a0147577007","620d24bdce6893002929091f","620d24f39b83cd06aa74818b","620d2523ffedb003e024ee7d","620d253c5a8ec60044cc283f","620d2f503f575f0085357683","620d2f58437c7300888cc8f1","620d2f5d1e70820053c8487e","620d3836756e210058c8f904","620d392a6e2aca0044c89703","620d394f133c23001469f94a","620d396849cf95003a296c15","620d39822fe6720123696ca9","620d39986d0c04003b89a588","620d3a056e2c5400134ae12e","620d3a11577d610014f942da","620d4f093501e50025da3212","620ead7670bf16002edfdeca","6213cf63166006002168275b","6213cfc142398701b6d559c7","6213d01e35c08e007af7154e","6217e4335f381d001a78bc95","6217e43d9d7459003dbe8442","6217e4457029dc0020f7a893","621d3b0fb07102002a0e46c2","621d3b880d8c0c00213c6aaf","621d3ba768e9e4005b6f28f4","621d3bb77f33770040d05b8b","621d3ca7feb971003d2e3dab","621d3d1a11141b009f241f66","621d3d7b5b549100464cf12b","621d3eed7df382001a7dc122","621e150f426ad900815c8491","621e495197363c00436e3247","621e508a7df382001a7ea87d","621e5253289e5a006ca29d2a","621e52a695667403d2657576","621e53c07826e100adbe4cd5","621e7683435d5500363e1e95","621e8c0e5b94ce0075e62d12","621e8d4ee2fa0e008d3ccb8b","621e8f3f96ccb200471ddedf","622101ba4bc000001a016fc1","622102c286d2e2004f070ed0","622102d6c3194a00401b1d03","622102e935622f01dffaa381","622102fe4bf43c00a1417ec0","62210322bd9404003e1a870d","6221033a312cfa003e1238af","622103f685254100359a8248","6221040a86f1860190999f3b","6221041698a26c0047d21499","6221042e02a8d1079728a975","62210458c3194a00401b2836","6221046a3ca945005896fcc8","62210481d7cabb02ac5c6b96","622104918be6c7003d11efb0","6221049cc50c02009fe0f2d9","622104b68be6c7003d11efc3","622104de6f7bf000421eea6f","62210511a99212005f069a8e","6221052135622f01dffab79c","6228bfe79fe43b003f2127b1","622a6c844a5d000091300995","622a6c9e2446cc004cc46cf3","622a6cb0020e410074215bc1","622a6cb9e73c66008dee09c7","622a6cbf8e69bf0086f1bf7d","622a6ccc25abea003782a791","622a6cd626b4b50044a9b5db","622a6cde93edf00092acfb57","622a6ce529777b007a3e3316","622a6ced29777b007a3e331a","622a6cf4ea012e004fdf7e3b","622a6cfc5a803d0014e6e66c","622a6d02a2dd3f003c2b4aee","622a6d1013a7100089b3609d","622f990bd149b3008faddff6","622f9f2ca14b00008866facd","622fa9fb7533ad031d14edae","622fadadf8045d03b4d06eb8","622fae8ab9d6dd001ac8536c","6242fcdd99025f003c836934","6242fce9f0b51d0013ef9567","624b3e735eb3110095b1ec88","624b3e97e621ce002e254018","624b408f80c997003962cb20","6269121b2948cb0043e0fd9b","62703cd945a84b005640a4b8","62863f09fcb84a028b91dc48","62863f556b5973009111f664","629a06719db2f70031f95f05","62b9c2bb676200008bee9bef","62b9c2e93ccfa0009d8c8881","62b9c3038c4c5d06d2e369fb","62b9c31b72164000486fd934","62dee51f9cc634007e756e2c","62dee540fd6d6b0094ad8e0f","6358300ad7c471001d6d36ed","6391cca17cc244002b43c1a4","63d9543d6b4b0d19521728e7","63d9a05a7f835300035f2b0f","6479029db81cb5005a012048","6479fa8f720835004fb08246","64b95979e8502b000ccaf692","64b95a52368bd1005e4fff54","64b96245c8d2760038e965ea","64b965d14dbc6500739de189","64b9a5f94ad6b7003cbe792d","64ba94b7385cf30074f2cbd2","64ba9773aa051f005ca2904c","64bab48a979377004a34a38e","64c021ade74ed2005220657d","64c028de30d55000431dbeeb","64c11e81f81ed315ad24eb5e","64c80f25e27d92004f1a92f6","65b1516e955afb00754bf2b8","65b16dbb846cfe004de567e3","65b9576864527400108c5f6b","65b9583b892ec00010a2de5d","65bbaff57adc2c00383c3eb7","660f0303ee20bf003603e699","662a626351f93800535e9b51","662a69b1de615f002bef2cab","6644d947d6d5c8005c6a25c0","66450590673d11005b075f09","665f23eeab28bc0024f024c3","66bb7b65404f700019a8c9b4","672aa7a509edfd001fd040bc","6762ed423e11680011660959","6785760141701b002a4933d7","67afa752428e61000ffcf09a","681a7964406a2b0020109f91","681a7b85bf5e2800320eba27","681a7ba44c52140067f7a67c","6877f036758df1087935898f","688ba11b0bb443d7cdaad7b3","688bb4c2ea0d0a4819368dcf","690266a365832928e04369a5","69036d7b6f266244b20e6755","69036f40ce5bb6d1ffd961ff"],"project":"620d23a442d78f05786a49c4","releaseDate":"2022-02-16T16:17:41.641Z","createdAt":"2022-02-16T16:17:41.641Z","__v":41,"pdfStatus":"complete","updatedAt":"2026-06-01T14:16:31.376Z","apiRegistries":[{"filename":"platform-access-management.json","uuid":"f9wagt2dmnf371hp"},{"filename":"consent-preferences-cross-device-consent.json","uuid":"17nirfrynmioyml91"},{"filename":"consent-preferences-consent-receipts.json","uuid":"djg2b1cmm5atb97"},{"filename":"data-use-governance-data-discovery.json","uuid":"f9y5bq4dmnf38yzh"},{"filename":"privacy-automation-data-subject-request-dsr-automation.json","uuid":"126cy96fmo00l53y"},{"filename":"platform-documents.json","uuid":"16f24a6mkbnajog"},{"filename":"privacy-automation-incident-management.json","uuid":"ed1q7xmpr23f44"},{"filename":"platform-integrations.json","uuid":"2ir2z8amkbnch3s"},{"filename":"consent-preferences-mobile-app-consent.json","uuid":"g12drq1cmha0gi7u"},{"filename":"consent-preferences-policy-notice-management.json","uuid":"dpouuafmkbnb6sv"},{"filename":"third-party-management-third-party-risk-management.json","uuid":"jnbn9omngaalfe"},{"filename":"tech-risk-compliance-it-risk-management.json","uuid":"1836s2zesmoiolqt7"},{"filename":"platform-user-provisioning.json","uuid":"2918ezf1cmnxsw93o"},{"filename":"tech-risk-compliance-training.json","uuid":"61jz5pmk4h6i1f"},{"filename":"platform-inventory.json","uuid":"5exah7omkbndrdk"},{"filename":"data-use-governance-data-catalog.json","uuid":"f9wagt1vmnf38yyy"},{"filename":"platform-object-manager.json","uuid":"d8d2i1dmo0txyoc"},{"filename":"data-use-governance-data-discovery-worker-node.json","uuid":"e9e7umls790bq"},{"filename":"tech-risk-compliance-audit-management.json","uuid":"1ddzbc29mls74i7m"},{"filename":"consent-preferences-cookie-domain-data.json","uuid":"m0wxemha0eww7"},{"filename":"esg-program-reporting-disclosures.json","uuid":"42ftpumls77pyw"},{"filename":"privacy-automation-assessment-automation.json","uuid":"35gzyjmowx7gao"},{"filename":"consent-preferences-consent-management-platform-cmp.json","uuid":"4hsgrw1ympr207cc"},{"filename":"platform-bulk-export.json","uuid":"5lumsmmm1qloo"},{"filename":"privacy-automation-data-mapping-automation.json","uuid":"1ddzbcjmls77q38"},{"filename":"tech-risk-compliance-issues-management.json","uuid":"dpouua7mkbndrde"},{"filename":"consent-preferences-consent-interfaces.json","uuid":"dpouua7mkbn7z36"},{"filename":"consent-preferences-universal-consent-preference-management-oas.json","uuid":"1pz7ampr8tonz"},{"filename":"platform-task-management.json","uuid":"4nl9g3nmon9lrsb"},{"filename":"tech-risk-compliance-compliance-automation.json","uuid":"b8hzre1gmls77q09"},{"filename":"consent-preferences-cookie-consent-swagger.json","uuid":"abzq02omhcdes8d"},{"filename":"privacy-automation-data-mapping-automation-swagger.json","uuid":"aafw8q5mmkn2zat4"},{"filename":"ai-governance.json","uuid":"3v3tt88mo0j5hoc"},{"filename":"tech-risk-compliance-enterprise-policy-management.json","uuid":"5ayeflmmm4cho3"},{"filename":"consent-preferences-cookie-consent.json","uuid":"duel7u20mo24pycm"}],"source":"readme"},"subdomain":"onetrust","subpath":"","topnav":{"left":[{"type":"url","text":"myOneTrust","url":"https://my.onetrust.com/s"},{"type":"url","text":"Developer Forum","url":"https://my.onetrust.com/s/group/0F91Q000000hGyPSAU/developer-experience"},{"type":"url","text":"Technology Partners","url":"https://developer.onetrust.com/onetrust/page/partners"}],"right":[{"type":"url","text":"Subscribe via RSS","url":"http://developer.onetrust.com/onetrust/changelog.rss"}],"bottom":[],"edited":true},"trial":{"trialDeadlineEnabled":false,"trialEndsAt":"2022-03-02T16:17:40.651Z"},"translate":{"provider":"transifex","show_widget":false,"key_public":"","org_name":"","project_name":"","languages":[]},"url":"https://developer.onetrust.com","versions":[{"_id":"620d23a542d78f05786a49c9","version":"1.0","version_clean":"1.0.0","codename":"Production","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["620d23a542d78f05786a49cb","620d23a542d78f05786a49cb","620d23a542d78f05786a49d1","620d2473d0e93a0147577007","620d24bdce6893002929091f","620d24f39b83cd06aa74818b","620d2523ffedb003e024ee7d","620d253c5a8ec60044cc283f","620d2f503f575f0085357683","620d2f58437c7300888cc8f1","620d2f5d1e70820053c8487e","620d3836756e210058c8f904","620d392a6e2aca0044c89703","620d394f133c23001469f94a","620d396849cf95003a296c15","620d39822fe6720123696ca9","620d39986d0c04003b89a588","620d3a056e2c5400134ae12e","620d3a11577d610014f942da","620d4f093501e50025da3212","620ead7670bf16002edfdeca","6213cf63166006002168275b","6213cfc142398701b6d559c7","6213d01e35c08e007af7154e","6217e4335f381d001a78bc95","6217e43d9d7459003dbe8442","6217e4457029dc0020f7a893","621d3b0fb07102002a0e46c2","621d3b880d8c0c00213c6aaf","621d3ba768e9e4005b6f28f4","621d3bb77f33770040d05b8b","621d3ca7feb971003d2e3dab","621d3d1a11141b009f241f66","621d3d7b5b549100464cf12b","621d3eed7df382001a7dc122","621e150f426ad900815c8491","621e495197363c00436e3247","621e508a7df382001a7ea87d","621e5253289e5a006ca29d2a","621e52a695667403d2657576","621e53c07826e100adbe4cd5","621e7683435d5500363e1e95","621e8c0e5b94ce0075e62d12","621e8d4ee2fa0e008d3ccb8b","621e8f3f96ccb200471ddedf","622101ba4bc000001a016fc1","622102c286d2e2004f070ed0","622102d6c3194a00401b1d03","622102e935622f01dffaa381","622102fe4bf43c00a1417ec0","62210322bd9404003e1a870d","6221033a312cfa003e1238af","622103f685254100359a8248","6221040a86f1860190999f3b","6221041698a26c0047d21499","6221042e02a8d1079728a975","62210458c3194a00401b2836","6221046a3ca945005896fcc8","62210481d7cabb02ac5c6b96","622104918be6c7003d11efb0","6221049cc50c02009fe0f2d9","622104b68be6c7003d11efc3","622104de6f7bf000421eea6f","62210511a99212005f069a8e","6221052135622f01dffab79c","6228bfe79fe43b003f2127b1","622a6c844a5d000091300995","622a6c9e2446cc004cc46cf3","622a6cb0020e410074215bc1","622a6cb9e73c66008dee09c7","622a6cbf8e69bf0086f1bf7d","622a6ccc25abea003782a791","622a6cd626b4b50044a9b5db","622a6cde93edf00092acfb57","622a6ce529777b007a3e3316","622a6ced29777b007a3e331a","622a6cf4ea012e004fdf7e3b","622a6cfc5a803d0014e6e66c","622a6d02a2dd3f003c2b4aee","622a6d1013a7100089b3609d","622f990bd149b3008faddff6","622f9f2ca14b00008866facd","622fa9fb7533ad031d14edae","622fadadf8045d03b4d06eb8","622fae8ab9d6dd001ac8536c","6242fcdd99025f003c836934","6242fce9f0b51d0013ef9567","624b3e735eb3110095b1ec88","624b3e97e621ce002e254018","624b408f80c997003962cb20","6269121b2948cb0043e0fd9b","62703cd945a84b005640a4b8","62863f09fcb84a028b91dc48","62863f556b5973009111f664","629a06719db2f70031f95f05","62b9c2bb676200008bee9bef","62b9c2e93ccfa0009d8c8881","62b9c3038c4c5d06d2e369fb","62b9c31b72164000486fd934","62dee51f9cc634007e756e2c","62dee540fd6d6b0094ad8e0f","6358300ad7c471001d6d36ed","6391cca17cc244002b43c1a4","63d9543d6b4b0d19521728e7","63d9a05a7f835300035f2b0f","6479029db81cb5005a012048","6479fa8f720835004fb08246","64b95979e8502b000ccaf692","64b95a52368bd1005e4fff54","64b96245c8d2760038e965ea","64b965d14dbc6500739de189","64b9a5f94ad6b7003cbe792d","64ba94b7385cf30074f2cbd2","64ba9773aa051f005ca2904c","64bab48a979377004a34a38e","64c021ade74ed2005220657d","64c028de30d55000431dbeeb","64c11e81f81ed315ad24eb5e","64c80f25e27d92004f1a92f6","65b1516e955afb00754bf2b8","65b16dbb846cfe004de567e3","65b9576864527400108c5f6b","65b9583b892ec00010a2de5d","65bbaff57adc2c00383c3eb7","660f0303ee20bf003603e699","662a626351f93800535e9b51","662a69b1de615f002bef2cab","6644d947d6d5c8005c6a25c0","66450590673d11005b075f09","665f23eeab28bc0024f024c3","66bb7b65404f700019a8c9b4","672aa7a509edfd001fd040bc","6762ed423e11680011660959","6785760141701b002a4933d7","67afa752428e61000ffcf09a","681a7964406a2b0020109f91","681a7b85bf5e2800320eba27","681a7ba44c52140067f7a67c","6877f036758df1087935898f","688ba11b0bb443d7cdaad7b3","688bb4c2ea0d0a4819368dcf","690266a365832928e04369a5","69036d7b6f266244b20e6755","69036f40ce5bb6d1ffd961ff"],"project":"620d23a442d78f05786a49c4","releaseDate":"2022-02-16T16:17:41.641Z","createdAt":"2022-02-16T16:17:41.641Z","__v":41,"pdfStatus":"complete","updatedAt":"2026-06-01T14:16:31.376Z","apiRegistries":[{"filename":"platform-access-management.json","uuid":"f9wagt2dmnf371hp"},{"filename":"consent-preferences-cross-device-consent.json","uuid":"17nirfrynmioyml91"},{"filename":"consent-preferences-consent-receipts.json","uuid":"djg2b1cmm5atb97"},{"filename":"data-use-governance-data-discovery.json","uuid":"f9y5bq4dmnf38yzh"},{"filename":"privacy-automation-data-subject-request-dsr-automation.json","uuid":"126cy96fmo00l53y"},{"filename":"platform-documents.json","uuid":"16f24a6mkbnajog"},{"filename":"privacy-automation-incident-management.json","uuid":"ed1q7xmpr23f44"},{"filename":"platform-integrations.json","uuid":"2ir2z8amkbnch3s"},{"filename":"consent-preferences-mobile-app-consent.json","uuid":"g12drq1cmha0gi7u"},{"filename":"consent-preferences-policy-notice-management.json","uuid":"dpouuafmkbnb6sv"},{"filename":"third-party-management-third-party-risk-management.json","uuid":"jnbn9omngaalfe"},{"filename":"tech-risk-compliance-it-risk-management.json","uuid":"1836s2zesmoiolqt7"},{"filename":"platform-user-provisioning.json","uuid":"2918ezf1cmnxsw93o"},{"filename":"tech-risk-compliance-training.json","uuid":"61jz5pmk4h6i1f"},{"filename":"platform-inventory.json","uuid":"5exah7omkbndrdk"},{"filename":"data-use-governance-data-catalog.json","uuid":"f9wagt1vmnf38yyy"},{"filename":"platform-object-manager.json","uuid":"d8d2i1dmo0txyoc"},{"filename":"data-use-governance-data-discovery-worker-node.json","uuid":"e9e7umls790bq"},{"filename":"tech-risk-compliance-audit-management.json","uuid":"1ddzbc29mls74i7m"},{"filename":"consent-preferences-cookie-domain-data.json","uuid":"m0wxemha0eww7"},{"filename":"esg-program-reporting-disclosures.json","uuid":"42ftpumls77pyw"},{"filename":"privacy-automation-assessment-automation.json","uuid":"35gzyjmowx7gao"},{"filename":"consent-preferences-consent-management-platform-cmp.json","uuid":"4hsgrw1ympr207cc"},{"filename":"platform-bulk-export.json","uuid":"5lumsmmm1qloo"},{"filename":"privacy-automation-data-mapping-automation.json","uuid":"1ddzbcjmls77q38"},{"filename":"tech-risk-compliance-issues-management.json","uuid":"dpouua7mkbndrde"},{"filename":"consent-preferences-consent-interfaces.json","uuid":"dpouua7mkbn7z36"},{"filename":"consent-preferences-universal-consent-preference-management-oas.json","uuid":"1pz7ampr8tonz"},{"filename":"platform-task-management.json","uuid":"4nl9g3nmon9lrsb"},{"filename":"tech-risk-compliance-compliance-automation.json","uuid":"b8hzre1gmls77q09"},{"filename":"consent-preferences-cookie-consent-swagger.json","uuid":"abzq02omhcdes8d"},{"filename":"privacy-automation-data-mapping-automation-swagger.json","uuid":"aafw8q5mmkn2zat4"},{"filename":"ai-governance.json","uuid":"3v3tt88mo0j5hoc"},{"filename":"tech-risk-compliance-enterprise-policy-management.json","uuid":"5ayeflmmm4cho3"},{"filename":"consent-preferences-cookie-consent.json","uuid":"duel7u20mo24pycm"}],"source":"readme"}],"variableDefaults":[{"name":"name","default":"Name","source":"","type":"","_id":"6944272f3991ecfaaf896a34"},{"name":"email","default":"your@email.here","source":"","type":"","_id":"6944272f3991ecfaaf896a35"},{"name":"apiKey","default":"{API Key}","source":"","type":"","_id":"6944272f3991ecfaaf896a36"},{"name":"customerbase","default":"https://YourAPIDomain.com","source":"","type":"","_id":"6944272f3991ecfaaf896a37"},{"name":"authorization","default":"Bearer {OAuth Access Token}","source":"","type":"","_id":"6944272f3991ecfaaf896a38"},{"name":"hostname","default":"hostname","source":"server","type":"","_id":"6944272f3991ecfaaf896a39"},{"name":"environment","default":"app.onetrust.com","source":"server","type":"","_id":"6944272f3991ecfaaf896a3a"},{"name":"oauth2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a3b"},{"name":"OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a3c"},{"name":"bearerAuth","scheme":"bearer","source":"security","type":"http","_id":"6944272f3991ecfaaf896a3d"},{"name":"DataUseGovernance-DataDiscovery_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a3e"},{"name":"TechRiskCompliance-ITRiskManagement_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a3f"},{"name":"TechRiskCompliance-RiskTemplate_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a40"},{"name":"TechRiskCompliance-Risk_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a41"},{"name":"DataUseGovernance-DataCatalog_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a42"},{"name":"DataUseGovernance-DataAssetManagement_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a43"},{"name":"DataUseGovernance-DataCatalogMetadataExchange_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a44"},{"name":"DataUseGovernance-DataDiscoveryCustomClassiferMana_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a45"},{"name":"PrivacyAutomation-AssessmentAutomation_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a46"},{"name":"Template_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a47"},{"name":"Platform-AccessManagement_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a48"},{"name":"AuditRecords_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a49"},{"name":"ConsentPreferences-UniversalConsentPreferenceManag_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a4a"},{"name":"ConsentAPI_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a4b"},{"name":"DSPreferneceCache_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a4c"}],"webhookEnabled":false},"custom_domain":"developer.onetrust.com","childrenProjects":[],"derivedPlan":"enterprise","description":"The OneTrust Developer Portal allows you to leverage APIs and SDKs to seamlessly integrate external systems and streamline the flow of data with the OneTrust platform.","hstsIncludeSubdomains":true,"planSchedule":{"stripeScheduleId":null,"changeDate":null,"nextPlan":null},"planStatus":"","shouldGateDash":false,"isExternalSnippetActive":false,"error404":"404","first_page":"reference","flags":{"allow_hub2":false,"enterprise":true,"alwaysShowDocPublishStatus":false,"hub2":true,"migrationRun":false,"migrationSwaggerRun":false,"oauth":false,"swagger":false,"correctnewlines":false,"rdmdCompatibilityMode":false,"speedyRender":false,"allowXFrame":true,"newEditor":true,"newEditorDash":true,"oldMarkdown":false,"newMarkdownBetaProgram":true,"useReactApp":true,"disableAnonForum":false,"directGoogleToStableVersion":false,"translation":false,"staging":false,"newSearch":true,"graphql":false,"allowApiExplorerJsonEditor":false,"singleProjectEnterprise":false,"dashReact":true,"metricsV2":true,"enableRealtimeExperiences":false,"reviewWorkflow":true,"star":false,"allowDarkMode":false,"forceDarkMode":false,"useReactGLP":true,"disablePasswordlessLogin":false,"myDevelopers":false,"superHub":true,"allowReusableOTPs":false,"developerDashboard":false,"owlbotAi":false,"apiV2":false,"customBlocks":false,"devDashHub":false,"disableAutoTranslate":false,"disableSAMLScoping":true,"git":{"read":false,"write":false},"superHubBeta":false,"allowUnsafeCustomHtmlSuggestionsFromNonAdmins":false,"apiAccessRevoked":false,"passwordlessLogin":"default","disableSignups":false,"billingRedesignEnabled":true,"developerPortal":false,"mdx":false,"superHubDevelopment":false,"annualBillingEnabled":true,"devDashBillingRedesignEnabled":false,"enableOidc":false,"customComponents":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":true,"superHubMigrationSelfServeFlow":false,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":true,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false,"superHubBranches":false,"requiresJQuery":true,"externalSdkSnippets":false,"migrationPreview":false,"superHubBranchReviews":false,"superHubMergePermissions":false,"superHubPreview":false,"aiDocsAudit":false,"aiPageLinting":false,"disableAiChat":false,"gitTranslations":true,"githubCloudSync":false,"superHubBranchMergeRules":true,"superHubBranchReviewActions":false,"bidiSyncGitlabSelfServe":false,"gitlabCloudSync":false,"bidiSyncBitbucketSelfServe":false,"mdxSanitizeComments":false,"mdxish":true,"superHubPlanManagement":false,"disableSuperframe":false,"hideAiFeatures":false,"gittoUseNewIndexer":true,"mdxishEditor":true,"aiWriter":false,"bidiSyncUseOdbAlternates":true,"mcpMetrics":false,"newDereferencer":false,"prefetch":false,"superHubBranchReviewDashboard":true,"googleAuthEnabled":false,"newIframeStructure":false,"streamingSsr":false,"superHubNotifications":false,"superHubTypography":false,"askAiOverride":"","aiDiscovery":false,"aiTranslation":false,"customDomainAdminBypass":false,"gittoUseConnectionPooling":false,"gittoUseExperimentalMDXCache":false,"jwtReplacePermissions":false,"mcpOauth":false,"newExplorerReducer":false,"branchTaggedReviewers":false,"superHubBranchReviewSummaries":false,"superHubSlack":false,"superHubSlackNotifications":false,"superHubUiTesting":false,"personalizedDocs":false,"dashHomeRefresh":false,"dashQuickstart":false,"dryRunMigration":false,"enableSuggestedEdits":false},"fullBaseUrl":"https://developer.onetrust.com/onetrust","git":{"aiWriter":{"setup":{"error":{}}},"migration":{"createRepository":{"end":"2025-12-15T10:03:07.632Z","start":"2025-12-15T10:03:07.281Z","status":"successful"},"transformation":{"end":"2025-12-15T10:03:13.757Z","start":"2025-12-15T10:03:09.119Z","status":"successful"},"migratingPages":{"end":"2025-12-15T10:03:15.181Z","start":"2025-12-15T10:03:14.441Z","status":"successful"},"enableSuperhub":{"start":"2025-12-15T11:20:19.355Z","status":"successful","end":"2025-12-15T11:20:19.356Z"}},"sync":{"installationRequest":{},"connections":[],"providers":[]},"migrationType":"preview","renamedSlugs":[]},"glossaryTerms":[{"term":"client_id","definition":"Unique identifier for the OneTrust client credential.","_id":"6944272f3991ecfaaf896a2e"},{"term":"grant_type","definition":"decides the type of access. OneTrust supports both password and client_credentials grant type","_id":"6944272f3991ecfaaf896a2f"},{"term":"client_secret","definition":"a one-time hexadecimal string that is issued and displayed at the time of client credential creation.","_id":"6944272f3991ecfaaf896a30"},{"term":"environment","definition":"The applicable Environment where each OneTrust tenant is hosted can be identified based on the URL, for example, https://app.onetrust.com would be the App Environment.","_id":"6944272f3991ecfaaf896a31"},{"term":"environments","definition":"The applicable Environment where each OneTrust tenant is hosted can be identified based on the URL, for example, https://app.onetrust.com would be the App Environment.","_id":"6944272f3991ecfaaf896a32"},{"term":"account","definition":"OneTrust accounts are hosted in a OneTrust Environment. Accounts are normally provisioned to customers or partners and many users share access to the same account. It is possible for a single user to have access to multiple accounts in an environment. You can switch between accounts by clicking on the User icon in the OneTrust Application and selecting Switch Tenants.","_id":"6944272f3991ecfaaf896a33"}],"graphqlSchema":"","gracePeriod":{"enabled":false,"endsAt":null},"healthCheck":{"provider":"manual","settings":{"page":"","status":true,"url":"https://onetruststatus-1564678085559.site24x7signals.com"}},"i18n":{"defaultLanguage":"en","languages":["en"],"state":"disabled"},"intercom":"","is_active":true,"internal":"","jwtExpirationTime":0,"landing_bottom":[{"type":"html","alignment":"left","html":"\u003cmain class=\"LandingWrap16kRMSdr5J8g rm-LandingPage\" id=\"content\">\n    \u003cdiv class=\"LandingBlock3PM-HyBxby3X LandingBlock_align=leftG1r7ROyW_AGB\">\n        \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n            \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"what-is-onetrust\">\u003c/div>\n                \u003cdiv class=\"heading-text\">\n                    \u003cdiv id=\"section-what-is-one-trust\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>What is\n                    OneTrust?\n                \u003c/div>\u003ca aria-label=\"Skip link to What is OneTrust?\" class=\"heading-anchor-icon fa fa-anchor\"\n                    href=\"#what-is-onetrust\">\u003c/a>\n            \u003c/h2>\n            \u003cp>OneTrust is the #1 most widely used platform to operationalize privacy, security &amp; governance. More\n                than 12,000 customers use OneTrust to build integrated programs that comply with the CCPA, GDPR, LGPD,\n                PDPA, ISO27001, and hundreds of the world’s privacy and security laws.\u003c/p>\n        \u003c/div>\n    \u003c/div>\n    \u003cdiv class=\"LandingBlock3PM-HyBxby3X LandingBlock_align=leftG1r7ROyW_AGB\">\n        \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n            \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"who-is-onetrust-for\">\u003c/div>\n                \u003cdiv class=\"heading-text\">\n                    \u003cdiv id=\"section-who-is-one-trust-for\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>Who is\n                    OneTrust for?\n                \u003c/div>\u003ca aria-label=\"Skip link to Who is OneTrust for?\" class=\"heading-anchor-icon fa fa-anchor\"\n                    href=\"#who-is-onetrust-for\">\u003c/a>\n            \u003c/h2>\n            \u003cp>OneTrust offers Privacy Management, Third-Party Risk, GRC, Data Governance, Preference &amp; Consent\n                Management, and Ethics &amp; Compliance solutions built for those focused on using technology to be a\n                more trusted organization.\u003c/p>\n            \u003chr>\n        \u003c/div>\n    \u003c/div>\n    \u003cdiv class=\"LandingBlock3PM-HyBxby3X LandingBlock_align=leftG1r7ROyW_AGB\">\n        \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n            \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"-getting-started\">\u003c/div>\n                \u003cdiv class=\"heading-text\">\n                    \u003cdiv id=\"section-💡-getting-started\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>💡 Getting\n                    Started\n                \u003c/div>\u003ca aria-label=\"Skip link to 💡 Getting Started\" class=\"heading-anchor-icon fa fa-anchor\"\n                    href=\"#-getting-started\">\u003c/a>\n            \u003c/h2>\n            \u003cp>The OneTrust Developer Portal offers a variety of resources to help you get started with integrating\n                seamlessly into the OneTrust platform. With the OneTrust Developer Portal, you can:\u003c/p>\n        \u003c/div>\n    \u003c/div>\n    \u003cdiv class=\"LandingBlock3PM-HyBxby3X LandingBlock-Three2lm6yBrv1MlV LandingBlock_align=leftG1r7ROyW_AGB\">\n        \u003cdiv class=\"LandingBlock3PM-HyBxby3X\">\n            \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n                \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                    \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"-api-reference\">\u003c/div>\n                    \u003cdiv class=\"heading-text\">\n                        \u003cdiv id=\"section-💻-api-reference\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>\u003ci class=\"icon-references\">\u003c/i> API\n                        Reference\n                    \u003c/div>\u003ca aria-label=\"Skip link to 💻 API Reference\" class=\"heading-anchor-icon fa fa-anchor\"\n                        href=\"#-api-reference\">\u003c/a>\n                \u003c/h2>\n                \u003cp>Explore APIs that you can use to integrate seamlessly into the OneTrust platform.\u003c/p>\n                \u003cp>\u003ca target=\"_self\" href=\"/onetrust/reference\">View More &gt;\u003c/a>\u003c/p>\n            \u003c/div>\n        \u003c/div>\n        \u003cdiv class=\"LandingBlock3PM-HyBxby3X\">\n            \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n                \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                    \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"-sdk-reference\">\u003c/div>\n                    \u003cdiv class=\"heading-text\">\n                        \u003cdiv id=\"section-📱-sdk-reference\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>\u003ci class=\"icon-guides\">\u003c/i> SDK\n                        Reference\n                    \u003c/div>\u003ca aria-label=\"Skip link to 📱 SDK Reference\" class=\"heading-anchor-icon fa fa-anchor\"\n                        href=\"#-sdk-reference\">\u003c/a>\n                \u003c/h2>\n                \u003cp>Discover what you can do with the SDKs and review resources to help you get started.\u003c/p>\n                \u003cp>\u003ca target=\"_self\" href=\"/onetrust/docs\">View More &gt;\u003c/a>\u003c/p>\n            \u003c/div>\n        \u003c/div>\n        \u003cdiv class=\"LandingBlock3PM-HyBxby3X\">\n            \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n                \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                    \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"-recipes\">\u003c/div>\n                    \u003cdiv class=\"heading-text\">\n                        \u003cdiv id=\"section-👨&zwj;🍳-recipes\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>\n                        \u003ci class=\"icon-recipes\">\u003c/i> Recipes\n                    \u003c/div>\u003ca aria-label=\"Skip link to 👨&zwj;🍳 Recipes\" class=\"heading-anchor-icon fa fa-anchor\"\n                        href=\"#-recipes\">\u003c/a>\n                \u003c/h2>\n                \u003cp>Discover code examples accompanied by detailed instructions to quickly initiate your understanding of\n                    the APIs.\u003c/p>\n                \u003cp>\u003ca target=\"_self\" href=\"/onetrust/recipes\">View More &gt;\u003c/a>\u003c/p>\n            \u003c/div>\n        \u003c/div>\n    \u003c/div>\n    \u003cdiv class=\"LandingBlock3PM-HyBxby3X LandingBlock_align=leftG1r7ROyW_AGB\">\n        \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n            \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"-get-help\">\u003c/div>\n                \u003cdiv class=\"heading-text\">\n                    \u003cdiv id=\"section-❓-get-help\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>❓ Get Help\n                \u003c/div>\u003ca aria-label=\"Skip link to ❓ Get Help\" class=\"heading-anchor-icon fa fa-anchor\"\n                    href=\"#-get-help\">\u003c/a>\n            \u003c/h2>\n            \u003cp>Review product documentation to learn more about features and how to configure your system to best\n                support your needs through myOneTrust, the official online community for OneTrust users, partners, and\n                experts.\u003c/p>\n            \u003cp>\u003ca target=\"_self\" href=\"https://my.onetrust.com/s/\">Go to the myOneTrust Community\u003c/a>\u003c/p>\n            \u003chr>\n            \u003cp>Discuss use cases, best practices, and more with other OneTrust users and the OneTrust product team. Our\n                support team is happy to answer any questions, concerns, or feedback from you.\u003c/p>\n            \u003cp>\u003ca target=\"_self\" href=\"https://my.onetrust.com/s/group/0F91Q000000hGyPSAU/developer-experience\">Go to\n                    the Developer Forum\u003c/a>\u003c/p>\n        \u003c/div>\n\u003c/main>"}],"mcp":{"state":"enabled"},"mdxishMigrationStatus":{"migratedFrom":"rdmd"},"metrics":{"monthlyLimit":0,"planLimit":20000000,"thumbsEnabled":true,"realtime":{"dashEnabled":false,"hubEnabled":false},"monthlyPurchaseLimit":0,"meteredBilling":{}},"modules":{"changelog":true,"custompages":false,"discuss":false,"docs":true,"examples":true,"graphql":false,"landing":false,"reference":true,"suggested_edits":false,"tutorials":true},"name":"OneTrust Developer Portal","nav_names":{"docs":"SDK Reference","reference":"API Reference","changelog":"","discuss":"","tutorials":"","recipes":""},"oauth_url":"","onboardingCompleted":{"documentation":true,"appearance":true,"jwt":true,"api":true,"logs":true,"domain":true,"metricsSDK":false,"aiReady":false},"owlbot":{"enabled":false,"isPaying":false,"customization":{"answerLength":"long","customTone":"","defaultAnswer":"","forbiddenWords":"","tone":"neutral","showAiDisclaimer":false,"advancedInstruction":"","advancedModeEnabled":false},"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""},"exampleQuestions":{"question1":"","question2":"","question3":""},"knowledge":"","modelList":[],"newExperience":false,"lastIndexed":"2025-12-01T06:21:54.022Z","knowledgeSegregation":false,"trial":{"isPaying":false},"v2":false,"llmOptions":{"model":{}}},"owner":{"id":"621fdfa10b019b00a39061a7","email":null,"name":null},"plan":"enterprise","planOverride":"business","planTrial":"enterprise","readmeScore":{"components":{"newDesign":{"enabled":true,"points":25},"reference":{"enabled":true,"points":50},"tryItNow":{"enabled":true,"points":35},"syncingOAS":{"enabled":true,"points":10},"customLogin":{"enabled":true,"points":25},"metrics":{"enabled":false,"points":40},"recipes":{"enabled":true,"points":15},"pageVoting":{"enabled":true,"points":1},"suggestedEdits":{"enabled":true,"points":10},"support":{"enabled":false,"points":5},"htmlLanding":{"enabled":true,"points":5},"guides":{"enabled":true,"points":10},"changelog":{"enabled":true,"points":5},"glossary":{"enabled":true,"points":1},"variables":{"enabled":true,"points":1},"integrations":{"enabled":false,"points":2}},"totalScore":193},"reCaptchaSiteKey":"6Le7slwqAAAAAFLR-_Uv2FZE8TpMc5C-Dxv9NJ3A","reference":{"alwaysUseDefaults":true,"autoFillRequestExample":false,"defaultExpandResponseExample":true,"defaultExpandResponseSchema":true,"enableOAuthFlows":true,"fillOptionalObjectsOnExpand":true},"seo":{"overwrite_title_tag":true},"ssl":{"minTLS":"1.2"},"siblings":[{"_id":"620d23a442d78f05786a49c4","ai":{"chat":{"knowledge":{"custom_knowledge":null,"use_project_knowledge":false},"models":[]},"discovery":{"enabled":true,"content_signal":{"ai_train":false,"search":false,"ai_input":false},"link_headers":true,"markdown_negotiation":true,"agent_hint_banner":true,"api_catalog":true,"agent_skills_index":true,"mcp_server_card":true,"webmcp":true,"oauth":{"type":"none","issuer_url":"","authorization_servers":[],"resource_identifier":"","scopes_supported":[]}}},"childrenProjects":[],"description":"The OneTrust Developer Portal allows you to leverage APIs and SDKs to seamlessly integrate external systems and streamline the flow of data with the OneTrust platform.","shouldGateDash":false,"isExternalSnippetActive":false,"flags":{"allow_hub2":false,"enterprise":false,"alwaysShowDocPublishStatus":false,"hub2":true,"migrationRun":false,"migrationSwaggerRun":false,"oauth":false,"swagger":false,"correctnewlines":false,"rdmdCompatibilityMode":false,"speedyRender":false,"allowXFrame":true,"newEditor":true,"newEditorDash":true,"oldMarkdown":false,"newMarkdownBetaProgram":true,"useReactApp":true,"disableAnonForum":false,"directGoogleToStableVersion":false,"translation":false,"staging":false,"newSearch":true,"graphql":false,"allowApiExplorerJsonEditor":false,"singleProjectEnterprise":false,"dashReact":false,"metricsV2":true,"enableRealtimeExperiences":false,"reviewWorkflow":true,"star":false,"allowDarkMode":false,"forceDarkMode":false,"useReactGLP":false,"disablePasswordlessLogin":false,"personalizedDocs":false,"myDevelopers":false,"superHub":true,"developerDashboard":false,"allowReusableOTPs":false,"dashHomeRefresh":false,"owlbotAi":false,"apiV2":false,"git":{"read":false,"write":false},"superHubBeta":false,"dashQuickstart":false,"disableAutoTranslate":false,"customBlocks":false,"devDashHub":false,"disableSAMLScoping":false,"allowUnsafeCustomHtmlSuggestionsFromNonAdmins":false,"apiAccessRevoked":false,"passwordlessLogin":"default","disableSignups":false,"billingRedesignEnabled":true,"developerPortal":false,"mdx":false,"superHubDevelopment":false,"annualBillingEnabled":true,"devDashBillingRedesignEnabled":false,"enableOidc":false,"customComponents":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":true,"superHubMigrationSelfServeFlow":false,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":true,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false,"superHubBranches":false,"requiresJQuery":true,"externalSdkSnippets":false,"migrationPreview":false,"superHubPreview":false,"superHubBranchReviews":false,"superHubMergePermissions":false,"dryRunMigration":false,"aiDocsAudit":false,"aiPageLinting":false,"githubCloudSync":false,"disableAiChat":false,"enableSuggestedEdits":false,"superHubBranchMergeRules":false,"superHubBranchReviewActions":false,"gitTranslations":false,"bidiSyncGitlabSelfServe":false,"gitlabCloudSync":false,"superHubPlanManagement":false,"bidiSyncBitbucketSelfServe":false,"mdxSanitizeComments":false,"mdxish":true,"disableSuperframe":false,"hideAiFeatures":false,"gittoUseNewIndexer":true,"mdxishEditor":true,"prefetch":false,"aiWriter":false,"superHubBranchReviewDashboard":false,"bidiSyncUseOdbAlternates":true,"mcpMetrics":false,"newDereferencer":false,"newIframeStructure":false,"streamingSsr":false,"googleAuthEnabled":false,"superHubNotifications":false,"superHubTypography":false,"newExplorerReducer":false,"gittoUseExperimentalMDXCache":false,"gittoUseConnectionPooling":false,"askAiOverride":"","superHubSlack":false,"customDomainAdminBypass":false,"aiDiscovery":false,"branchTaggedReviewers":false,"jwtReplacePermissions":false,"mcpOauth":false,"superHubBranchReviewSummaries":false,"superHubSlackNotifications":false,"aiTranslation":false,"superHubUiTesting":false},"fullBaseUrl":"https://onetrust.readme.io/","git":{"aiWriter":{"setup":{"error":{}}},"migration":{"createRepository":{"end":"2025-12-15T10:03:07.632Z","start":"2025-12-15T10:03:07.281Z","status":"successful"},"transformation":{"end":"2025-12-15T10:03:13.757Z","start":"2025-12-15T10:03:09.119Z","status":"successful"},"migratingPages":{"end":"2025-12-15T10:03:15.181Z","start":"2025-12-15T10:03:14.441Z","status":"successful"},"enableSuperhub":{"start":"2025-12-15T11:20:19.355Z","status":"successful","end":"2025-12-15T11:20:19.356Z"}},"sync":{"installationRequest":{},"connections":[],"providers":[]},"migrationType":"preview","renamedSlugs":[]},"is_active":true,"internal":"","mcp":{"state":"enabled"},"modules":{"changelog":true,"custompages":false,"discuss":false,"docs":true,"examples":true,"graphql":false,"landing":false,"reference":true,"suggested_edits":false,"tutorials":true},"name":"OneTrust Developer Portal","nav_names":{"docs":"SDK Reference","reference":"API Reference","changelog":"","discuss":"","tutorials":"","recipes":""},"owlbot":{"enabled":false,"isPaying":false,"customization":{"answerLength":"long","customTone":"","defaultAnswer":"","forbiddenWords":"","tone":"neutral","showAiDisclaimer":false,"advancedInstruction":"","advancedModeEnabled":false},"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""},"exampleQuestions":{"question1":"","question2":"","question3":""},"knowledge":"","modelList":[],"newExperience":false,"lastIndexed":"2025-12-01T06:21:54.022Z","knowledgeSegregation":false,"trial":{"isPaying":false},"v2":false,"llmOptions":{"model":{}}},"owner":{"email":null,"name":null},"readmeScore":0,"reference":{"alwaysUseDefaults":false,"autoFillRequestExample":false,"defaultExpandResponseExample":false,"defaultExpandResponseSchema":false,"enableOAuthFlows":false,"fillOptionalObjectsOnExpand":true},"ssl":{},"stable":"620d23a542d78f05786a49c9","subdomain":"onetrust","subpath":"","translate":{},"webhookEnabled":false}],"stable":{"_id":"620d23a542d78f05786a49c9","version":"1.0","version_clean":"1.0.0","codename":"Production","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["620d23a542d78f05786a49cb","620d23a542d78f05786a49cb","620d23a542d78f05786a49d1","620d2473d0e93a0147577007","620d24bdce6893002929091f","620d24f39b83cd06aa74818b","620d2523ffedb003e024ee7d","620d253c5a8ec60044cc283f","620d2f503f575f0085357683","620d2f58437c7300888cc8f1","620d2f5d1e70820053c8487e","620d3836756e210058c8f904","620d392a6e2aca0044c89703","620d394f133c23001469f94a","620d396849cf95003a296c15","620d39822fe6720123696ca9","620d39986d0c04003b89a588","620d3a056e2c5400134ae12e","620d3a11577d610014f942da","620d4f093501e50025da3212","620ead7670bf16002edfdeca","6213cf63166006002168275b","6213cfc142398701b6d559c7","6213d01e35c08e007af7154e","6217e4335f381d001a78bc95","6217e43d9d7459003dbe8442","6217e4457029dc0020f7a893","621d3b0fb07102002a0e46c2","621d3b880d8c0c00213c6aaf","621d3ba768e9e4005b6f28f4","621d3bb77f33770040d05b8b","621d3ca7feb971003d2e3dab","621d3d1a11141b009f241f66","621d3d7b5b549100464cf12b","621d3eed7df382001a7dc122","621e150f426ad900815c8491","621e495197363c00436e3247","621e508a7df382001a7ea87d","621e5253289e5a006ca29d2a","621e52a695667403d2657576","621e53c07826e100adbe4cd5","621e7683435d5500363e1e95","621e8c0e5b94ce0075e62d12","621e8d4ee2fa0e008d3ccb8b","621e8f3f96ccb200471ddedf","622101ba4bc000001a016fc1","622102c286d2e2004f070ed0","622102d6c3194a00401b1d03","622102e935622f01dffaa381","622102fe4bf43c00a1417ec0","62210322bd9404003e1a870d","6221033a312cfa003e1238af","622103f685254100359a8248","6221040a86f1860190999f3b","6221041698a26c0047d21499","6221042e02a8d1079728a975","62210458c3194a00401b2836","6221046a3ca945005896fcc8","62210481d7cabb02ac5c6b96","622104918be6c7003d11efb0","6221049cc50c02009fe0f2d9","622104b68be6c7003d11efc3","622104de6f7bf000421eea6f","62210511a99212005f069a8e","6221052135622f01dffab79c","6228bfe79fe43b003f2127b1","622a6c844a5d000091300995","622a6c9e2446cc004cc46cf3","622a6cb0020e410074215bc1","622a6cb9e73c66008dee09c7","622a6cbf8e69bf0086f1bf7d","622a6ccc25abea003782a791","622a6cd626b4b50044a9b5db","622a6cde93edf00092acfb57","622a6ce529777b007a3e3316","622a6ced29777b007a3e331a","622a6cf4ea012e004fdf7e3b","622a6cfc5a803d0014e6e66c","622a6d02a2dd3f003c2b4aee","622a6d1013a7100089b3609d","622f990bd149b3008faddff6","622f9f2ca14b00008866facd","622fa9fb7533ad031d14edae","622fadadf8045d03b4d06eb8","622fae8ab9d6dd001ac8536c","6242fcdd99025f003c836934","6242fce9f0b51d0013ef9567","624b3e735eb3110095b1ec88","624b3e97e621ce002e254018","624b408f80c997003962cb20","6269121b2948cb0043e0fd9b","62703cd945a84b005640a4b8","62863f09fcb84a028b91dc48","62863f556b5973009111f664","629a06719db2f70031f95f05","62b9c2bb676200008bee9bef","62b9c2e93ccfa0009d8c8881","62b9c3038c4c5d06d2e369fb","62b9c31b72164000486fd934","62dee51f9cc634007e756e2c","62dee540fd6d6b0094ad8e0f","6358300ad7c471001d6d36ed","6391cca17cc244002b43c1a4","63d9543d6b4b0d19521728e7","63d9a05a7f835300035f2b0f","6479029db81cb5005a012048","6479fa8f720835004fb08246","64b95979e8502b000ccaf692","64b95a52368bd1005e4fff54","64b96245c8d2760038e965ea","64b965d14dbc6500739de189","64b9a5f94ad6b7003cbe792d","64ba94b7385cf30074f2cbd2","64ba9773aa051f005ca2904c","64bab48a979377004a34a38e","64c021ade74ed2005220657d","64c028de30d55000431dbeeb","64c11e81f81ed315ad24eb5e","64c80f25e27d92004f1a92f6","65b1516e955afb00754bf2b8","65b16dbb846cfe004de567e3","65b9576864527400108c5f6b","65b9583b892ec00010a2de5d","65bbaff57adc2c00383c3eb7","660f0303ee20bf003603e699","662a626351f93800535e9b51","662a69b1de615f002bef2cab","6644d947d6d5c8005c6a25c0","66450590673d11005b075f09","665f23eeab28bc0024f024c3","66bb7b65404f700019a8c9b4","672aa7a509edfd001fd040bc","6762ed423e11680011660959","6785760141701b002a4933d7","67afa752428e61000ffcf09a","681a7964406a2b0020109f91","681a7b85bf5e2800320eba27","681a7ba44c52140067f7a67c","6877f036758df1087935898f","688ba11b0bb443d7cdaad7b3","688bb4c2ea0d0a4819368dcf","690266a365832928e04369a5","69036d7b6f266244b20e6755","69036f40ce5bb6d1ffd961ff"],"project":"620d23a442d78f05786a49c4","releaseDate":"2022-02-16T16:17:41.641Z","createdAt":"2022-02-16T16:17:41.641Z","__v":41,"pdfStatus":"complete","updatedAt":"2026-06-01T14:16:31.376Z","apiRegistries":[{"filename":"platform-access-management.json","uuid":"f9wagt2dmnf371hp"},{"filename":"consent-preferences-cross-device-consent.json","uuid":"17nirfrynmioyml91"},{"filename":"consent-preferences-consent-receipts.json","uuid":"djg2b1cmm5atb97"},{"filename":"data-use-governance-data-discovery.json","uuid":"f9y5bq4dmnf38yzh"},{"filename":"privacy-automation-data-subject-request-dsr-automation.json","uuid":"126cy96fmo00l53y"},{"filename":"platform-documents.json","uuid":"16f24a6mkbnajog"},{"filename":"privacy-automation-incident-management.json","uuid":"ed1q7xmpr23f44"},{"filename":"platform-integrations.json","uuid":"2ir2z8amkbnch3s"},{"filename":"consent-preferences-mobile-app-consent.json","uuid":"g12drq1cmha0gi7u"},{"filename":"consent-preferences-policy-notice-management.json","uuid":"dpouuafmkbnb6sv"},{"filename":"third-party-management-third-party-risk-management.json","uuid":"jnbn9omngaalfe"},{"filename":"tech-risk-compliance-it-risk-management.json","uuid":"1836s2zesmoiolqt7"},{"filename":"platform-user-provisioning.json","uuid":"2918ezf1cmnxsw93o"},{"filename":"tech-risk-compliance-training.json","uuid":"61jz5pmk4h6i1f"},{"filename":"platform-inventory.json","uuid":"5exah7omkbndrdk"},{"filename":"data-use-governance-data-catalog.json","uuid":"f9wagt1vmnf38yyy"},{"filename":"platform-object-manager.json","uuid":"d8d2i1dmo0txyoc"},{"filename":"data-use-governance-data-discovery-worker-node.json","uuid":"e9e7umls790bq"},{"filename":"tech-risk-compliance-audit-management.json","uuid":"1ddzbc29mls74i7m"},{"filename":"consent-preferences-cookie-domain-data.json","uuid":"m0wxemha0eww7"},{"filename":"esg-program-reporting-disclosures.json","uuid":"42ftpumls77pyw"},{"filename":"privacy-automation-assessment-automation.json","uuid":"35gzyjmowx7gao"},{"filename":"consent-preferences-consent-management-platform-cmp.json","uuid":"4hsgrw1ympr207cc"},{"filename":"platform-bulk-export.json","uuid":"5lumsmmm1qloo"},{"filename":"privacy-automation-data-mapping-automation.json","uuid":"1ddzbcjmls77q38"},{"filename":"tech-risk-compliance-issues-management.json","uuid":"dpouua7mkbndrde"},{"filename":"consent-preferences-consent-interfaces.json","uuid":"dpouua7mkbn7z36"},{"filename":"consent-preferences-universal-consent-preference-management-oas.json","uuid":"1pz7ampr8tonz"},{"filename":"platform-task-management.json","uuid":"4nl9g3nmon9lrsb"},{"filename":"tech-risk-compliance-compliance-automation.json","uuid":"b8hzre1gmls77q09"},{"filename":"consent-preferences-cookie-consent-swagger.json","uuid":"abzq02omhcdes8d"},{"filename":"privacy-automation-data-mapping-automation-swagger.json","uuid":"aafw8q5mmkn2zat4"},{"filename":"ai-governance.json","uuid":"3v3tt88mo0j5hoc"},{"filename":"tech-risk-compliance-enterprise-policy-management.json","uuid":"5ayeflmmm4cho3"},{"filename":"consent-preferences-cookie-consent.json","uuid":"duel7u20mo24pycm"}],"source":"readme"},"subdomain":"onetrust","subpath":"","topnav":{"left":[{"type":"url","text":"myOneTrust","url":"https://my.onetrust.com/s"},{"type":"url","text":"Developer Forum","url":"https://my.onetrust.com/s/group/0F91Q000000hGyPSAU/developer-experience"},{"type":"url","text":"Technology Partners","url":"https://developer.onetrust.com/onetrust/page/partners"}],"right":[{"type":"url","text":"Subscribe via RSS","url":"http://developer.onetrust.com/onetrust/changelog.rss"}],"bottom":[],"edited":true},"trial":{"trialDeadlineEnabled":false,"trialEndsAt":"2022-03-02T16:17:40.651Z"},"translate":{"provider":"transifex","show_widget":false,"key_public":"","org_name":"","project_name":"","languages":[]},"url":"https://developer.onetrust.com","versions":[{"_id":"620d23a542d78f05786a49c9","version":"1.0","version_clean":"1.0.0","codename":"Production","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["620d23a542d78f05786a49cb","620d23a542d78f05786a49cb","620d23a542d78f05786a49d1","620d2473d0e93a0147577007","620d24bdce6893002929091f","620d24f39b83cd06aa74818b","620d2523ffedb003e024ee7d","620d253c5a8ec60044cc283f","620d2f503f575f0085357683","620d2f58437c7300888cc8f1","620d2f5d1e70820053c8487e","620d3836756e210058c8f904","620d392a6e2aca0044c89703","620d394f133c23001469f94a","620d396849cf95003a296c15","620d39822fe6720123696ca9","620d39986d0c04003b89a588","620d3a056e2c5400134ae12e","620d3a11577d610014f942da","620d4f093501e50025da3212","620ead7670bf16002edfdeca","6213cf63166006002168275b","6213cfc142398701b6d559c7","6213d01e35c08e007af7154e","6217e4335f381d001a78bc95","6217e43d9d7459003dbe8442","6217e4457029dc0020f7a893","621d3b0fb07102002a0e46c2","621d3b880d8c0c00213c6aaf","621d3ba768e9e4005b6f28f4","621d3bb77f33770040d05b8b","621d3ca7feb971003d2e3dab","621d3d1a11141b009f241f66","621d3d7b5b549100464cf12b","621d3eed7df382001a7dc122","621e150f426ad900815c8491","621e495197363c00436e3247","621e508a7df382001a7ea87d","621e5253289e5a006ca29d2a","621e52a695667403d2657576","621e53c07826e100adbe4cd5","621e7683435d5500363e1e95","621e8c0e5b94ce0075e62d12","621e8d4ee2fa0e008d3ccb8b","621e8f3f96ccb200471ddedf","622101ba4bc000001a016fc1","622102c286d2e2004f070ed0","622102d6c3194a00401b1d03","622102e935622f01dffaa381","622102fe4bf43c00a1417ec0","62210322bd9404003e1a870d","6221033a312cfa003e1238af","622103f685254100359a8248","6221040a86f1860190999f3b","6221041698a26c0047d21499","6221042e02a8d1079728a975","62210458c3194a00401b2836","6221046a3ca945005896fcc8","62210481d7cabb02ac5c6b96","622104918be6c7003d11efb0","6221049cc50c02009fe0f2d9","622104b68be6c7003d11efc3","622104de6f7bf000421eea6f","62210511a99212005f069a8e","6221052135622f01dffab79c","6228bfe79fe43b003f2127b1","622a6c844a5d000091300995","622a6c9e2446cc004cc46cf3","622a6cb0020e410074215bc1","622a6cb9e73c66008dee09c7","622a6cbf8e69bf0086f1bf7d","622a6ccc25abea003782a791","622a6cd626b4b50044a9b5db","622a6cde93edf00092acfb57","622a6ce529777b007a3e3316","622a6ced29777b007a3e331a","622a6cf4ea012e004fdf7e3b","622a6cfc5a803d0014e6e66c","622a6d02a2dd3f003c2b4aee","622a6d1013a7100089b3609d","622f990bd149b3008faddff6","622f9f2ca14b00008866facd","622fa9fb7533ad031d14edae","622fadadf8045d03b4d06eb8","622fae8ab9d6dd001ac8536c","6242fcdd99025f003c836934","6242fce9f0b51d0013ef9567","624b3e735eb3110095b1ec88","624b3e97e621ce002e254018","624b408f80c997003962cb20","6269121b2948cb0043e0fd9b","62703cd945a84b005640a4b8","62863f09fcb84a028b91dc48","62863f556b5973009111f664","629a06719db2f70031f95f05","62b9c2bb676200008bee9bef","62b9c2e93ccfa0009d8c8881","62b9c3038c4c5d06d2e369fb","62b9c31b72164000486fd934","62dee51f9cc634007e756e2c","62dee540fd6d6b0094ad8e0f","6358300ad7c471001d6d36ed","6391cca17cc244002b43c1a4","63d9543d6b4b0d19521728e7","63d9a05a7f835300035f2b0f","6479029db81cb5005a012048","6479fa8f720835004fb08246","64b95979e8502b000ccaf692","64b95a52368bd1005e4fff54","64b96245c8d2760038e965ea","64b965d14dbc6500739de189","64b9a5f94ad6b7003cbe792d","64ba94b7385cf30074f2cbd2","64ba9773aa051f005ca2904c","64bab48a979377004a34a38e","64c021ade74ed2005220657d","64c028de30d55000431dbeeb","64c11e81f81ed315ad24eb5e","64c80f25e27d92004f1a92f6","65b1516e955afb00754bf2b8","65b16dbb846cfe004de567e3","65b9576864527400108c5f6b","65b9583b892ec00010a2de5d","65bbaff57adc2c00383c3eb7","660f0303ee20bf003603e699","662a626351f93800535e9b51","662a69b1de615f002bef2cab","6644d947d6d5c8005c6a25c0","66450590673d11005b075f09","665f23eeab28bc0024f024c3","66bb7b65404f700019a8c9b4","672aa7a509edfd001fd040bc","6762ed423e11680011660959","6785760141701b002a4933d7","67afa752428e61000ffcf09a","681a7964406a2b0020109f91","681a7b85bf5e2800320eba27","681a7ba44c52140067f7a67c","6877f036758df1087935898f","688ba11b0bb443d7cdaad7b3","688bb4c2ea0d0a4819368dcf","690266a365832928e04369a5","69036d7b6f266244b20e6755","69036f40ce5bb6d1ffd961ff"],"project":"620d23a442d78f05786a49c4","releaseDate":"2022-02-16T16:17:41.641Z","createdAt":"2022-02-16T16:17:41.641Z","__v":41,"pdfStatus":"complete","updatedAt":"2026-06-01T14:16:31.376Z","apiRegistries":[{"filename":"platform-access-management.json","uuid":"f9wagt2dmnf371hp"},{"filename":"consent-preferences-cross-device-consent.json","uuid":"17nirfrynmioyml91"},{"filename":"consent-preferences-consent-receipts.json","uuid":"djg2b1cmm5atb97"},{"filename":"data-use-governance-data-discovery.json","uuid":"f9y5bq4dmnf38yzh"},{"filename":"privacy-automation-data-subject-request-dsr-automation.json","uuid":"126cy96fmo00l53y"},{"filename":"platform-documents.json","uuid":"16f24a6mkbnajog"},{"filename":"privacy-automation-incident-management.json","uuid":"ed1q7xmpr23f44"},{"filename":"platform-integrations.json","uuid":"2ir2z8amkbnch3s"},{"filename":"consent-preferences-mobile-app-consent.json","uuid":"g12drq1cmha0gi7u"},{"filename":"consent-preferences-policy-notice-management.json","uuid":"dpouuafmkbnb6sv"},{"filename":"third-party-management-third-party-risk-management.json","uuid":"jnbn9omngaalfe"},{"filename":"tech-risk-compliance-it-risk-management.json","uuid":"1836s2zesmoiolqt7"},{"filename":"platform-user-provisioning.json","uuid":"2918ezf1cmnxsw93o"},{"filename":"tech-risk-compliance-training.json","uuid":"61jz5pmk4h6i1f"},{"filename":"platform-inventory.json","uuid":"5exah7omkbndrdk"},{"filename":"data-use-governance-data-catalog.json","uuid":"f9wagt1vmnf38yyy"},{"filename":"platform-object-manager.json","uuid":"d8d2i1dmo0txyoc"},{"filename":"data-use-governance-data-discovery-worker-node.json","uuid":"e9e7umls790bq"},{"filename":"tech-risk-compliance-audit-management.json","uuid":"1ddzbc29mls74i7m"},{"filename":"consent-preferences-cookie-domain-data.json","uuid":"m0wxemha0eww7"},{"filename":"esg-program-reporting-disclosures.json","uuid":"42ftpumls77pyw"},{"filename":"privacy-automation-assessment-automation.json","uuid":"35gzyjmowx7gao"},{"filename":"consent-preferences-consent-management-platform-cmp.json","uuid":"4hsgrw1ympr207cc"},{"filename":"platform-bulk-export.json","uuid":"5lumsmmm1qloo"},{"filename":"privacy-automation-data-mapping-automation.json","uuid":"1ddzbcjmls77q38"},{"filename":"tech-risk-compliance-issues-management.json","uuid":"dpouua7mkbndrde"},{"filename":"consent-preferences-consent-interfaces.json","uuid":"dpouua7mkbn7z36"},{"filename":"consent-preferences-universal-consent-preference-management-oas.json","uuid":"1pz7ampr8tonz"},{"filename":"platform-task-management.json","uuid":"4nl9g3nmon9lrsb"},{"filename":"tech-risk-compliance-compliance-automation.json","uuid":"b8hzre1gmls77q09"},{"filename":"consent-preferences-cookie-consent-swagger.json","uuid":"abzq02omhcdes8d"},{"filename":"privacy-automation-data-mapping-automation-swagger.json","uuid":"aafw8q5mmkn2zat4"},{"filename":"ai-governance.json","uuid":"3v3tt88mo0j5hoc"},{"filename":"tech-risk-compliance-enterprise-policy-management.json","uuid":"5ayeflmmm4cho3"},{"filename":"consent-preferences-cookie-consent.json","uuid":"duel7u20mo24pycm"}],"source":"readme"}],"variableDefaults":[{"name":"name","default":"Name","source":"","type":"","_id":"6944272f3991ecfaaf896a34"},{"name":"email","default":"your@email.here","source":"","type":"","_id":"6944272f3991ecfaaf896a35"},{"name":"apiKey","default":"{API Key}","source":"","type":"","_id":"6944272f3991ecfaaf896a36"},{"name":"customerbase","default":"https://YourAPIDomain.com","source":"","type":"","_id":"6944272f3991ecfaaf896a37"},{"name":"authorization","default":"Bearer {OAuth Access Token}","source":"","type":"","_id":"6944272f3991ecfaaf896a38"},{"name":"hostname","default":"hostname","source":"server","type":"","_id":"6944272f3991ecfaaf896a39"},{"name":"environment","default":"app.onetrust.com","source":"server","type":"","_id":"6944272f3991ecfaaf896a3a"},{"name":"oauth2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a3b"},{"name":"OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a3c"},{"name":"bearerAuth","scheme":"bearer","source":"security","type":"http","_id":"6944272f3991ecfaaf896a3d"},{"name":"DataUseGovernance-DataDiscovery_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a3e"},{"name":"TechRiskCompliance-ITRiskManagement_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a3f"},{"name":"TechRiskCompliance-RiskTemplate_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a40"},{"name":"TechRiskCompliance-Risk_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a41"},{"name":"DataUseGovernance-DataCatalog_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a42"},{"name":"DataUseGovernance-DataAssetManagement_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a43"},{"name":"DataUseGovernance-DataCatalogMetadataExchange_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a44"},{"name":"DataUseGovernance-DataDiscoveryCustomClassiferMana_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a45"},{"name":"PrivacyAutomation-AssessmentAutomation_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a46"},{"name":"Template_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a47"},{"name":"Platform-AccessManagement_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a48"},{"name":"AuditRecords_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a49"},{"name":"ConsentPreferences-UniversalConsentPreferenceManag_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a4a"},{"name":"ConsentAPI_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a4b"},{"name":"DSPreferneceCache_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a4c"}],"webhookEnabled":false,"parent":{"_id":"62150160021c1f010da3d62b","accessRules":{"branch_merge":{"admin":true,"editor":false},"branch_approve":{"admin":true,"editor":false}},"ai":{"chat":{"knowledge":{"custom_knowledge":null,"use_project_knowledge":false},"models":[]},"discovery":{"enabled":true,"content_signal":{"ai_train":false,"search":false,"ai_input":false},"link_headers":true,"markdown_negotiation":true,"agent_hint_banner":true,"api_catalog":true,"agent_skills_index":true,"mcp_server_card":true,"webmcp":true,"oauth":{"type":"none","issuer_url":"","authorization_servers":[],"resource_identifier":"","scopes_supported":[]}}},"appearance":{"rdmd":{"callouts":{"useIconFont":false},"theme":{"background":"","border":"","markdownEdge":"","markdownFont":"","markdownFontSize":"","markdownLineHeight":"","markdownRadius":"","markdownText":"","markdownTitle":"","markdownTitleFont":"","mdCodeBackground":"","mdCodeFont":"","mdCodeRadius":"","mdCodeTabs":"","mdCodeText":"","tableEdges":"","tableHead":"","tableHeadText":"","tableRow":"","tableStripe":"","tableText":"","text":"","title":""}},"main_body":{"type":"links"},"colors":{"highlight":"","main":"#020202","main_alt":"","header_text":"","body_highlight":"","custom_login_link_color":"#2c6145","body_highlight_dark":""},"typography":{"headline":"Open+Sans:400:sans-serif","body":"Open+Sans:400:sans-serif","typekit":false,"tk_key":"","tk_headline":"","tk_body":"","code":"","custom_heading":null,"custom_body":null,"custom_code":null,"spacing":null},"header":{"style":"solid","img":[],"img_size":"auto","img_pos":"tl","linkStyle":"buttons"},"body":{"style":"none"},"global_landing_page":{"html":"\u003chead>\n  \u003cstyle>html {display:none;}\u003c/style>\n  \u003c!-- Required meta tags -->\n  \u003cmeta charset=\"utf-8\">\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n  \u003cmeta name=\"keywords\" content=\"OneTrust, Landing Page, Developer Portal\">\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1\">\n  \u003ctitle>OneTrust Developer Portal\u003c/title>\n  \u003c!--====== Favicon Icon ======-->\n  \u003clink rel=\"shortcut icon\" href=\"https://files.readme.io/2cedc59-OT-favicon.ico\" type=\"image/x-icon\">\n  \u003c!-- Bootstrap CSS -->\n  \u003clink rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Rubik:400,400i,500\">\n\t\u003clink rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Poppins:400,500,600\">\n  \u003clink href=\"https://cdn.lineicons.com/4.0/lineicons.css\" rel=\"stylesheet\" />\n  \u003clink rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/owl-carousel/1.3.3/owl.theme.css\" integrity=\"sha512-itF/9I/NigY9u4ukjw9s7/kG6SC7LJ5Q4pRNMnTbGZAsO4/RSUelfVuYBk8AkSk23qEcucIqdUlzzpy2qf7jGg==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\" />\n  \u003clink rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/nivo-lightbox/1.3.1/nivo-lightbox.css\" integrity=\"sha512-2vHASzflwRWhoXsy14EnNbtLAa1Wdbm8J9j1P8Gmh4vsu4tOWGMau5b8m46RyXtNpurCojN+xDFmNhbW8FIT2w==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\" />\n  \u003clink rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/magnific-popup.css\" integrity=\"sha512-WEQNv9d3+sqyHjrqUZobDhFARZDko2wpWdfcpv44lsypsSuMO0kHGd3MQ8rrsBn/Qa39VojphdU6CMkpJUmDVw==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\" />  \n  \u003cstyle type=\"text/css\">\n.ThemeContext_line .rm-Header {\n\tdisplay: none;\n    }\n    .rm-Header_classic{\n      display: none: \n}\n\n\n\n\n/*\nTheme Name:       SlickBiz - Bootstrap 4 Template\nAuthor:           UIdeck\nAuthor URI:       http://uideck.com\nText Domain:      UIdeck\nDomain Path:      /languages/\n*/\n\n\n/* ==========================================================================\n   GENERAL\n    ========================================================================== */\n.ot-footer-font-weight-light {\n    font-weight: 300;\n    color: white;\n    }\n.ot-footer-text {\n    font-size: 14px;\n    font-weight: 300;\n    line-height: 20px;\n    color: white;\n}\n\n\n\nbody {\n  font-family: 'Rubik', sans-serif;\n  color: #a0a6ad;\n  font-size: 14px;\n  font-weight: 400;\n  background: #fff;\n  overflow-x: hidden;\n}\n\nhtml {\n  overflow-x: hidden;\n}\n\np {\n  font-size: 14px;\n  color: #5e629c;\n  line-height: 26px;\n  margin-bottom: 0;\n}\n\na:hover,\na:focus {\n  color: #000;\n}\n\na {\n  color: #000;\n  -webkit-transition: all 0.3s ease-in-out;\n  -moz-transition: all 0.3s ease-in-out;\n  -o-transition: all 0.3s ease-in-out;\n  transition: all 0.3s ease-in-out;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5 {\n  font-family: 'Poppins', sans-serif!important;\n  font-size: 40px;\n  font-weight: 400;\n  color: #151948;\n}\n\nul {\n  margin: 0;\n  padding: 0;\n}\n\nul li {\n  list-style: none;\n}\n\na:hover,\na:focus {\n  text-decoration: none!important;\n  outline: none!important;\n}\n\na:not([href]):not([tabindex]) {\n  color: #fff!important;\n}\n\na:not([href]):not([tabindex]):focus,\na:not([href]):not([tabindex]):hover {\n  color: #fff!important;\n}\n\n.bg-transparent {\n  background: transparent !important;\n}\n\n.bg-defult {\n  background: #3c9cfd !important;\n}\n\n/* ==========================================================================\n   Section Title\n   ========================================================================== */\n.section {\n  padding: 0px 0px 120px 0px!important;\n}\n\n.form-control:focus {\n  outline: none;\n  box-shadow: none;\n}\n\n.section-header {\n  color: #fff!important;\n  margin-bottom: 50px!important;\n  text-align: center!important;\n  position: relative!important;\n}\n\n.section-header .section-title {\n  font-size: 35px!important;\n  margin-bottom: 12px!important;\n  font-weight: 600!important;\n  position: relative!important;\n  line-height: 30px!important;\n}\n\n.section-header .desc-text p {\n  font-size: 18px!important;\n  color: #fff!important;\n  line-height: 26px!important;\n  margin-bottom: 0!important;\n}\n\n/* ==========================================================================\n   Buttons\n   ========================================================================== */\n.btn {\n  font-size: 14px!important;\n  padding: 10px 30px!important;\n  border-radius: 4px!important;\n  font-family: 'Rubik', sans-serif!important;\n  letter-spacing: 1px!important;\n  font-weight: 500!important;\n  color: #fff!important;\n  border: none!important;\n  text-transform: uppercase!important;\n  -webkit-transition: all 0.3s ease-in-out!important;\n  -moz-transition: all 0.3s ease-in-out!important;\n  -o-transition: all 0.3s ease-in-out!important;\n  transition: all 0.3s ease-in-out!important;\n  display: inline-block!important;\n}\n\n.btn:focus,\n.btn:active {\n  box-shadow: none!important;\n  outline: none!important;\n}\n\n.btn-common {\n  background-color: #2C6145!important;\n  position: relative!important;\n  z-index: 1!important;\n  box-shadow: 0px 8px 9px 0px rgba(96, 94, 94, 0.17)!important;\n  min-width: 160px!important;\n  height: 50px!important;\n  padding: 14px 15px!important;\n}\n\n.btn-common:hover {\n  color: #fff!important;\n  transform: translateY(-2px)!important;\n}\n\n.btn-light-bg {\n  background-color: #ff704f!important;\n}\n\n.btn-border {\n  border-style: solid!important;\n  border-width: 1px!important;\n  cursor: pointer!important;\n  background-color: transparent!important;\n  border-color: #2C6145!important;\n  color: #2C6145!important;\n  width: 160px!important;\n  height: 50px!important;\n  padding: 14px 15px!important;\n}\n\n.btn-border:hover {\n  box-shadow: 0px 8px 9px 0px rgba(96, 94, 94, 0.17)!important;\n  transform: translateY(-2px)!important;\n}\n\n.btn-border-filled {\n  cursor: pointer!important;\n  background-color: #2C6145!important;\n  border: 1px solid #2C6145!important;\n  color: #fff!important;\n  box-shadow: 0px 8px 9px 0px rgba(96, 94, 94, 0.17)!important;\n  width: 180px!important;\n  height: 50px!important;\n  padding: 15px 15px!important;\n}\n\n.btn-border-filled:hover {\n  color: #fff!important;\n  background-color: transparent!important;\n  border-color: #fff!important;\n  transform: translateY(-2px)!important;\n}\n\n.btn-lg {\n  padding: 14px 33px!important;\n  text-transform: uppercase!important;\n  font-size: 16px!important;\n}\n\n.btn-rm {\n  color: #3c9cfd!important;\n  padding: 10px 0!important;\n  text-transform: capitalize!important;\n  font-size: 16px!important;\n}\n\n.btn-rm i {\n  vertical-align: middle!important;\n}\n\n.btn-singin {\n  background: #1679B7!important;\n  color: #fff!important;\n  padding: 10px 23px!important;\n  margin-left: 30px!important;\n  box-shadow: 0px 8px 9px 0px rgba(96, 94, 94, 0.17)!important;\n}\n\n.btn-singin:hover,\n.btn-singin:active,\n.btn-singin:focus {\n  color: #fff!important;\n  box-shadow: 0px 0px 0px 0px rgba(96, 94, 94, 0.17)!important;\n}\n\n.btn-light-singin:hover,\n.btn-light-singin:active,\n.btn-light-singin:focus {\n  color: #fff!important;\n  box-shadow: 0px 0px 0px 0px rgba(96, 94, 94, 0.17)!important;\n}\n\n.btn-apple {\n  border-width: 2px!important;\n  border-color: #3c96ff!important;\n  border-style: solid!important;\n  background: linear-gradient(to right, #3c96ff 0%, #2dfbff 100%)!important;\n  -webkit-background-clip: text!important;\n  -webkit-text-fill-color: transparent!important;\n  transition: all 0.3s ease-in-out!important;\n  -moz-transition: all 0.3s ease-in-out!important;\n  -webkit-transition: all 0.3s ease-in-out!important;\n  -o-transition: all 0.3s ease-in-out!important;\n}\n\n.btn-apple i {\n  background: linear-gradient(to right, #3c96ff 0%, #2dfbff 100%)!important;\n  -webkit-background-clip: text!important;\n  -webkit-text-fill-color: transparent!important;\n}\n\n.btn-apple:hover,\n.btn-apple:active,\n.btn-apple:focus {\n  background: linear-gradient(to right, #3c96ff 0%, #2dfbff 100%) !important;\n  -webkit-background-clip: text !important;\n  -webkit-text-fill-color: transparent !important;\n}\n\nbutton:focus {\n  outline: none !important;\n}\n\n.btn-border-fill {\n  background: #fff!important;\n  border-color: #fff!important;\n  color: #3c9cfd!important;\n}\n\n.btn-subtitle {\n  color: #191c1e!important;\n  font-family: 'Poppins', sans-serif!important;\n  background: #dbecff!important;\n  text-align: center!important;\n  border-radius: 30px!important;\n  padding: 6px 30px!important;\n  text-transform: uppercase!important;\n  font-weight: 700!important;\n  margin-bottom: 20px!important;\n  font-size: 14px!important;\n}\n\n.clear {\n  clear: both!important;\n}\n\n.mt {\n  margin-top: 80px;\n}\n\n.mt-30 {\n  margin-top: 30px;\n}\n\n.mb-30 {\n  margin-bottom: 30px;\n}\n\n.pt-30 {\n  padding-top: 30px;\n}\n\n.pb-30 {\n  padding-bottom: 30px;\n}\n\n.pt-70 {\n  padding-top: 70px;\n}\n\n.mb-50 {\n  margin-bottom: 50px;\n}\n\n.padding-0 {\n  padding: 0;\n}\n\n.pr-20 {\n  padding-right: 20px;\n}\n\n.pl-20 {\n  padding-left: 20px;\n}\n\n.pl-70 {\n  padding-left: 70px;\n}\n\n.pr-70 {\n  padding-right: 70px;\n}\n\n/* Preloader */\n#preloader {\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  background-color: #fff;\n  z-index: 9999999;\n}\n\n.loader {\n  top: 50%;\n  width: 50px;\n  height: 50px;\n  border-radius: 100%;\n  position: relative;\n  margin: 0 auto;\n}\n\n#loader-1:before,\n#loader-1:after {\n  content: \"\";\n  position: absolute;\n  top: -10px;\n  left: -10px;\n  width: 100%;\n  height: 100%;\n  border-radius: 100%;\n  border: 7px solid transparent;\n  border-top-color: #3c9cfd;\n}\n\n#loader-1:before {\n  z-index: 100;\n  animation: spin 2s infinite;\n}\n\n#loader-1:after {\n  border: 7px solid #fafafa;\n}\n\n@keyframes spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    -ms-transform: rotate(0deg);\n    -o-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n\n  100% {\n    -webkit-transform: rotate(360deg);\n    -ms-transform: rotate(360deg);\n    -o-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n\n/* ========================================================================== \n   Scroll To Up \n   ========================================================================== */\n.back-to-top {\n  display: none;\n  position: fixed;\n  bottom: 18px;\n  right: 15px;\n  width: 45px;\n  height: 45px;\n  line-height: 50px;\n  cursor: pointer;\n  text-align: center;\n  border-radius: 4px;\n  background: #2C6145;\n  background: linear-gradient(95deg, #2C6145 40%, #55A05E 100%);\n  box-shadow: 0px 8px 9px 0px rgba(96, 94, 94, 0.17);\n  z-index: 9999999;\n}\n\n.back-to-top i {\n  color: #fff;\n  font-size: 20px;\n  -webkit-transition: all 0.3s ease-in-out;\n  -moz-transition: all 0.3s ease-in-out;\n  -o-transition: all 0.3s ease-in-out;\n  transition: all 0.3s ease-in-out;\n}\n\n/* ==========================================================================\n   Navbar Style\n   ========================================================================== */\n.logo-menu a {\n  font-size: 20px!important;\n  color: #fff!important;\n}\n\n.menu-bg {\n  background: #2C6145!important;\n  background: linear-gradient(95deg, #2C6145 40%, #55A05E 100%) !important;\n  box-shadow: 0 0 7px 1px rgba(0, 0, 0, 0.1);\n  z-index: 9999;\n  padding: 5px;\n  -webkit-transition: all 0.5s ease-in-out;\n  transition: all 0.5s ease-in-out;\n}\n\n.menu-bg .menu-button {\n  top: 0!important;\n}\n\n.menu-bg .menu-button:hover {\n  cursor: pointer!important;\n  color: #3c9cfd!important;\n}\n\n.menu-bg .logo-menu a {\n  color: #3c9cfd!important;\n}\n\n.menu-bg .navbar-nav .nav-link {\n  color: #ffffff !important;\n}\n\n.menu-bg .navbar-nav .nav-link:hover {\n  color: #ffffff !important;\n}\n\n.menu-bg .navbar-nav .active {\n  color: #ffffff !important;\n}\n\n.navbar-expand-md .navbar-nav .nav-link {\n  color: #fff!important;\n  font-size: 16px!important;\n  padding: 8px 0px!important;\n  margin-left: 26px!important;\n  font-family: 'Poppins', sans-serif!important;\n  position: relative!important;\n  font-weight: 500!important;\n}\n\n.navbar-expand-md .navbar-nav .nav-link:before {\n  content: '';\n  position: absolute!important;\n  bottom: 0!important;\n  left: 0!important;\n  width: 0!important;\n  height: 2px!important;\n  background: #ffffff!important;\n  -webkit-transition: 0.3s!important;\n  -moz-transition: 0.3s!important;\n  transition: 0.3s!important;\n}\n\n.navbar-expand-md .navbar-nav .active::before,\n.navbar-expand-md .navbar-nav .nav-link:hover::before {\n  width: 100%!important;\n}\n\n.navbar-brand {\n  color: #fff!important;\n}\n\n.navbar-expand-md .navbar-nav .nav-link:focus,\n.navbar-expand-md .navbar-nav .nav-link:hover,\n.navbar-expand-md .navbar-nav .nav-link:hover:before {\n  color: #ffffff!important;\n}\n\n.navbar-expand-md .navbar-nav .active>.nav-link,\n.navbar-expand-md .navbar-nav .nav-link.active,\n.navbar-expand-md .navbar-nav .nav-link.active:before,\n.navbar-expand-md .navbar-nav .nav-link.open,\n.navbar-expand-md .navbar-nav .open>.nav-link {\n  color: #ffffff!important;\n}\n\n.navbar-expand-md .navbar-toggler {\n  background: transparent!important;\n  border: 1px solid #fff!important;\n  border-radius: 3px!important;\n  margin: 5px!important;\n  cursor: pointer!important;\n  float: right!important;\n}\n\n.navbar-expand-md .navbar-toggler i {\n  color: #fff !important;\n}\n\n.navbar-expand-md .navbar-toggler:focus {\n  outline: none!important;\n}\n\n/* ==========================================================================\n   Hero Area\n   ========================================================================== */\n.hero-area {\n  position: relative;\n    }\n\n.rm-Header {\n    content-visibility: hidden!important;\n} \n\n.hero-area .overlay {\n  position: absolute;\n  width: 100%;\n  height: 100%;\n  top: 0px;\n  left: 0px;\n  /* background-image: url(https://files.readme.io/7d6fd955d8d1e65a4ca4b5a24742445a04c34b276186724ceaeddd8e7133955b-myot-hero-background.svg);*/\n  background-color: black;\n\tbackground-size: cover;\n  -webkit-transform: skewY(-8deg);\n  transform: skewY(-8deg);\n  -webkit-transform-origin: 0;\n  transform-origin: 0;\n  z-index: -12;\n}\n\n.hero-area .overlay :nth-child(1) {\n  width: 33.33333%;\n  display: flex;\n  top: 0;\n  left: 16.66666%;\n  left: calc(calc(100% / 3) / 2);\n  right: auto;\n  background: #2C6145;\n  background: linear-gradient(95deg, #2C6145 40%, #55A05E 100%);\n  height: 200px;\n}\n\n.hero-area .overlay :nth-child(2) {\n  width: 33.33333%;\n  width: calc(100% /3);\n  bottom: 0;\n  background: #2C6145;\n  background: linear-gradient(95deg, #2C6145 40%, #55A05E 100%);\n  position: absolute;\n  height: 155px;\n  left: 3%;\n}\n\n.hero-area .contents {\n  padding: 220px 0;\n}\n\n.hero-area .contents h2 {\n  color: #fff;\n  font-size: 38px;\n  font-weight: 600;\n  line-height: 60px;\n  margin-bottom: 20px;\n}\n\n.hero-area .contents p {\n  color: #fff;\n  font-size: 18px;\n  line-height: 26px;\n}\n\n.hero-area .contents .btn {\n  margin-top: 40px;\n  margin-right: 20px;\n  text-transform: uppercase;\n  width: 180px;\n  height: 50px;\n  padding: 15px 15px;\n}\n\n.hero-area .contents .btn-border {\n  border: 1px solid #fff;\n  color: #2C6145 !important;\n  -webkit-box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11), 0 1px 3px rgba(0, 0, 0, 0.08);\n  box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11), 0 1px 3px rgba(0, 0, 0, 0.08);\n  width: 180px;\n  height: 50px;\n  padding: 15px 15px;\n  background: #fff;\n}\n\n.hero-area .contents .btn-border:hover {\n  background: #fff;\n  color: #2C6145;\n}\n\n.hero-area .intro-img {\n  padding: 140px 0 0px;\n}\n\n.hero-area .intro-img img {\n  display: block;\n  height: auto;\n  max-width: 90%;\n}\n\n/* ==========================================================================\n   About \n   ========================================================================== */\n#services .services-item {\n  padding: 60px 30px;\n  border: 1px solid #ddd;\n  -moz-transition: all .8s ease;\n  -webkit-transition: all .8s ease;\n  transition: all .8s ease;\n}\n\n#services .services-item:hover {\n  border: 1px solid #2C6145;\n  box-shadow: 0px 0px 25px 0px rgba(95, 95, 95, 0.24);\n  -moz-transition: all .4s ease;\n  -webkit-transition: all .4s ease;\n  transition: all .4s ease;\n}\n\n#services .services-item .icon {\n  background: #2C6145;\n  width: 110px;\n  height: 110px;\n  margin: 0px auto;\n  margin-bottom: 0px;\n  text-align: center;\n  display: block;\n  border-radius: 50%;\n  position: relative;\n  margin-bottom: 25px;\n}\n\n#services .services-item .icon i {\n  font-size: 40px;\n  color: #ffffff;\n  position: absolute;\n  left: 0;\n  right: 0;\n  top: 30%;\n}\n\n#services .services-item h4 {\n  font-size: 20px;\n  font-weight: 600;\n  color: #151948;\n  margin-bottom: 15px;\n}\n\n#services .services-item p {\n  font-size: 16px;\n  margin-bottom: 10px;\n  color: #5e629c;\n}\n\n/* ==========================================================================\n   business-plan Section \n   ========================================================================== */\n#business-plan {\n  padding-bottom: 130px;\n}\n\n#business-plan .container-fluid {\n  padding-right: 30px;\n  padding-left: 30px;\n}\n\n#business-plan .business-item-info {\n  margin-top: 30%;\n}\n\n#business-plan .business-item-info h3 {\n  font-size: 35px;\n  font-weight: 600;\n  margin-bottom: 25px;\n}\n\n#business-plan .business-item-info p {\n  font-size: 16px;\n  margin-bottom: 20px;\n}\n\n/* ==========================================================================\n   Features \n   ========================================================================== */\n#features {\n  background: #f9f9f9;\n}\n\n#features .featured-bg {\n  background: #fff;\n}\n\n#features .featured-border1 {\n  border-bottom: 1px solid #ededed;\n  border-right: 1px solid #ededed;\n}\n\n#features .featured-border2 {\n  border-bottom: 1px solid #ededed;\n}\n\n#features .featured-border3 {\n  border-right: 1px solid #ededed;\n}\n\n#features .feature-item {\n  padding: 30px;\n  overflow: hidden;\n  -moz-transition: all .8s ease;\n  -webkit-transition: all .8s ease;\n  transition: all .8s ease;\n}\n\n#features .feature-item .feature-icon {\n  background: #2C6145;\n  width: 100px;\n  height: 100px;\n  margin: 0px auto;\n  margin-top: 0px;\n  margin-right: auto;\n  margin-bottom: 0px;\n  margin-bottom: 0px;\n  margin-bottom: 0px;\n  text-align: center;\n  display: block;\n  border-radius: 50%;\n  position: relative;\n  margin-right: 30px;\n  border: 1px solid #2C6145;\n  margin-top: 12px;\n}\n\n#features .feature-item .feature-icon i {\n  font-size: 40px;\n  color: #2C6145;\n  position: absolute;\n  left: 0;\n  right: 0;\n  top: 32%;\n}\n\n#features .feature-item h4 {\n  font-size: 20px;\n  font-weight: 600;\n  margin-bottom: 20px;\n}\n\n#features .feature-item p {\n  font-size: 16px;\n  display: block;\n}\n\n#features .feature-item:hover {\n  box-shadow: 0px 0px 25px 0px rgba(95, 95, 95, 0.24);\n  -moz-transition: all .8s ease;\n  -webkit-transition: all .8s ease;\n  transition: all .8s ease;\n}\n\n#features .feature-item:hover .feature-icon {\n  background: #2C6145;\n  -moz-transition: all .8s ease;\n  -webkit-transition: all .8s ease;\n  transition: all .8s ease;\n}\n\n#features .feature-item:hover .feature-icon i {\n  color: #fff;\n  -moz-transition: all .8s ease;\n  -webkit-transition: all .8s ease;\n  transition: all .8s ease;\n}\n\n/* ==========================================================================\n   Features \n   ========================================================================== */\n#download-app {\n  padding-bottom: 100px;\n}\n\n#download-app .download-info {\n  padding-top: 30px;\n}\n\n#download-app .download-info h3 {\n  font-size: 35px;\n  font-weight: 600;\n  margin-bottom: 20px;\n  line-height: 44px;\n}\n\n#download-app .download-info p {\n  font-size: 16px;\n  display: block;\n  margin-bottom: 35px;\n}\n\n#download-app .download-info .downlaod-btn {\n  padding-bottom: 50px;\n  border-bottom: 1px solid #ff704f;\n  margin-bottom: 40px;\n}\n\n#download-app .download-info .downlaod-btn a.play-store {\n  font-size: 12px;\n  box-shadow: 0px 10px 20px 2px rgba(255, 112, 79, 0.24);\n  border-radius: 35px;\n  text-transform: inherit;\n  text-align: left;\n  padding: 15px 80px;\n  width: 195px;\n  height: 65px;\n  line-height: 18px;\n  margin-right: 35px;\n  background: #ff704f;\n  background-position-x: left;\n  background-position-y: center;\n  background-position: 20%;\n}\n\n#download-app .download-info .downlaod-btn a {\n  position: relative;\n}\n\n#download-app .download-info .downlaod-btn a.play-store span {\n  font-size: 15px;\n  font-weight: 500;\n}\n\n#download-app .download-info .downlaod-btn a.play-store i {\n  position: absolute;\n  left: 40px;\n  font-size: 28px;\n  color: #fff;\n  top: 18px;\n}\n\n#download-app .download-info .downlaod-btn a.ios-store i {\n  position: absolute;\n  left: 40px;\n  font-size: 28px;\n  color: #000;\n  top: 18px;\n}\n\n#download-app .download-info .downlaod-btn a.ios-store {\n  border: 1px solid #ff704f;\n  color: #151948;\n  font-size: 12px;\n  box-shadow: 0px 10px 20px 2px rgba(255, 112, 79, 0.24);\n  border-radius: 35px;\n  text-transform: inherit;\n  text-align: left;\n  padding: 15px 80px;\n  width: 195px;\n  height: 65px;\n  line-height: 18px;\n  margin-right: 35px;\n  background: #fff;\n  background-position-x: left;\n  background-position-y: center;\n  background-position: 20%;\n  position: relative;\n}\n\n#download-app .download-info .downlaod-btn a.play-store:hover {\n  color: #151948;\n  -webkit-transition: all 0.8s ease-in-out;\n  -moz-transition: all 0.8s ease-in-out;\n  -o-transition: all 0.8s ease-in-out;\n  transition: all 0.8s ease-in-out;\n}\n\n#download-app .download-info .downlaod-btn a.ios-store span {\n  font-size: 15px;\n}\n\n#download-app .download-info .downlaod-btn a.ios-store:hover {\n  color: #ff704f;\n  -webkit-transition: all 0.8s ease-in-out;\n  -moz-transition: all 0.8s ease-in-out;\n  -o-transition: all 0.8s ease-in-out;\n  transition: all 0.8s ease-in-out;\n}\n\n#download-app .download-statatics h3 {\n  color: #151948;\n  font-size: 30px;\n  font-weight: 600;\n  margin-bottom: 0px;\n}\n\n#download-app .download-statatics p {\n  font-size: 18px;\n  color: #5e629c;\n}\n\n/* ==========================================================================\n   Showcase \n   ========================================================================== */\n#showcase {\n  padding-bottom: 25%;\n}\n\n#showcase .right-position {\n  position: relative;\n}\n\n#showcase .showcase-area {\n  position: absolute;\n  width: 97%;\n  z-index: 12;\n  top: 70%;\n  margin: 0px auto;\n}\n\n#showcase .showcase-text h2 {\n  color: #fff;\n}\n\n#showcase .showcase-text p {\n  color: #fff;\n}\n\n#showcase .gradient-bg {\n  background: #2C6145;\n  background: linear-gradient(95deg, #2C6145 40%, #55A05E 100%);\n  padding: 119px 0px 80px 0px;\n}\n\n#showcase .showcase-slider .owl-controls .owl-page.active span,\n#showcase .showcase-slider .owl-controls.clickable .owl-page:hover span {\n  filter: Alpha(Opacity=100);\n  opacity: 1;\n  background: #2C6145;\n}\n\n#showcase .showcase-slider .owl-controls .owl-page span {\n  display: block;\n  width: 12px;\n  height: 12px;\n  margin: 5px 7px;\n  filter: Alpha(Opacity=50);\n  opacity: 0.5;\n  -webkit-border-radius: 20px;\n  -moz-border-radius: 20px;\n  border-radius: 20px;\n  background: #2C6145;\n}\n\n#showcase .showcase-slider .owl-controls .active span {\n  width: 15px;\n  height: 15px;\n}\n\n#showcase .showcase-slider .screenshot-thumb {\n  width: 100%;\n  height: 100%;\n  position: relative;\n}\n\n#showcase .showcase-slider .screenshot-thumb .fancy-table {\n  padding-top: 10%;\n}\n\n@media only screen and (min-width: 1600px) {\n    #showcase .showcase-slider .screenshot-thumb p {\n        color: #fff;\n        font-size: 16px;\n        font-style: italic;\n        margin-bottom: 10px;\n        padding: 0px 20px 0px 20px;\n        display: -webkit-box;\n        -webkit-box-orient: vertical;\n        overflow: hidden;\n        -webkit-line-clamp: 6;\n        text-overflow: ellipsis;\n        max-height: 80%;\n        white-space: normal;\n    }\n}\n\n@media only screen and (min-width: 1400px) and (max-width: 1600px) {\n    #showcase .showcase-slider .screenshot-thumb p {\n        color: #fff;\n        font-size: 16px;\n        font-style: italic;\n        margin-bottom: 10px;\n        padding: 0px 20px 0px 20px;\n        display: -webkit-box;\n        -webkit-box-orient: vertical;\n        overflow: hidden;\n        -webkit-line-clamp: 3;\n        text-overflow: ellipsis;\n        max-height: 80%;\n        white-space: normal;\n    }\n}\n\n@media only screen and (min-width: 1000px) and (max-width: 1400px) {\n    #showcase .showcase-slider .screenshot-thumb p {\n        color: #fff;\n        font-size: 12px;\n        font-style: italic;\n        margin-bottom: 10px;\n        padding: 0px 20px 0px 20px;\n        display: -webkit-box;\n        -webkit-box-orient: vertical;\n        overflow: hidden;\n        -webkit-line-clamp: 1;\n        text-overflow: ellipsis;\n        max-height: 80%;\n        white-space: normal;\n    }\n    #showcase .showcase-slider .screenshot-thumb h5 {\n        font-size: 14px;\n        color: #fff;\n        display: block;\n        font-weight: 600;\n      }\n}\n\n@media only screen and (max-width: 1000px) {\n    #showcase {\n        display: none;\n      }\n    #business-plan {\n        display: none;\n    }\n}\n\n#showcase .showcase-slider .screenshot-thumb h5 {\n  font-size: 20px;\n  color: #fff;\n  display: block;\n  font-weight: 600;\n}\n\n#showcase .showcase-slider .screenshot-thumb .zoom-icon a {\n  display: inline-block;\n  margin: 8px;\n}\n\n#showcase .showcase-slider .screenshot-thumb .zoom-icon a:hover i {\n  color: #000;\n  -webkit-transition: all 200ms ease-in;\n  -ms-transition: all 200ms ease-in;\n  -moz-transition: all 200ms ease-in;\n  transition: all 200ms ease-in;\n}\n\n#showcase .showcase-slider .screenshot-thumb .zoom-icon a i {\n  color: #fff;\n  font-size: 20px;\n}\n\n#showcase .showcase-slider .screenshot-thumb>.hover-content {\n  background-color: #2C6145;\n  opacity: 0.90;\n  height: 90%;\n  left: 0;\n  opacity: 0;\n  position: absolute;\n  top: 0;\n  -webkit-transition-duration: 500ms;\n  -o-transition-duration: 500ms;\n  transition-duration: 500ms;\n  width: 90% !important;\n  margin: 5%;\n}\n\n#showcase .showcase-slider .screenshot-thumb:hover .hover-content {\n  opacity: 0.8;\n  -webkit-transition-duration: 500ms;\n  -o-transition-duration: 500ms;\n  transition-duration: 500ms;\n}\n\n#showcase .showcase-slider .owl-wrapper-outer {\n  padding: 20px 0px;\n}\n\n/* ==========================================================================\n   Footer section\n   ========================================================================== */\n#footer-Content {\n  padding-top: 130px;\n  background: #2c3643;\n}\n\n#footer-Content .footer-logo img {\n  padding-top: 70px;\n}\n\n#footer-Content .form-control:focus {\n  outline: none;\n  box-shadow: none;\n  background: #e5fff3;\n}\n\n#footer-Content .copyright {\n  margin-top: 125px;\n  border-top: 1px solid #ffffff;\n  padding-top: 30px;\n  padding-bottom: 30px;\n}\n\n#footer-Content .copyright p {\n  color: #ffffff;\n  font-size: 18px;\n}\n\n#footer-Content .copyright a {\n  color: #ddd;\n}\n\n#footer-Content .widget p {\n  color: #e2e2e2;\n  font-size: 16px;\n  line-height: 32px;\n}\n\n#footer-Content .widget .subscribe-area {\n  position: relative;\n  height: 40px;\n  margin-top: 18px;\n}\n\n#footer-Content .widget .subscribe-area input[type=email] {\n  background: #24153c;\n  border: 1px solid #fff;\n  color: #e2e2e2;\n  font-size: 14px;\n  font-style: italic;\n  height: 38px;\n}\n\n#footer-Content .widget .subscribe-area span i {\n  position: absolute;\n  right: 0;\n  width: 60px;\n  height: 38px;\n  color: #fff;\n  top: 0;\n  background: #2C6145;\n  display: block;\n  padding: 9px 20px;\n  font-size: 18px;\n  border-radius: 0px 4px 4px 0px;\n}\n\n#footer-Content h3.block-title {\n  color: #fff;\n  font-size: 20px;\n  font-weight: 600;\n  margin-bottom: 30px;\n}\n\n#footer-Content ul.menu li a {\n  color: #e2e2e2;\n  font-size: 16px;\n  font-weight: 400;\n  line-height: 32px;\n  -webkit-transition: all 300ms;\n  -o-transition: all 300ms;\n  transition: all 300ms;\n}\n\n#footer-Content ul.menu li a:hover {\n  color: #2C6145;\n  padding-left: 5px;\n  -webkit-transition: all 300ms;\n  -o-transition: all 300ms;\n  transition: all 300ms;\n}\t\n    \n/*!\n * Bootstrap v4.1.1 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n    --blue: #007bff;\n    --indigo: #6610f2;\n    --purple: #6f42c1;\n    --pink: #e83e8c;\n    --red: #dc3545;\n    --orange: #fd7e14;\n    --yellow: #ffc107;\n    --green: #28a745;\n    --teal: #20c997;\n    --cyan: #17a2b8;\n    --white: #fff;\n    --gray: #6c757d;\n    --gray-dark: #343a40;\n    --primary: #007bff;\n    --secondary: #6c757d;\n    --success: #28a745;\n    --info: #17a2b8;\n    --warning: #ffc107;\n    --danger: #dc3545;\n    --light: #f8f9fa;\n    --dark: #343a40;\n    --breakpoint-xs: 0;\n    --breakpoint-sm: 576px;\n    --breakpoint-md: 768px;\n    --breakpoint-lg: 992px;\n    --breakpoint-xl: 1200px;\n    --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace\n}\n\n*,\n::after,\n::before {\n    box-sizing: border-box\n}\n\nhtml {\n    font-family: sans-serif;\n    line-height: 1.15;\n    -webkit-text-size-adjust: 100%;\n    -ms-text-size-adjust: 100%;\n    -ms-overflow-style: scrollbar;\n    -webkit-tap-highlight-color: transparent\n}\n\n@-ms-viewport {\n    width: device-width\n}\n\narticle,\naside,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection {\n    display: block\n}\n\nbody {\n    margin: 0;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-size: 1rem;\n    font-weight: 400;\n    line-height: 1.5;\n    color: #212529;\n    text-align: left;\n    background-color: #fff\n}\n\n[tabindex=\"-1\"]:focus {\n    outline: 0 !important\n}\n\nhr {\n    box-sizing: content-box;\n    height: 0;\n    overflow: visible\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n    margin-top: 0;\n    margin-bottom: .5rem\n}\n\np {\n    margin-top: 0;\n    margin-bottom: 1rem\n}\n\nabbr[data-original-title],\nabbr[title] {\n    text-decoration: underline;\n    -webkit-text-decoration: underline dotted;\n    text-decoration: underline dotted;\n    cursor: help;\n    border-bottom: 0\n}\n\naddress {\n    margin-bottom: 1rem;\n    font-style: normal;\n    line-height: inherit\n}\n\ndl,\nol,\nul {\n    margin-top: 0;\n    margin-bottom: 1rem\n}\n\nol ol,\nol ul,\nul ol,\nul ul {\n    margin-bottom: 0\n}\n\ndt {\n    font-weight: 700\n}\n\ndd {\n    margin-bottom: .5rem;\n    margin-left: 0\n}\n\nblockquote {\n    margin: 0 0 1rem\n}\n\ndfn {\n    font-style: italic\n}\n\nb,\nstrong {\n    font-weight: bolder\n}\n\nsmall {\n    font-size: 80%\n}\n\nsub,\nsup {\n    position: relative;\n    font-size: 75%;\n    line-height: 0;\n    vertical-align: baseline\n}\n\nsub {\n    bottom: -.25em\n}\n\nsup {\n    top: -.5em\n}\n\na {\n    color: #007bff;\n    text-decoration: none;\n    background-color: transparent;\n    -webkit-text-decoration-skip: objects\n}\n\na:hover {\n    color: #0056b3;\n    text-decoration: underline\n}\n\na:not([href]):not([tabindex]) {\n    color: inherit;\n    text-decoration: none\n}\n\na:not([href]):not([tabindex]):focus,\na:not([href]):not([tabindex]):hover {\n    color: inherit;\n    text-decoration: none\n}\n\na:not([href]):not([tabindex]):focus {\n    outline: 0\n}\n\ncode,\nkbd,\npre,\nsamp {\n    font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n    font-size: 1em\n}\n\npre {\n    margin-top: 0;\n    margin-bottom: 1rem;\n    overflow: auto;\n    -ms-overflow-style: scrollbar\n}\n\nfigure {\n    margin: 0 0 1rem\n}\n\nimg {\n    vertical-align: middle;\n    border-style: none\n}\n\nsvg:not(:root) {\n    overflow: hidden\n}\n\ntable {\n    border-collapse: collapse\n}\n\ncaption {\n    padding-top: .75rem;\n    padding-bottom: .75rem;\n    color: #6c757d;\n    text-align: left;\n    caption-side: bottom\n}\n\nth {\n    text-align: inherit\n}\n\nlabel {\n    display: inline-block;\n    margin-bottom: .5rem\n}\n\nbutton {\n    border-radius: 0\n}\n\nbutton:focus {\n    outline: 1px dotted;\n    outline: 5px auto -webkit-focus-ring-color\n}\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n    margin: 0;\n    font-family: inherit;\n    font-size: inherit;\n    line-height: inherit\n}\n\nbutton,\ninput {\n    overflow: visible\n}\n\nbutton,\nselect {\n    text-transform: none\n}\n\n[type=reset],\n[type=submit],\nbutton,\nhtml [type=button] {\n    -webkit-appearance: button\n}\n\n[type=button]::-moz-focus-inner,\n[type=reset]::-moz-focus-inner,\n[type=submit]::-moz-focus-inner,\nbutton::-moz-focus-inner {\n    padding: 0;\n    border-style: none\n}\n\ninput[type=checkbox],\ninput[type=radio] {\n    box-sizing: border-box;\n    padding: 0\n}\n\ninput[type=date],\ninput[type=datetime-local],\ninput[type=month],\ninput[type=time] {\n    -webkit-appearance: listbox\n}\n\ntextarea {\n    overflow: auto;\n    resize: vertical\n}\n\nfieldset {\n    min-width: 0;\n    padding: 0;\n    margin: 0;\n    border: 0\n}\n\nlegend {\n    display: block;\n    width: 100%;\n    max-width: 100%;\n    padding: 0;\n    margin-bottom: .5rem;\n    font-size: 1.5rem;\n    line-height: inherit;\n    color: inherit;\n    white-space: normal\n}\n\nprogress {\n    vertical-align: baseline\n}\n\n[type=number]::-webkit-inner-spin-button,\n[type=number]::-webkit-outer-spin-button {\n    height: auto\n}\n\n[type=search] {\n    outline-offset: -2px;\n    -webkit-appearance: none\n}\n\n[type=search]::-webkit-search-cancel-button,\n[type=search]::-webkit-search-decoration {\n    -webkit-appearance: none\n}\n\n::-webkit-file-upload-button {\n    font: inherit;\n    -webkit-appearance: button\n}\n\noutput {\n    display: inline-block\n}\n\nsummary {\n    display: list-item;\n    cursor: pointer\n}\n\ntemplate {\n    display: none\n}\n\n[hidden] {\n    display: none !important\n}\n\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n    margin-bottom: .5rem;\n    font-family: inherit;\n    font-weight: 500;\n    line-height: 1.2;\n    color: inherit\n}\n\n.h1,\nh1 {\n    font-size: 2.5rem\n}\n\n.h2,\nh2 {\n    font-size: 2rem\n}\n\n.h3,\nh3 {\n    font-size: 1.75rem\n}\n\n.h4,\nh4 {\n    font-size: 1.5rem\n}\n\n.h5,\nh5 {\n    font-size: 1.25rem\n}\n\n.h6,\nh6 {\n    font-size: 1rem\n}\n\n.lead {\n    font-size: 1.25rem;\n    font-weight: 300\n}\n\n.display-1 {\n    font-size: 6rem;\n    font-weight: 300;\n    line-height: 1.2\n}\n\n.display-2 {\n    font-size: 5.5rem;\n    font-weight: 300;\n    line-height: 1.2\n}\n\n.display-3 {\n    font-size: 4.5rem;\n    font-weight: 300;\n    line-height: 1.2\n}\n\n.display-4 {\n    font-size: 3.5rem;\n    font-weight: 300;\n    line-height: 1.2\n}\n\nhr {\n    margin-top: 1rem;\n    margin-bottom: 1rem;\n    border: 0;\n    border-top: 1px solid rgba(0, 0, 0, .1)\n}\n\n.small,\nsmall {\n    font-size: 80%;\n    font-weight: 400\n}\n\n.mark,\nmark {\n    padding: .2em;\n    background-color: #fcf8e3\n}\n\n.list-unstyled {\n    padding-left: 0;\n    list-style: none\n}\n\n.list-inline {\n    padding-left: 0;\n    list-style: none\n}\n\n.list-inline-item {\n    display: inline-block\n}\n\n.list-inline-item:not(:last-child) {\n    margin-right: .5rem\n}\n\n.initialism {\n    font-size: 90%;\n    text-transform: uppercase\n}\n\n.blockquote {\n    margin-bottom: 1rem;\n    font-size: 1.25rem\n}\n\n.blockquote-footer {\n    display: block;\n    font-size: 80%;\n    color: #6c757d\n}\n\n.blockquote-footer::before {\n    content: \"\\2014 \\00A0\"\n}\n\n.img-fluid {\n    max-width: 100%;\n    height: auto\n}\n\n.img-thumbnail {\n    padding: .25rem;\n    background-color: #fff;\n    border: 1px solid #dee2e6;\n    border-radius: .25rem;\n    max-width: 100%;\n    height: auto\n}\n\n.figure {\n    display: inline-block\n}\n\n.figure-img {\n    margin-bottom: .5rem;\n    line-height: 1\n}\n\n.figure-caption {\n    font-size: 90%;\n    color: #6c757d\n}\n\ncode {\n    font-size: 87.5%;\n    color: #e83e8c;\n    word-break: break-word\n}\n\na>code {\n    color: inherit\n}\n\nkbd {\n    padding: .2rem .4rem;\n    font-size: 87.5%;\n    color: #fff;\n    background-color: #212529;\n    border-radius: .2rem\n}\n\nkbd kbd {\n    padding: 0;\n    font-size: 100%;\n    font-weight: 700\n}\n\npre {\n    display: block;\n    font-size: 87.5%;\n    color: #212529\n}\n\npre code {\n    font-size: inherit;\n    color: inherit;\n    word-break: normal\n}\n\n.pre-scrollable {\n    max-height: 340px;\n    overflow-y: scroll\n}\n\n.container {\n    width: 100%;\n    padding-right: 15px;\n    padding-left: 15px;\n    margin-right: auto;\n    margin-left: auto\n}\n\n@media (min-width:576px) {\n    .container {\n        max-width: 540px\n    }\n}\n\n@media (min-width:768px) {\n    .container {\n        max-width: 720px\n    }\n}\n\n@media (min-width:992px) {\n    .container {\n        max-width: 960px\n    }\n}\n\n@media (min-width:1200px) {\n    .container {\n        max-width: 1140px\n    }\n}\n\n.container-fluid {\n    width: 100%;\n    padding-right: 15px;\n    padding-left: 15px;\n    margin-right: auto;\n    margin-left: auto\n}\n\n.row {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-wrap: wrap;\n    flex-wrap: wrap;\n    margin-right: -15px;\n    margin-left: -15px;\n    justify-content: center;\n}\n\n.no-gutters {\n    margin-right: 0;\n    margin-left: 0\n}\n\n.no-gutters>.col,\n.no-gutters>[class*=col-] {\n    padding-right: 0;\n    padding-left: 0\n}\n\n.col,\n.col-1,\n.col-10,\n.col-11,\n.col-12,\n.col-2,\n.col-3,\n.col-4,\n.col-5,\n.col-6,\n.col-7,\n.col-8,\n.col-9,\n.col-auto,\n.col-lg,\n.col-lg-1,\n.col-lg-10,\n.col-lg-11,\n.col-lg-12,\n.col-lg-2,\n.col-lg-3,\n.col-lg-4,\n.col-lg-5,\n.col-lg-6,\n.col-lg-7,\n.col-lg-8,\n.col-lg-9,\n.col-lg-auto,\n.col-md,\n.col-md-1,\n.col-md-10,\n.col-md-11,\n.col-md-12,\n.col-md-2,\n.col-md-3,\n.col-md-4,\n.col-md-5,\n.col-md-6,\n.col-md-7,\n.col-md-8,\n.col-md-9,\n.col-md-auto,\n.col-sm,\n.col-sm-1,\n.col-sm-10,\n.col-sm-11,\n.col-sm-12,\n.col-sm-2,\n.col-sm-3,\n.col-sm-4,\n.col-sm-5,\n.col-sm-6,\n.col-sm-7,\n.col-sm-8,\n.col-sm-9,\n.col-sm-auto,\n.col-xl,\n.col-xl-1,\n.col-xl-10,\n.col-xl-11,\n.col-xl-12,\n.col-xl-2,\n.col-xl-3,\n.col-xl-4,\n.col-xl-5,\n.col-xl-6,\n.col-xl-7,\n.col-xl-8,\n.col-xl-9,\n.col-xl-auto {\n    position: relative;\n    width: 100%;\n    min-height: 1px;\n    padding-right: 15px;\n    padding-left: 15px\n}\n\n.col {\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%\n}\n\n.col-auto {\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: none\n}\n\n.col-1 {\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%\n}\n\n.col-2 {\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%\n}\n\n.col-3 {\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%\n}\n\n.col-4 {\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%\n}\n\n.col-5 {\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%\n}\n\n.col-6 {\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%\n}\n\n.col-7 {\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%\n}\n\n.col-8 {\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%\n}\n\n.col-9 {\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%\n}\n\n.col-10 {\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%\n}\n\n.col-11 {\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%\n}\n\n.col-12 {\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%\n}\n\n.order-first {\n    -ms-flex-order: -1;\n    order: -1\n}\n\n.order-last {\n    -ms-flex-order: 13;\n    order: 13\n}\n\n.order-0 {\n    -ms-flex-order: 0;\n    order: 0\n}\n\n.order-1 {\n    -ms-flex-order: 1;\n    order: 1\n}\n\n.order-2 {\n    -ms-flex-order: 2;\n    order: 2\n}\n\n.order-3 {\n    -ms-flex-order: 3;\n    order: 3\n}\n\n.order-4 {\n    -ms-flex-order: 4;\n    order: 4\n}\n\n.order-5 {\n    -ms-flex-order: 5;\n    order: 5\n}\n\n.order-6 {\n    -ms-flex-order: 6;\n    order: 6\n}\n\n.order-7 {\n    -ms-flex-order: 7;\n    order: 7\n}\n\n.order-8 {\n    -ms-flex-order: 8;\n    order: 8\n}\n\n.order-9 {\n    -ms-flex-order: 9;\n    order: 9\n}\n\n.order-10 {\n    -ms-flex-order: 10;\n    order: 10\n}\n\n.order-11 {\n    -ms-flex-order: 11;\n    order: 11\n}\n\n.order-12 {\n    -ms-flex-order: 12;\n    order: 12\n}\n\n.offset-1 {\n    margin-left: 8.333333%\n}\n\n.offset-2 {\n    margin-left: 16.666667%\n}\n\n.offset-3 {\n    margin-left: 25%\n}\n\n.offset-4 {\n    margin-left: 33.333333%\n}\n\n.offset-5 {\n    margin-left: 41.666667%\n}\n\n.offset-6 {\n    margin-left: 50%\n}\n\n.offset-7 {\n    margin-left: 58.333333%\n}\n\n.offset-8 {\n    margin-left: 66.666667%\n}\n\n.offset-9 {\n    margin-left: 75%\n}\n\n.offset-10 {\n    margin-left: 83.333333%\n}\n\n.offset-11 {\n    margin-left: 91.666667%\n}\n\n@media (min-width:576px) {\n    .col-sm {\n        -ms-flex-preferred-size: 0;\n        flex-basis: 0;\n        -ms-flex-positive: 1;\n        flex-grow: 1;\n        max-width: 100%\n    }\n\n    .col-sm-auto {\n        -ms-flex: 0 0 auto;\n        flex: 0 0 auto;\n        width: auto;\n        max-width: none\n    }\n\n    .col-sm-1 {\n        -ms-flex: 0 0 8.333333%;\n        flex: 0 0 8.333333%;\n        max-width: 8.333333%\n    }\n\n    .col-sm-2 {\n        -ms-flex: 0 0 16.666667%;\n        flex: 0 0 16.666667%;\n        max-width: 16.666667%\n    }\n\n    .col-sm-3 {\n        -ms-flex: 0 0 25%;\n        flex: 0 0 25%;\n        max-width: 25%\n    }\n\n    .col-sm-4 {\n        -ms-flex: 0 0 33.333333%;\n        flex: 0 0 33.333333%;\n        max-width: 33.333333%\n    }\n\n    .col-sm-5 {\n        -ms-flex: 0 0 41.666667%;\n        flex: 0 0 41.666667%;\n        max-width: 41.666667%\n    }\n\n    .col-sm-6 {\n        -ms-flex: 0 0 50%;\n        flex: 0 0 50%;\n        max-width: 50%\n    }\n\n    .col-sm-7 {\n        -ms-flex: 0 0 58.333333%;\n        flex: 0 0 58.333333%;\n        max-width: 58.333333%\n    }\n\n    .col-sm-8 {\n        -ms-flex: 0 0 66.666667%;\n        flex: 0 0 66.666667%;\n        max-width: 66.666667%\n    }\n\n    .col-sm-9 {\n        -ms-flex: 0 0 75%;\n        flex: 0 0 75%;\n        max-width: 75%\n    }\n\n    .col-sm-10 {\n        -ms-flex: 0 0 83.333333%;\n        flex: 0 0 83.333333%;\n        max-width: 83.333333%\n    }\n\n    .col-sm-11 {\n        -ms-flex: 0 0 91.666667%;\n        flex: 0 0 91.666667%;\n        max-width: 91.666667%\n    }\n\n    .col-sm-12 {\n        -ms-flex: 0 0 100%;\n        flex: 0 0 100%;\n        max-width: 100%\n    }\n\n    .order-sm-first {\n        -ms-flex-order: -1;\n        order: -1\n    }\n\n    .order-sm-last {\n        -ms-flex-order: 13;\n        order: 13\n    }\n\n    .order-sm-0 {\n        -ms-flex-order: 0;\n        order: 0\n    }\n\n    .order-sm-1 {\n        -ms-flex-order: 1;\n        order: 1\n    }\n\n    .order-sm-2 {\n        -ms-flex-order: 2;\n        order: 2\n    }\n\n    .order-sm-3 {\n        -ms-flex-order: 3;\n        order: 3\n    }\n\n    .order-sm-4 {\n        -ms-flex-order: 4;\n        order: 4\n    }\n\n    .order-sm-5 {\n        -ms-flex-order: 5;\n        order: 5\n    }\n\n    .order-sm-6 {\n        -ms-flex-order: 6;\n        order: 6\n    }\n\n    .order-sm-7 {\n        -ms-flex-order: 7;\n        order: 7\n    }\n\n    .order-sm-8 {\n        -ms-flex-order: 8;\n        order: 8\n    }\n\n    .order-sm-9 {\n        -ms-flex-order: 9;\n        order: 9\n    }\n\n    .order-sm-10 {\n        -ms-flex-order: 10;\n        order: 10\n    }\n\n    .order-sm-11 {\n        -ms-flex-order: 11;\n        order: 11\n    }\n\n    .order-sm-12 {\n        -ms-flex-order: 12;\n        order: 12\n    }\n\n    .offset-sm-0 {\n        margin-left: 0\n    }\n\n    .offset-sm-1 {\n        margin-left: 8.333333%\n    }\n\n    .offset-sm-2 {\n        margin-left: 16.666667%\n    }\n\n    .offset-sm-3 {\n        margin-left: 25%\n    }\n\n    .offset-sm-4 {\n        margin-left: 33.333333%\n    }\n\n    .offset-sm-5 {\n        margin-left: 41.666667%\n    }\n\n    .offset-sm-6 {\n        margin-left: 50%\n    }\n\n    .offset-sm-7 {\n        margin-left: 58.333333%\n    }\n\n    .offset-sm-8 {\n        margin-left: 66.666667%\n    }\n\n    .offset-sm-9 {\n        margin-left: 75%\n    }\n\n    .offset-sm-10 {\n        margin-left: 83.333333%\n    }\n\n    .offset-sm-11 {\n        margin-left: 91.666667%\n    }\n}\n\n@media (min-width:768px) {\n    .col-md {\n        -ms-flex-preferred-size: 0;\n        flex-basis: 0;\n        -ms-flex-positive: 1;\n        flex-grow: 1;\n        max-width: 100%\n    }\n\n    .col-md-auto {\n        -ms-flex: 0 0 auto;\n        flex: 0 0 auto;\n        width: auto;\n        max-width: none\n    }\n\n    .col-md-1 {\n        -ms-flex: 0 0 8.333333%;\n        flex: 0 0 8.333333%;\n        max-width: 8.333333%\n    }\n\n    .col-md-2 {\n        -ms-flex: 0 0 16.666667%;\n        flex: 0 0 16.666667%;\n        max-width: 16.666667%\n    }\n\n    .col-md-3 {\n        -ms-flex: 0 0 25%;\n        flex: 0 0 25%;\n        max-width: 25%\n    }\n\n    .col-md-4 {\n        -ms-flex: 0 0 33.333333%;\n        flex: 0 0 33.333333%;\n        max-width: 33.333333%\n    }\n\n    .col-md-5 {\n        -ms-flex: 0 0 41.666667%;\n        flex: 0 0 41.666667%;\n        max-width: 41.666667%\n    }\n\n    .col-md-6 {\n        -ms-flex: 0 0 50%;\n        flex: 0 0 50%;\n        max-width: 50%\n    }\n\n    .col-md-7 {\n        -ms-flex: 0 0 58.333333%;\n        flex: 0 0 58.333333%;\n        max-width: 58.333333%\n    }\n\n    .col-md-8 {\n        -ms-flex: 0 0 66.666667%;\n        flex: 0 0 66.666667%;\n        max-width: 66.666667%\n    }\n\n    .col-md-9 {\n        -ms-flex: 0 0 75%;\n        flex: 0 0 75%;\n        max-width: 75%\n    }\n\n    .col-md-10 {\n        -ms-flex: 0 0 83.333333%;\n        flex: 0 0 83.333333%;\n        max-width: 83.333333%\n    }\n\n    .col-md-11 {\n        -ms-flex: 0 0 91.666667%;\n        flex: 0 0 91.666667%;\n        max-width: 91.666667%\n    }\n\n    .col-md-12 {\n        -ms-flex: 0 0 100%;\n        flex: 0 0 100%;\n        max-width: 100%\n    }\n\n    .order-md-first {\n        -ms-flex-order: -1;\n        order: -1\n    }\n\n    .order-md-last {\n        -ms-flex-order: 13;\n        order: 13\n    }\n\n    .order-md-0 {\n        -ms-flex-order: 0;\n        order: 0\n    }\n\n    .order-md-1 {\n        -ms-flex-order: 1;\n        order: 1\n    }\n\n    .order-md-2 {\n        -ms-flex-order: 2;\n        order: 2\n    }\n\n    .order-md-3 {\n        -ms-flex-order: 3;\n        order: 3\n    }\n\n    .order-md-4 {\n        -ms-flex-order: 4;\n        order: 4\n    }\n\n    .order-md-5 {\n        -ms-flex-order: 5;\n        order: 5\n    }\n\n    .order-md-6 {\n        -ms-flex-order: 6;\n        order: 6\n    }\n\n    .order-md-7 {\n        -ms-flex-order: 7;\n        order: 7\n    }\n\n    .order-md-8 {\n        -ms-flex-order: 8;\n        order: 8\n    }\n\n    .order-md-9 {\n        -ms-flex-order: 9;\n        order: 9\n    }\n\n    .order-md-10 {\n        -ms-flex-order: 10;\n        order: 10\n    }\n\n    .order-md-11 {\n        -ms-flex-order: 11;\n        order: 11\n    }\n\n    .order-md-12 {\n        -ms-flex-order: 12;\n        order: 12\n    }\n\n    .offset-md-0 {\n        margin-left: 0\n    }\n\n    .offset-md-1 {\n        margin-left: 8.333333%\n    }\n\n    .offset-md-2 {\n        margin-left: 16.666667%\n    }\n\n    .offset-md-3 {\n        margin-left: 25%\n    }\n\n    .offset-md-4 {\n        margin-left: 33.333333%\n    }\n\n    .offset-md-5 {\n        margin-left: 41.666667%\n    }\n\n    .offset-md-6 {\n        margin-left: 50%\n    }\n\n    .offset-md-7 {\n        margin-left: 58.333333%\n    }\n\n    .offset-md-8 {\n        margin-left: 66.666667%\n    }\n\n    .offset-md-9 {\n        margin-left: 75%\n    }\n\n    .offset-md-10 {\n        margin-left: 83.333333%\n    }\n\n    .offset-md-11 {\n        margin-left: 91.666667%\n    }\n}\n\n@media (min-width:992px) {\n    .col-lg {\n        -ms-flex-preferred-size: 0;\n        flex-basis: 0;\n        -ms-flex-positive: 1;\n        flex-grow: 1;\n        max-width: 100%\n    }\n\n    .col-lg-auto {\n        -ms-flex: 0 0 auto;\n        flex: 0 0 auto;\n        width: auto;\n        max-width: none\n    }\n\n    .col-lg-1 {\n        -ms-flex: 0 0 8.333333%;\n        flex: 0 0 8.333333%;\n        max-width: 8.333333%\n    }\n\n    .col-lg-2 {\n        -ms-flex: 0 0 20%;\n        flex: 0 0 20%;\n        max-width: 20%\n    }\n\n    .col-lg-3 {\n        -ms-flex: 0 0 20%;\n        flex: 0 0 20%;\n        max-width: 20%\n    }\n\n    .col-lg-4 {\n        -ms-flex: 0 0 33.333333%;\n        flex: 0 0 33.333333%;\n        max-width: 33.333333%\n    }\n\n    .col-lg-5 {\n        -ms-flex: 0 0 41.666667%;\n        flex: 0 0 41.666667%;\n        max-width: 41.666667%\n    }\n\n    .col-lg-6 {\n        -ms-flex: 0 0 50%;\n        flex: 0 0 50%;\n        max-width: 50%\n    }\n\n    .col-lg-7 {\n        -ms-flex: 0 0 58.333333%;\n        flex: 0 0 58.333333%;\n        max-width: 58.333333%\n    }\n\n    .col-lg-8 {\n        -ms-flex: 0 0 66.666667%;\n        flex: 0 0 66.666667%;\n        max-width: 66.666667%\n    }\n\n    .col-lg-9 {\n        -ms-flex: 0 0 75%;\n        flex: 0 0 75%;\n        max-width: 75%\n    }\n\n    .col-lg-10 {\n        -ms-flex: 0 0 83.333333%;\n        flex: 0 0 83.333333%;\n        max-width: 83.333333%\n    }\n\n    .col-lg-11 {\n        -ms-flex: 0 0 91.666667%;\n        flex: 0 0 91.666667%;\n        max-width: 91.666667%\n    }\n\n    .col-lg-12 {\n        -ms-flex: 0 0 100%;\n        flex: 0 0 100%;\n        max-width: 100%\n    }\n\n    .order-lg-first {\n        -ms-flex-order: -1;\n        order: -1\n    }\n\n    .order-lg-last {\n        -ms-flex-order: 13;\n        order: 13\n    }\n\n    .order-lg-0 {\n        -ms-flex-order: 0;\n        order: 0\n    }\n\n    .order-lg-1 {\n        -ms-flex-order: 1;\n        order: 1\n    }\n\n    .order-lg-2 {\n        -ms-flex-order: 2;\n        order: 2\n    }\n\n    .order-lg-3 {\n        -ms-flex-order: 3;\n        order: 3\n    }\n\n    .order-lg-4 {\n        -ms-flex-order: 4;\n        order: 4\n    }\n\n    .order-lg-5 {\n        -ms-flex-order: 5;\n        order: 5\n    }\n\n    .order-lg-6 {\n        -ms-flex-order: 6;\n        order: 6\n    }\n\n    .order-lg-7 {\n        -ms-flex-order: 7;\n        order: 7\n    }\n\n    .order-lg-8 {\n        -ms-flex-order: 8;\n        order: 8\n    }\n\n    .order-lg-9 {\n        -ms-flex-order: 9;\n        order: 9\n    }\n\n    .order-lg-10 {\n        -ms-flex-order: 10;\n        order: 10\n    }\n\n    .order-lg-11 {\n        -ms-flex-order: 11;\n        order: 11\n    }\n\n    .order-lg-12 {\n        -ms-flex-order: 12;\n        order: 12\n    }\n\n    .offset-lg-0 {\n        margin-left: 0\n    }\n\n    .offset-lg-1 {\n        margin-left: 8.333333%\n    }\n\n    .offset-lg-2 {\n        margin-left: 16.666667%\n    }\n\n    .offset-lg-3 {\n        margin-left: 25%\n    }\n\n    .offset-lg-4 {\n        margin-left: 33.333333%\n    }\n\n    .offset-lg-5 {\n        margin-left: 41.666667%\n    }\n\n    .offset-lg-6 {\n        margin-left: 50%\n    }\n\n    .offset-lg-7 {\n        margin-left: 58.333333%\n    }\n\n    .offset-lg-8 {\n        margin-left: 66.666667%\n    }\n\n    .offset-lg-9 {\n        margin-left: 75%\n    }\n\n    .offset-lg-10 {\n        margin-left: 83.333333%\n    }\n\n    .offset-lg-11 {\n        margin-left: 91.666667%\n    }\n}\n\n@media (min-width:1200px) {\n    .col-xl {\n        -ms-flex-preferred-size: 0;\n        flex-basis: 0;\n        -ms-flex-positive: 1;\n        flex-grow: 1;\n        max-width: 100%\n    }\n\n    .col-xl-auto {\n        -ms-flex: 0 0 auto;\n        flex: 0 0 auto;\n        width: auto;\n        max-width: none\n    }\n\n    .col-xl-1 {\n        -ms-flex: 0 0 8.333333%;\n        flex: 0 0 8.333333%;\n        max-width: 8.333333%\n    }\n\n    .col-xl-2 {\n        -ms-flex: 0 0 16.666667%;\n        flex: 0 0 16.666667%;\n        max-width: 16.666667%\n    }\n\n    .col-xl-3 {\n        -ms-flex: 0 0 25%;\n        flex: 0 0 25%;\n        max-width: 25%\n    }\n\n    .col-xl-4 {\n        -ms-flex: 0 0 33.333333%;\n        flex: 0 0 33.333333%;\n        max-width: 33.333333%\n    }\n\n    .col-xl-5 {\n        -ms-flex: 0 0 41.666667%;\n        flex: 0 0 41.666667%;\n        max-width: 41.666667%\n    }\n\n    .col-xl-6 {\n        -ms-flex: 0 0 50%;\n        flex: 0 0 50%;\n        max-width: 50%\n    }\n\n    .col-xl-7 {\n        -ms-flex: 0 0 58.333333%;\n        flex: 0 0 58.333333%;\n        max-width: 58.333333%\n    }\n\n    .col-xl-8 {\n        -ms-flex: 0 0 66.666667%;\n        flex: 0 0 66.666667%;\n        max-width: 66.666667%\n    }\n\n    .col-xl-9 {\n        -ms-flex: 0 0 75%;\n        flex: 0 0 75%;\n        max-width: 75%\n    }\n\n    .col-xl-10 {\n        -ms-flex: 0 0 83.333333%;\n        flex: 0 0 83.333333%;\n        max-width: 83.333333%\n    }\n\n    .col-xl-11 {\n        -ms-flex: 0 0 91.666667%;\n        flex: 0 0 91.666667%;\n        max-width: 91.666667%\n    }\n\n    .col-xl-12 {\n        -ms-flex: 0 0 100%;\n        flex: 0 0 100%;\n        max-width: 100%\n    }\n\n    .order-xl-first {\n        -ms-flex-order: -1;\n        order: -1\n    }\n\n    .order-xl-last {\n        -ms-flex-order: 13;\n        order: 13\n    }\n\n    .order-xl-0 {\n        -ms-flex-order: 0;\n        order: 0\n    }\n\n    .order-xl-1 {\n        -ms-flex-order: 1;\n        order: 1\n    }\n\n    .order-xl-2 {\n        -ms-flex-order: 2;\n        order: 2\n    }\n\n    .order-xl-3 {\n        -ms-flex-order: 3;\n        order: 3\n    }\n\n    .order-xl-4 {\n        -ms-flex-order: 4;\n        order: 4\n    }\n\n    .order-xl-5 {\n        -ms-flex-order: 5;\n        order: 5\n    }\n\n    .order-xl-6 {\n        -ms-flex-order: 6;\n        order: 6\n    }\n\n    .order-xl-7 {\n        -ms-flex-order: 7;\n        order: 7\n    }\n\n    .order-xl-8 {\n        -ms-flex-order: 8;\n        order: 8\n    }\n\n    .order-xl-9 {\n        -ms-flex-order: 9;\n        order: 9\n    }\n\n    .order-xl-10 {\n        -ms-flex-order: 10;\n        order: 10\n    }\n\n    .order-xl-11 {\n        -ms-flex-order: 11;\n        order: 11\n    }\n\n    .order-xl-12 {\n        -ms-flex-order: 12;\n        order: 12\n    }\n\n    .offset-xl-0 {\n        margin-left: 0\n    }\n\n    .offset-xl-1 {\n        margin-left: 8.333333%\n    }\n\n    .offset-xl-2 {\n        margin-left: 16.666667%\n    }\n\n    .offset-xl-3 {\n        margin-left: 25%\n    }\n\n    .offset-xl-4 {\n        margin-left: 33.333333%\n    }\n\n    .offset-xl-5 {\n        margin-left: 41.666667%\n    }\n\n    .offset-xl-6 {\n        margin-left: 50%\n    }\n\n    .offset-xl-7 {\n        margin-left: 58.333333%\n    }\n\n    .offset-xl-8 {\n        margin-left: 66.666667%\n    }\n\n    .offset-xl-9 {\n        margin-left: 75%\n    }\n\n    .offset-xl-10 {\n        margin-left: 83.333333%\n    }\n\n    .offset-xl-11 {\n        margin-left: 91.666667%\n    }\n}\n\n.table {\n    width: 100%;\n    max-width: 100%;\n    margin-bottom: 1rem;\n    background-color: transparent\n}\n\n.table td,\n.table th {\n    padding: .75rem;\n    vertical-align: top;\n    border-top: 1px solid #dee2e6\n}\n\n.table thead th {\n    vertical-align: bottom;\n    border-bottom: 2px solid #dee2e6\n}\n\n.table tbody+tbody {\n    border-top: 2px solid #dee2e6\n}\n\n.table .table {\n    background-color: #fff\n}\n\n.table-sm td,\n.table-sm th {\n    padding: .3rem\n}\n\n.table-bordered {\n    border: 1px solid #dee2e6\n}\n\n.table-bordered td,\n.table-bordered th {\n    border: 1px solid #dee2e6\n}\n\n.table-bordered thead td,\n.table-bordered thead th {\n    border-bottom-width: 2px\n}\n\n.table-borderless tbody+tbody,\n.table-borderless td,\n.table-borderless th,\n.table-borderless thead th {\n    border: 0\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n    background-color: rgba(0, 0, 0, .05)\n}\n\n.table-hover tbody tr:hover {\n    background-color: rgba(0, 0, 0, .075)\n}\n\n.table-primary,\n.table-primary>td,\n.table-primary>th {\n    background-color: #b8daff\n}\n\n.table-hover .table-primary:hover {\n    background-color: #9fcdff\n}\n\n.table-hover .table-primary:hover>td,\n.table-hover .table-primary:hover>th {\n    background-color: #9fcdff\n}\n\n.table-secondary,\n.table-secondary>td,\n.table-secondary>th {\n    background-color: #d6d8db\n}\n\n.table-hover .table-secondary:hover {\n    background-color: #c8cbcf\n}\n\n.table-hover .table-secondary:hover>td,\n.table-hover .table-secondary:hover>th {\n    background-color: #c8cbcf\n}\n\n.table-success,\n.table-success>td,\n.table-success>th {\n    background-color: #c3e6cb\n}\n\n.table-hover .table-success:hover {\n    background-color: #b1dfbb\n}\n\n.table-hover .table-success:hover>td,\n.table-hover .table-success:hover>th {\n    background-color: #b1dfbb\n}\n\n.table-info,\n.table-info>td,\n.table-info>th {\n    background-color: #bee5eb\n}\n\n.table-hover .table-info:hover {\n    background-color: #abdde5\n}\n\n.table-hover .table-info:hover>td,\n.table-hover .table-info:hover>th {\n    background-color: #abdde5\n}\n\n.table-warning,\n.table-warning>td,\n.table-warning>th {\n    background-color: #ffeeba\n}\n\n.table-hover .table-warning:hover {\n    background-color: #ffe8a1\n}\n\n.table-hover .table-warning:hover>td,\n.table-hover .table-warning:hover>th {\n    background-color: #ffe8a1\n}\n\n.table-danger,\n.table-danger>td,\n.table-danger>th {\n    background-color: #f5c6cb\n}\n\n.table-hover .table-danger:hover {\n    background-color: #f1b0b7\n}\n\n.table-hover .table-danger:hover>td,\n.table-hover .table-danger:hover>th {\n    background-color: #f1b0b7\n}\n\n.table-light,\n.table-light>td,\n.table-light>th {\n    background-color: #fdfdfe\n}\n\n.table-hover .table-light:hover {\n    background-color: #ececf6\n}\n\n.table-hover .table-light:hover>td,\n.table-hover .table-light:hover>th {\n    background-color: #ececf6\n}\n\n.table-dark,\n.table-dark>td,\n.table-dark>th {\n    background-color: #c6c8ca\n}\n\n.table-hover .table-dark:hover {\n    background-color: #b9bbbe\n}\n\n.table-hover .table-dark:hover>td,\n.table-hover .table-dark:hover>th {\n    background-color: #b9bbbe\n}\n\n.table-active,\n.table-active>td,\n.table-active>th {\n    background-color: rgba(0, 0, 0, .075)\n}\n\n.table-hover .table-active:hover {\n    background-color: rgba(0, 0, 0, .075)\n}\n\n.table-hover .table-active:hover>td,\n.table-hover .table-active:hover>th {\n    background-color: rgba(0, 0, 0, .075)\n}\n\n.table .thead-dark th {\n    color: #fff;\n    background-color: #212529;\n    border-color: #32383e\n}\n\n.table .thead-light th {\n    color: #495057;\n    background-color: #e9ecef;\n    border-color: #dee2e6\n}\n\n.table-dark {\n    color: #fff;\n    background-color: #212529\n}\n\n.table-dark td,\n.table-dark th,\n.table-dark thead th {\n    border-color: #32383e\n}\n\n.table-dark.table-bordered {\n    border: 0\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n    background-color: rgba(255, 255, 255, .05)\n}\n\n.table-dark.table-hover tbody tr:hover {\n    background-color: rgba(255, 255, 255, .075)\n}\n\n@media (max-width:575.98px) {\n    .table-responsive-sm {\n        display: block;\n        width: 100%;\n        overflow-x: auto;\n        -webkit-overflow-scrolling: touch;\n        -ms-overflow-style: -ms-autohiding-scrollbar\n    }\n\n    .table-responsive-sm>.table-bordered {\n        border: 0\n    }\n}\n\n@media (max-width:767.98px) {\n    .table-responsive-md {\n        display: block;\n        width: 100%;\n        overflow-x: auto;\n        -webkit-overflow-scrolling: touch;\n        -ms-overflow-style: -ms-autohiding-scrollbar\n    }\n\n    .table-responsive-md>.table-bordered {\n        border: 0\n    }\n}\n\n@media (max-width:991.98px) {\n    .table-responsive-lg {\n        display: block;\n        width: 100%;\n        overflow-x: auto;\n        -webkit-overflow-scrolling: touch;\n        -ms-overflow-style: -ms-autohiding-scrollbar\n    }\n\n    .table-responsive-lg>.table-bordered {\n        border: 0\n    }\n}\n\n@media (max-width:1199.98px) {\n    .table-responsive-xl {\n        display: block;\n        width: 100%;\n        overflow-x: auto;\n        -webkit-overflow-scrolling: touch;\n        -ms-overflow-style: -ms-autohiding-scrollbar\n    }\n\n    .table-responsive-xl>.table-bordered {\n        border: 0\n    }\n}\n\n.table-responsive {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar\n}\n\n.table-responsive>.table-bordered {\n    border: 0\n}\n\n.form-control {\n    display: block;\n    width: 100%;\n    padding: .375rem .75rem;\n    font-size: 1rem;\n    line-height: 1.5;\n    color: #495057;\n    background-color: #fff;\n    background-clip: padding-box;\n    border: 1px solid #ced4da;\n    border-radius: .25rem;\n    transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out\n}\n\n@media screen and (prefers-reduced-motion:reduce) {\n    .form-control {\n        transition: none\n    }\n}\n\n.form-control::-ms-expand {\n    background-color: transparent;\n    border: 0\n}\n\n.form-control:focus {\n    color: #495057;\n    background-color: #fff;\n    border-color: #80bdff;\n    outline: 0;\n    box-shadow: 0 0 0 .2rem rgba(0, 123, 255, .25)\n}\n\n.form-control::-webkit-input-placeholder {\n    color: #6c757d;\n    opacity: 1\n}\n\n.form-control::-moz-placeholder {\n    color: #6c757d;\n    opacity: 1\n}\n\n.form-control:-ms-input-placeholder {\n    color: #6c757d;\n    opacity: 1\n}\n\n.form-control::-ms-input-placeholder {\n    color: #6c757d;\n    opacity: 1\n}\n\n.form-control::placeholder {\n    color: #6c757d;\n    opacity: 1\n}\n\n.form-control:disabled,\n.form-control[readonly] {\n    background-color: #e9ecef;\n    opacity: 1\n}\n\nselect.form-control:not([size]):not([multiple]) {\n    height: calc(2.25rem + 2px)\n}\n\nselect.form-control:focus::-ms-value {\n    color: #495057;\n    background-color: #fff\n}\n\n.form-control-file,\n.form-control-range {\n    display: block;\n    width: 100%\n}\n\n.col-form-label {\n    padding-top: calc(.375rem + 1px);\n    padding-bottom: calc(.375rem + 1px);\n    margin-bottom: 0;\n    font-size: inherit;\n    line-height: 1.5\n}\n\n.col-form-label-lg {\n    padding-top: calc(.5rem + 1px);\n    padding-bottom: calc(.5rem + 1px);\n    font-size: 1.25rem;\n    line-height: 1.5\n}\n\n.col-form-label-sm {\n    padding-top: calc(.25rem + 1px);\n    padding-bottom: calc(.25rem + 1px);\n    font-size: .875rem;\n    line-height: 1.5\n}\n\n.form-control-plaintext {\n    display: block;\n    width: 100%;\n    padding-top: .375rem;\n    padding-bottom: .375rem;\n    margin-bottom: 0;\n    line-height: 1.5;\n    color: #212529;\n    background-color: transparent;\n    border: solid transparent;\n    border-width: 1px 0\n}\n\n.form-control-plaintext.form-control-lg,\n.form-control-plaintext.form-control-sm,\n.input-group-lg>.form-control-plaintext.form-control,\n.input-group-lg>.input-group-append>.form-control-plaintext.btn,\n.input-group-lg>.input-group-append>.form-control-plaintext.input-group-text,\n.input-group-lg>.input-group-prepend>.form-control-plaintext.btn,\n.input-group-lg>.input-group-prepend>.form-control-plaintext.input-group-text,\n.input-group-sm>.form-control-plaintext.form-control,\n.input-group-sm>.input-group-append>.form-control-plaintext.btn,\n.input-group-sm>.input-group-append>.form-control-plaintext.input-group-text,\n.input-group-sm>.input-group-prepend>.form-control-plaintext.btn,\n.input-group-sm>.input-group-prepend>.form-control-plaintext.input-group-text {\n    padding-right: 0;\n    padding-left: 0\n}\n\n.form-control-sm,\n.input-group-sm>.form-control,\n.input-group-sm>.input-group-append>.btn,\n.input-group-sm>.input-group-append>.input-group-text,\n.input-group-sm>.input-group-prepend>.btn,\n.input-group-sm>.input-group-prepend>.input-group-text {\n    padding: .25rem .5rem;\n    font-size: .875rem;\n    line-height: 1.5;\n    border-radius: .2rem\n}\n\n.input-group-sm>.input-group-append>select.btn:not([size]):not([multiple]),\n.input-group-sm>.input-group-append>select.input-group-text:not([size]):not([multiple]),\n.input-group-sm>.input-group-prepend>select.btn:not([size]):not([multiple]),\n.input-group-sm>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),\n.input-group-sm>select.form-control:not([size]):not([multiple]),\nselect.form-control-sm:not([size]):not([multiple]) {\n    height: calc(1.8125rem + 2px)\n}\n\n.form-control-lg,\n.input-group-lg>.form-control,\n.input-group-lg>.input-group-append>.btn,\n.input-group-lg>.input-group-append>.input-group-text,\n.input-group-lg>.input-group-prepend>.btn,\n.input-group-lg>.input-group-prepend>.input-group-text {\n    padding: .5rem 1rem;\n    font-size: 1.25rem;\n    line-height: 1.5;\n    border-radius: .3rem\n}\n\n.input-group-lg>.input-group-append>select.btn:not([size]):not([multiple]),\n.input-group-lg>.input-group-append>select.input-group-text:not([size]):not([multiple]),\n.input-group-lg>.input-group-prepend>select.btn:not([size]):not([multiple]),\n.input-group-lg>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),\n.input-group-lg>select.form-control:not([size]):not([multiple]),\nselect.form-control-lg:not([size]):not([multiple]) {\n    height: calc(2.875rem + 2px)\n}\n\n.form-group {\n    margin-bottom: 1rem\n}\n\n.form-text {\n    display: block;\n    margin-top: .25rem\n}\n\n.form-row {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-wrap: wrap;\n    flex-wrap: wrap;\n    margin-right: -5px;\n    margin-left: -5px\n}\n\n.form-row>.col,\n.form-row>[class*=col-] {\n    padding-right: 5px;\n    padding-left: 5px\n}\n\n.form-check {\n    position: relative;\n    display: block;\n    padding-left: 1.25rem\n}\n\n.form-check-input {\n    position: absolute;\n    margin-top: .3rem;\n    margin-left: -1.25rem\n}\n\n.form-check-input:disabled~.form-check-label {\n    color: #6c757d\n}\n\n.form-check-label {\n    margin-bottom: 0\n}\n\n.form-check-inline {\n    display: -ms-inline-flexbox;\n    display: inline-flex;\n    -ms-flex-align: center;\n    align-items: center;\n    padding-left: 0;\n    margin-right: .75rem\n}\n\n.form-check-inline .form-check-input {\n    position: static;\n    margin-top: 0;\n    margin-right: .3125rem;\n    margin-left: 0\n}\n\n.valid-feedback {\n    display: none;\n    width: 100%;\n    margin-top: .25rem;\n    font-size: 80%;\n    color: #28a745\n}\n\n.valid-tooltip {\n    position: absolute;\n    top: 100%;\n    z-index: 5;\n    display: none;\n    max-width: 100%;\n    padding: .5rem;\n    margin-top: .1rem;\n    font-size: .875rem;\n    line-height: 1;\n    color: #fff;\n    background-color: rgba(40, 167, 69, .8);\n    border-radius: .2rem\n}\n\n.custom-select.is-valid,\n.form-control.is-valid,\n.was-validated .custom-select:valid,\n.was-validated .form-control:valid {\n    border-color: #28a745\n}\n\n.custom-select.is-valid:focus,\n.form-control.is-valid:focus,\n.was-validated .custom-select:valid:focus,\n.was-validated .form-control:valid:focus {\n    border-color: #28a745;\n    box-shadow: 0 0 0 .2rem rgba(40, 167, 69, .25)\n}\n\n.custom-select.is-valid~.valid-feedback,\n.custom-select.is-valid~.valid-tooltip,\n.form-control.is-valid~.valid-feedback,\n.form-control.is-valid~.valid-tooltip,\n.was-validated .custom-select:valid~.valid-feedback,\n.was-validated .custom-select:valid~.valid-tooltip,\n.was-validated .form-control:valid~.valid-feedback,\n.was-validated .form-control:valid~.valid-tooltip {\n    display: block\n}\n\n.form-control-file.is-valid~.valid-feedback,\n.form-control-file.is-valid~.valid-tooltip,\n.was-validated .form-control-file:valid~.valid-feedback,\n.was-validated .form-control-file:valid~.valid-tooltip {\n    display: block\n}\n\n.form-check-input.is-valid~.form-check-label,\n.was-validated .form-check-input:valid~.form-check-label {\n    color: #28a745\n}\n\n.form-check-input.is-valid~.valid-feedback,\n.form-check-input.is-valid~.valid-tooltip,\n.was-validated .form-check-input:valid~.valid-feedback,\n.was-validated .form-check-input:valid~.valid-tooltip {\n    display: block\n}\n\n.custom-control-input.is-valid~.custom-control-label,\n.was-validated .custom-control-input:valid~.custom-control-label {\n    color: #28a745\n}\n\n.custom-control-input.is-valid~.custom-control-label::before,\n.was-validated .custom-control-input:valid~.custom-control-label::before {\n    background-color: #71dd8a\n}\n\n.custom-control-input.is-valid~.valid-feedback,\n.custom-control-input.is-valid~.valid-tooltip,\n.was-validated .custom-control-input:valid~.valid-feedback,\n.was-validated .custom-control-input:valid~.valid-tooltip {\n    display: block\n}\n\n.custom-control-input.is-valid:checked~.custom-control-label::before,\n.was-validated .custom-control-input:valid:checked~.custom-control-label::before {\n    background-color: #34ce57\n}\n\n.custom-control-input.is-valid:focus~.custom-control-label::before,\n.was-validated .custom-control-input:valid:focus~.custom-control-label::before {\n    box-shadow: 0 0 0 1px #fff, 0 0 0 .2rem rgba(40, 167, 69, .25)\n}\n\n.custom-file-input.is-valid~.custom-file-label,\n.was-validated .custom-file-input:valid~.custom-file-label {\n    border-color: #28a745\n}\n\n.custom-file-input.is-valid~.custom-file-label::before,\n.was-validated .custom-file-input:valid~.custom-file-label::before {\n    border-color: inherit\n}\n\n.custom-file-input.is-valid~.valid-feedback,\n.custom-file-input.is-valid~.valid-tooltip,\n.was-validated .custom-file-input:valid~.valid-feedback,\n.was-validated .custom-file-input:valid~.valid-tooltip {\n    display: block\n}\n\n.custom-file-input.is-valid:focus~.custom-file-label,\n.was-validated .custom-file-input:valid:focus~.custom-file-label {\n    box-shadow: 0 0 0 .2rem rgba(40, 167, 69, .25)\n}\n\n.invalid-feedback {\n    display: none;\n    width: 100%;\n    margin-top: .25rem;\n    font-size: 80%;\n    color: #dc3545\n}\n\n.invalid-tooltip {\n    position: absolute;\n    top: 100%;\n    z-index: 5;\n    display: none;\n    max-width: 100%;\n    padding: .5rem;\n    margin-top: .1rem;\n    font-size: .875rem;\n    line-height: 1;\n    color: #fff;\n    background-color: rgba(220, 53, 69, .8);\n    border-radius: .2rem\n}\n\n.custom-select.is-invalid,\n.form-control.is-invalid,\n.was-validated .custom-select:invalid,\n.was-validated .form-control:invalid {\n    border-color: #dc3545\n}\n\n.custom-select.is-invalid:focus,\n.form-control.is-invalid:focus,\n.was-validated .custom-select:invalid:focus,\n.was-validated .form-control:invalid:focus {\n    border-color: #dc3545;\n    box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .25)\n}\n\n.custom-select.is-invalid~.invalid-feedback,\n.custom-select.is-invalid~.invalid-tooltip,\n.form-control.is-invalid~.invalid-feedback,\n.form-control.is-invalid~.invalid-tooltip,\n.was-validated .custom-select:invalid~.invalid-feedback,\n.was-validated .custom-select:invalid~.invalid-tooltip,\n.was-validated .form-control:invalid~.invalid-feedback,\n.was-validated .form-control:invalid~.invalid-tooltip {\n    display: block\n}\n\n.form-control-file.is-invalid~.invalid-feedback,\n.form-control-file.is-invalid~.invalid-tooltip,\n.was-validated .form-control-file:invalid~.invalid-feedback,\n.was-validated .form-control-file:invalid~.invalid-tooltip {\n    display: block\n}\n\n.form-check-input.is-invalid~.form-check-label,\n.was-validated .form-check-input:invalid~.form-check-label {\n    color: #dc3545\n}\n\n.form-check-input.is-invalid~.invalid-feedback,\n.form-check-input.is-invalid~.invalid-tooltip,\n.was-validated .form-check-input:invalid~.invalid-feedback,\n.was-validated .form-check-input:invalid~.invalid-tooltip {\n    display: block\n}\n\n.custom-control-input.is-invalid~.custom-control-label,\n.was-validated .custom-control-input:invalid~.custom-control-label {\n    color: #dc3545\n}\n\n.custom-control-input.is-invalid~.custom-control-label::before,\n.was-validated .custom-control-input:invalid~.custom-control-label::before {\n    background-color: #efa2a9\n}\n\n.custom-control-input.is-invalid~.invalid-feedback,\n.custom-control-input.is-invalid~.invalid-tooltip,\n.was-validated .custom-control-input:invalid~.invalid-feedback,\n.was-validated .custom-control-input:invalid~.invalid-tooltip {\n    display: block\n}\n\n.custom-control-input.is-invalid:checked~.custom-control-label::before,\n.was-validated .custom-control-input:invalid:checked~.custom-control-label::before {\n    background-color: #e4606d\n}\n\n.custom-control-input.is-invalid:focus~.custom-control-label::before,\n.was-validated .custom-control-input:invalid:focus~.custom-control-label::before {\n    box-shadow: 0 0 0 1px #fff, 0 0 0 .2rem rgba(220, 53, 69, .25)\n}\n\n.custom-file-input.is-invalid~.custom-file-label,\n.was-validated .custom-file-input:invalid~.custom-file-label {\n    border-color: #dc3545\n}\n\n.custom-file-input.is-invalid~.custom-file-label::before,\n.was-validated .custom-file-input:invalid~.custom-file-label::before {\n    border-color: inherit\n}\n\n.custom-file-input.is-invalid~.invalid-feedback,\n.custom-file-input.is-invalid~.invalid-tooltip,\n.was-validated .custom-file-input:invalid~.invalid-feedback,\n.was-validated .custom-file-input:invalid~.invalid-tooltip {\n    display: block\n}\n\n.custom-file-input.is-invalid:focus~.custom-file-label,\n.was-validated .custom-file-input:invalid:focus~.custom-file-label {\n    box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .25)\n}\n\n.form-inline {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n    -ms-flex-align: center;\n    align-items: center\n}\n\n.form-inline .form-check {\n    width: 100%\n}\n\n@media (min-width:576px) {\n    .form-inline label {\n        display: -ms-flexbox;\n        display: flex;\n        -ms-flex-align: center;\n        align-items: center;\n        -ms-flex-pack: center;\n        justify-content: center;\n        margin-bottom: 0\n    }\n\n    .form-inline .form-group {\n        display: -ms-flexbox;\n        display: flex;\n        -ms-flex: 0 0 auto;\n        flex: 0 0 auto;\n        -ms-flex-flow: row wrap;\n        flex-flow: row wrap;\n        -ms-flex-align: center;\n        align-items: center;\n        margin-bottom: 0\n    }\n\n    .form-inline .form-control {\n        display: inline-block;\n        width: auto;\n        vertical-align: middle\n    }\n\n    .form-inline .form-control-plaintext {\n        display: inline-block\n    }\n\n    .form-inline .custom-select,\n    .form-inline .input-group {\n        width: auto\n    }\n\n    .form-inline .form-check {\n        display: -ms-flexbox;\n        display: flex;\n        -ms-flex-align: center;\n        align-items: center;\n        -ms-flex-pack: center;\n        justify-content: center;\n        width: auto;\n        padding-left: 0\n    }\n\n    .form-inline .form-check-input {\n        position: relative;\n        margin-top: 0;\n        margin-right: .25rem;\n        margin-left: 0\n    }\n\n    .form-inline .custom-control {\n        -ms-flex-align: center;\n        align-items: center;\n        -ms-flex-pack: center;\n        justify-content: center\n    }\n\n    .form-inline .custom-control-label {\n        margin-bottom: 0\n    }\n}\n\n.btn {\n    display: inline-block;\n    font-weight: 400;\n    text-align: center;\n    white-space: nowrap;\n    vertical-align: middle;\n    -webkit-user-select: none;\n    -moz-user-select: none;\n    -ms-user-select: none;\n    user-select: none;\n    border: 1px solid transparent;\n    padding: .375rem .75rem;\n    font-size: 1rem;\n    line-height: 1.5;\n    border-radius: .25rem;\n    transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out\n}\n\n@media screen and (prefers-reduced-motion:reduce) {\n    .btn {\n        transition: none\n    }\n}\n\n.btn:focus,\n.btn:hover {\n    text-decoration: none\n}\n\n.btn.focus,\n.btn:focus {\n    outline: 0;\n    box-shadow: 0 0 0 .2rem rgba(0, 123, 255, .25)\n}\n\n.btn.disabled,\n.btn:disabled {\n    opacity: .65\n}\n\n.btn:not(:disabled):not(.disabled) {\n    cursor: pointer\n}\n\n.btn:not(:disabled):not(.disabled).active,\n.btn:not(:disabled):not(.disabled):active {\n    background-image: none\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n    pointer-events: none\n}\n\n.btn-primary {\n    color: #fff;\n    background-color: #007bff;\n    border-color: #007bff\n}\n\n.btn-primary:hover {\n    color: #fff;\n    background-color: #0069d9;\n    border-color: #0062cc\n}\n\n.btn-primary.focus,\n.btn-primary:focus {\n    box-shadow: 0 0 0 .2rem rgba(0, 123, 255, .5)\n}\n\n.btn-primary.disabled,\n.btn-primary:disabled {\n    color: #fff;\n    background-color: #007bff;\n    border-color: #007bff\n}\n\n.btn-primary:not(:disabled):not(.disabled).active,\n.btn-primary:not(:disabled):not(.disabled):active,\n.show>.btn-primary.dropdown-toggle {\n    color: #fff;\n    background-color: #0062cc;\n    border-color: #005cbf\n}\n\n.btn-primary:not(:disabled):not(.disabled).active:focus,\n.btn-primary:not(:disabled):not(.disabled):active:focus,\n.show>.btn-primary.dropdown-toggle:focus {\n    box-shadow: 0 0 0 .2rem rgba(0, 123, 255, .5)\n}\n\n.btn-secondary {\n    color: #fff;\n    background-color: #6c757d;\n    border-color: #6c757d\n}\n\n.btn-secondary:hover {\n    color: #fff;\n    background-color: #5a6268;\n    border-color: #545b62\n}\n\n.btn-secondary.focus,\n.btn-secondary:focus {\n    box-shadow: 0 0 0 .2rem rgba(108, 117, 125, .5)\n}\n\n.btn-secondary.disabled,\n.btn-secondary:disabled {\n    color: #fff;\n    background-color: #6c757d;\n    border-color: #6c757d\n}\n\n.btn-secondary:not(:disabled):not(.disabled).active,\n.btn-secondary:not(:disabled):not(.disabled):active,\n.show>.btn-secondary.dropdown-toggle {\n    color: #fff;\n    background-color: #545b62;\n    border-color: #4e555b\n}\n\n.btn-secondary:not(:disabled):not(.disabled).active:focus,\n.btn-secondary:not(:disabled):not(.disabled):active:focus,\n.show>.btn-secondary.dropdown-toggle:focus {\n    box-shadow: 0 0 0 .2rem rgba(108, 117, 125, .5)\n}\n\n.btn-success {\n    color: #fff;\n    background-color: #28a745;\n    border-color: #28a745\n}\n\n.btn-success:hover {\n    color: #fff;\n    background-color: #218838;\n    border-color: #1e7e34\n}\n\n.btn-success.focus,\n.btn-success:focus {\n    box-shadow: 0 0 0 .2rem rgba(40, 167, 69, .5)\n}\n\n.btn-success.disabled,\n.btn-success:disabled {\n    color: #fff;\n    background-color: #28a745;\n    border-color: #28a745\n}\n\n.btn-success:not(:disabled):not(.disabled).active,\n.btn-success:not(:disabled):not(.disabled):active,\n.show>.btn-success.dropdown-toggle {\n    color: #fff;\n    background-color: #1e7e34;\n    border-color: #1c7430\n}\n\n.btn-success:not(:disabled):not(.disabled).active:focus,\n.btn-success:not(:disabled):not(.disabled):active:focus,\n.show>.btn-success.dropdown-toggle:focus {\n    box-shadow: 0 0 0 .2rem rgba(40, 167, 69, .5)\n}\n\n.btn-info {\n    color: #fff;\n    background-color: #17a2b8;\n    border-color: #17a2b8\n}\n\n.btn-info:hover {\n    color: #fff;\n    background-color: #138496;\n    border-color: #117a8b\n}\n\n.btn-info.focus,\n.btn-info:focus {\n    box-shadow: 0 0 0 .2rem rgba(23, 162, 184, .5)\n}\n\n.btn-info.disabled,\n.btn-info:disabled {\n    color: #fff;\n    background-color: #17a2b8;\n    border-color: #17a2b8\n}\n\n.btn-info:not(:disabled):not(.disabled).active,\n.btn-info:not(:disabled):not(.disabled):active,\n.show>.btn-info.dropdown-toggle {\n    color: #fff;\n    background-color: #117a8b;\n    border-color: #10707f\n}\n\n.btn-info:not(:disabled):not(.disabled).active:focus,\n.btn-info:not(:disabled):not(.disabled):active:focus,\n.show>.btn-info.dropdown-toggle:focus {\n    box-shadow: 0 0 0 .2rem rgba(23, 162, 184, .5)\n}\n\n.btn-warning {\n    color: #212529;\n    background-color: #ffc107;\n    border-color: #ffc107\n}\n\n.btn-warning:hover {\n    color: #212529;\n    background-color: #e0a800;\n    border-color: #d39e00\n}\n\n.btn-warning.focus,\n.btn-warning:focus {\n    box-shadow: 0 0 0 .2rem rgba(255, 193, 7, .5)\n}\n\n.btn-warning.disabled,\n.btn-warning:disabled {\n    color: #212529;\n    background-color: #ffc107;\n    border-color: #ffc107\n}\n\n.btn-warning:not(:disabled):not(.disabled).active,\n.btn-warning:not(:disabled):not(.disabled):active,\n.show>.btn-warning.dropdown-toggle {\n    color: #212529;\n    background-color: #d39e00;\n    border-color: #c69500\n}\n\n.btn-warning:not(:disabled):not(.disabled).active:focus,\n.btn-warning:not(:disabled):not(.disabled):active:focus,\n.show>.btn-warning.dropdown-toggle:focus {\n    box-shadow: 0 0 0 .2rem rgba(255, 193, 7, .5)\n}\n\n.btn-danger {\n    color: #fff;\n    background-color: #dc3545;\n    border-color: #dc3545\n}\n\n.btn-danger:hover {\n    color: #fff;\n    background-color: #c82333;\n    border-color: #bd2130\n}\n\n.btn-danger.focus,\n.btn-danger:focus {\n    box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .5)\n}\n\n.btn-danger.disabled,\n.btn-danger:disabled {\n    color: #fff;\n    background-color: #dc3545;\n    border-color: #dc3545\n}\n\n.btn-danger:not(:disabled):not(.disabled).active,\n.btn-danger:not(:disabled):not(.disabled):active,\n.show>.btn-danger.dropdown-toggle {\n    color: #fff;\n    background-color: #bd2130;\n    border-color: #b21f2d\n}\n\n.btn-danger:not(:disabled):not(.disabled).active:focus,\n.btn-danger:not(:disabled):not(.disabled):active:focus,\n.show>.btn-danger.dropdown-toggle:focus {\n    box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .5)\n}\n\n.btn-light {\n    color: #212529;\n    background-color: #f8f9fa;\n    border-color: #f8f9fa\n}\n\n.btn-light:hover {\n    color: #212529;\n    background-color: #e2e6ea;\n    border-color: #dae0e5\n}\n\n.btn-light.focus,\n.btn-light:focus {\n    box-shadow: 0 0 0 .2rem rgba(248, 249, 250, .5)\n}\n\n.btn-light.disabled,\n.btn-light:disabled {\n    color: #212529;\n    background-color: #f8f9fa;\n    border-color: #f8f9fa\n}\n\n.btn-light:not(:disabled):not(.disabled).active,\n.btn-light:not(:disabled):not(.disabled):active,\n.show>.btn-light.dropdown-toggle {\n    color: #212529;\n    background-color: #dae0e5;\n    border-color: #d3d9df\n}\n\n.btn-light:not(:disabled):not(.disabled).active:focus,\n.btn-light:not(:disabled):not(.disabled):active:focus,\n.show>.btn-light.dropdown-toggle:focus {\n    box-shadow: 0 0 0 .2rem rgba(248, 249, 250, .5)\n}\n\n.btn-dark {\n    color: #fff;\n    background-color: #343a40;\n    border-color: #343a40\n}\n\n.btn-dark:hover {\n    color: #fff;\n    background-color: #23272b;\n    border-color: #1d2124\n}\n\n.btn-dark.focus,\n.btn-dark:focus {\n    box-shadow: 0 0 0 .2rem rgba(52, 58, 64, .5)\n}\n\n.btn-dark.disabled,\n.btn-dark:disabled {\n    color: #fff;\n    background-color: #343a40;\n    border-color: #343a40\n}\n\n.btn-dark:not(:disabled):not(.disabled).active,\n.btn-dark:not(:disabled):not(.disabled):active,\n.show>.btn-dark.dropdown-toggle {\n    color: #fff;\n    background-color: #1d2124;\n    border-color: #171a1d\n}\n\n.btn-dark:not(:disabled):not(.disabled).active:focus,\n.btn-dark:not(:disabled):not(.disabled):active:focus,\n.show>.btn-dark.dropdown-toggle:focus {\n    box-shadow: 0 0 0 .2rem rgba(52, 58, 64, .5)\n}\n\n.btn-outline-primary {\n    color: #007bff;\n    background-color: transparent;\n    background-image: none;\n    border-color: #007bff\n}\n\n.btn-outline-primary:hover {\n    color: #fff;\n    background-color: #007bff;\n    border-color: #007bff\n}\n\n.btn-outline-primary.focus,\n.btn-outline-primary:focus {\n    box-shadow: 0 0 0 .2rem rgba(0, 123, 255, .5)\n}\n\n.btn-outline-primary.disabled,\n.btn-outline-primary:disabled {\n    color: #007bff;\n    background-color: transparent\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled).active,\n.btn-outline-primary:not(:disabled):not(.disabled):active,\n.show>.btn-outline-primary.dropdown-toggle {\n    color: #fff;\n    background-color: #007bff;\n    border-color: #007bff\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus,\n.show>.btn-outline-primary.dropdown-toggle:focus {\n    box-shadow: 0 0 0 .2rem rgba(0, 123, 255, .5)\n}\n\n.btn-outline-secondary {\n    color: #6c757d;\n    background-color: transparent;\n    background-image: none;\n    border-color: #6c757d\n}\n\n.btn-outline-secondary:hover {\n    color: #fff;\n    background-color: #6c757d;\n    border-color: #6c757d\n}\n\n.btn-outline-secondary.focus,\n.btn-outline-secondary:focus {\n    box-shadow: 0 0 0 .2rem rgba(108, 117, 125, .5)\n}\n\n.btn-outline-secondary.disabled,\n.btn-outline-secondary:disabled {\n    color: #6c757d;\n    background-color: transparent\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled).active,\n.btn-outline-secondary:not(:disabled):not(.disabled):active,\n.show>.btn-outline-secondary.dropdown-toggle {\n    color: #fff;\n    background-color: #6c757d;\n    border-color: #6c757d\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,\n.show>.btn-outline-secondary.dropdown-toggle:focus {\n    box-shadow: 0 0 0 .2rem rgba(108, 117, 125, .5)\n}\n\n.btn-outline-success {\n    color: #28a745;\n    background-color: transparent;\n    background-image: none;\n    border-color: #28a745\n}\n\n.btn-outline-success:hover {\n    color: #fff;\n    background-color: #28a745;\n    border-color: #28a745\n}\n\n.btn-outline-success.focus,\n.btn-outline-success:focus {\n    box-shadow: 0 0 0 .2rem rgba(40, 167, 69, .5)\n}\n\n.btn-outline-success.disabled,\n.btn-outline-success:disabled {\n    color: #28a745;\n    background-color: transparent\n}\n\n.btn-outline-success:not(:disabled):not(.disabled).active,\n.btn-outline-success:not(:disabled):not(.disabled):active,\n.show>.btn-outline-success.dropdown-toggle {\n    color: #fff;\n    background-color: #28a745;\n    border-color: #28a745\n}\n\n.btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.btn-outline-success:not(:disabled):not(.disabled):active:focus,\n.show>.btn-outline-success.dropdown-toggle:focus {\n    box-shadow: 0 0 0 .2rem rgba(40, 167, 69, .5)\n}\n\n.btn-outline-info {\n    color: #17a2b8;\n    background-color: transparent;\n    background-image: none;\n    border-color: #17a2b8\n}\n\n.btn-outline-info:hover {\n    color: #fff;\n    background-color: #17a2b8;\n    border-color: #17a2b8\n}\n\n.btn-outline-info.focus,\n.btn-outline-info:focus {\n    box-shadow: 0 0 0 .2rem rgba(23, 162, 184, .5)\n}\n\n.btn-outline-info.disabled,\n.btn-outline-info:disabled {\n    color: #17a2b8;\n    background-color: transparent\n}\n\n.btn-outline-info:not(:disabled):not(.disabled).active,\n.btn-outline-info:not(:disabled):not(.disabled):active,\n.show>.btn-outline-info.dropdown-toggle {\n    color: #fff;\n    background-color: #17a2b8;\n    border-color: #17a2b8\n}\n\n.btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.btn-outline-info:not(:disabled):not(.disabled):active:focus,\n.show>.btn-outline-info.dropdown-toggle:focus {\n    box-shadow: 0 0 0 .2rem rgba(23, 162, 184, .5)\n}\n\n.btn-outline-warning {\n    color: #ffc107;\n    background-color: transparent;\n    background-image: none;\n    border-color: #ffc107\n}\n\n.btn-outline-warning:hover {\n    color: #212529;\n    background-color: #ffc107;\n    border-color: #ffc107\n}\n\n.btn-outline-warning.focus,\n.btn-outline-warning:focus {\n    box-shadow: 0 0 0 .2rem rgba(255, 193, 7, .5)\n}\n\n.btn-outline-warning.disabled,\n.btn-outline-warning:disabled {\n    color: #ffc107;\n    background-color: transparent\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled).active,\n.btn-outline-warning:not(:disabled):not(.disabled):active,\n.show>.btn-outline-warning.dropdown-toggle {\n    color: #212529;\n    background-color: #ffc107;\n    border-color: #ffc107\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus,\n.show>.btn-outline-warning.dropdown-toggle:focus {\n    box-shadow: 0 0 0 .2rem rgba(255, 193, 7, .5)\n}\n\n.btn-outline-danger {\n    color: #dc3545;\n    background-color: transparent;\n    background-image: none;\n    border-color: #dc3545\n}\n\n.btn-outline-danger:hover {\n    color: #fff;\n    background-color: #dc3545;\n    border-color: #dc3545\n}\n\n.btn-outline-danger.focus,\n.btn-outline-danger:focus {\n    box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .5)\n}\n\n.btn-outline-danger.disabled,\n.btn-outline-danger:disabled {\n    color: #dc3545;\n    background-color: transparent\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled).active,\n.btn-outline-danger:not(:disabled):not(.disabled):active,\n.show>.btn-outline-danger.dropdown-toggle {\n    color: #fff;\n    background-color: #dc3545;\n    border-color: #dc3545\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus,\n.show>.btn-outline-danger.dropdown-toggle:focus {\n    box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .5)\n}\n\n.btn-outline-light {\n    color: #f8f9fa;\n    background-color: transparent;\n    background-image: none;\n    border-color: #f8f9fa\n}\n\n.btn-outline-light:hover {\n    color: #212529;\n    background-color: #f8f9fa;\n    border-color: #f8f9fa\n}\n\n.btn-outline-light.focus,\n.btn-outline-light:focus {\n    box-shadow: 0 0 0 .2rem rgba(248, 249, 250, .5)\n}\n\n.btn-outline-light.disabled,\n.btn-outline-light:disabled {\n    color: #f8f9fa;\n    background-color: transparent\n}\n\n.btn-outline-light:not(:disabled):not(.disabled).active,\n.btn-outline-light:not(:disabled):not(.disabled):active,\n.show>.btn-outline-light.dropdown-toggle {\n    color: #212529;\n    background-color: #f8f9fa;\n    border-color: #f8f9fa\n}\n\n.btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.btn-outline-light:not(:disabled):not(.disabled):active:focus,\n.show>.btn-outline-light.dropdown-toggle:focus {\n    box-shadow: 0 0 0 .2rem rgba(248, 249, 250, .5)\n}\n\n.btn-outline-dark {\n    color: #343a40;\n    background-color: transparent;\n    background-image: none;\n    border-color: #343a40\n}\n\n.btn-outline-dark:hover {\n    color: #fff;\n    background-color: #343a40;\n    border-color: #343a40\n}\n\n.btn-outline-dark.focus,\n.btn-outline-dark:focus {\n    box-shadow: 0 0 0 .2rem rgba(52, 58, 64, .5)\n}\n\n.btn-outline-dark.disabled,\n.btn-outline-dark:disabled {\n    color: #343a40;\n    background-color: transparent\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled).active,\n.btn-outline-dark:not(:disabled):not(.disabled):active,\n.show>.btn-outline-dark.dropdown-toggle {\n    color: #fff;\n    background-color: #343a40;\n    border-color: #343a40\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus,\n.show>.btn-outline-dark.dropdown-toggle:focus {\n    box-shadow: 0 0 0 .2rem rgba(52, 58, 64, .5)\n}\n\n.btn-link {\n    font-weight: 400;\n    color: #007bff;\n    background-color: transparent\n}\n\n.btn-link:hover {\n    color: #0056b3;\n    text-decoration: underline;\n    background-color: transparent;\n    border-color: transparent\n}\n\n.btn-link.focus,\n.btn-link:focus {\n    text-decoration: underline;\n    border-color: transparent;\n    box-shadow: none\n}\n\n.btn-link.disabled,\n.btn-link:disabled {\n    color: #6c757d;\n    pointer-events: none\n}\n\n.btn-group-lg>.btn,\n.btn-lg {\n    padding: .5rem 1rem;\n    font-size: 1.25rem;\n    line-height: 1.5;\n    border-radius: .3rem\n}\n\n.btn-group-sm>.btn,\n.btn-sm {\n    padding: .25rem .5rem;\n    font-size: .875rem;\n    line-height: 1.5;\n    border-radius: .2rem\n}\n\n.btn-block {\n    display: block;\n    width: 100%\n}\n\n.btn-block+.btn-block {\n    margin-top: .5rem\n}\n\ninput[type=button].btn-block,\ninput[type=reset].btn-block,\ninput[type=submit].btn-block {\n    width: 100%\n}\n\n.fade {\n    transition: opacity .15s linear\n}\n\n@media screen and (prefers-reduced-motion:reduce) {\n    .fade {\n        transition: none\n    }\n}\n\n.fade:not(.show) {\n    opacity: 0\n}\n\n.collapse:not(.show) {\n    display: none\n}\n\n.collapsing {\n    position: relative;\n    height: 0;\n    overflow: hidden;\n    transition: height .35s ease\n}\n\n@media screen and (prefers-reduced-motion:reduce) {\n    .collapsing {\n        transition: none\n    }\n}\n\n.dropdown,\n.dropleft,\n.dropright,\n.dropup {\n    position: relative\n}\n\n.dropdown-toggle::after {\n    display: inline-block;\n    width: 0;\n    height: 0;\n    margin-left: .255em;\n    vertical-align: .255em;\n    content: \"\";\n    border-top: .3em solid;\n    border-right: .3em solid transparent;\n    border-bottom: 0;\n    border-left: .3em solid transparent\n}\n\n.dropdown-toggle:empty::after {\n    margin-left: 0\n}\n\n.dropdown-menu {\n    position: absolute;\n    top: 100%;\n    left: 0;\n    z-index: 1000;\n    display: none;\n    float: left;\n    min-width: 10rem;\n    padding: .5rem 0;\n    margin: .125rem 0 0;\n    font-size: 1rem;\n    color: #212529;\n    text-align: left;\n    list-style: none;\n    background-color: #fff;\n    background-clip: padding-box;\n    border: 1px solid rgba(0, 0, 0, .15);\n    border-radius: .25rem\n}\n\n.dropdown-menu-right {\n    right: 0;\n    left: auto\n}\n\n.dropup .dropdown-menu {\n    top: auto;\n    bottom: 100%;\n    margin-top: 0;\n    margin-bottom: .125rem\n}\n\n.dropup .dropdown-toggle::after {\n    display: inline-block;\n    width: 0;\n    height: 0;\n    margin-left: .255em;\n    vertical-align: .255em;\n    content: \"\";\n    border-top: 0;\n    border-right: .3em solid transparent;\n    border-bottom: .3em solid;\n    border-left: .3em solid transparent\n}\n\n.dropup .dropdown-toggle:empty::after {\n    margin-left: 0\n}\n\n.dropright .dropdown-menu {\n    top: 0;\n    right: auto;\n    left: 100%;\n    margin-top: 0;\n    margin-left: .125rem\n}\n\n.dropright .dropdown-toggle::after {\n    display: inline-block;\n    width: 0;\n    height: 0;\n    margin-left: .255em;\n    vertical-align: .255em;\n    content: \"\";\n    border-top: .3em solid transparent;\n    border-right: 0;\n    border-bottom: .3em solid transparent;\n    border-left: .3em solid\n}\n\n.dropright .dropdown-toggle:empty::after {\n    margin-left: 0\n}\n\n.dropright .dropdown-toggle::after {\n    vertical-align: 0\n}\n\n.dropleft .dropdown-menu {\n    top: 0;\n    right: 100%;\n    left: auto;\n    margin-top: 0;\n    margin-right: .125rem\n}\n\n.dropleft .dropdown-toggle::after {\n    display: inline-block;\n    width: 0;\n    height: 0;\n    margin-left: .255em;\n    vertical-align: .255em;\n    content: \"\"\n}\n\n.dropleft .dropdown-toggle::after {\n    display: none\n}\n\n.dropleft .dropdown-toggle::before {\n    display: inline-block;\n    width: 0;\n    height: 0;\n    margin-right: .255em;\n    vertical-align: .255em;\n    content: \"\";\n    border-top: .3em solid transparent;\n    border-right: .3em solid;\n    border-bottom: .3em solid transparent\n}\n\n.dropleft .dropdown-toggle:empty::after {\n    margin-left: 0\n}\n\n.dropleft .dropdown-toggle::before {\n    vertical-align: 0\n}\n\n.dropdown-menu[x-placement^=bottom],\n.dropdown-menu[x-placement^=left],\n.dropdown-menu[x-placement^=right],\n.dropdown-menu[x-placement^=top] {\n    right: auto;\n    bottom: auto\n}\n\n.dropdown-divider {\n    height: 0;\n    margin: .5rem 0;\n    overflow: hidden;\n    border-top: 1px solid #e9ecef\n}\n\n.dropdown-item {\n    display: block;\n    width: 100%;\n    padding: .25rem 1.5rem;\n    clear: both;\n    font-weight: 400;\n    color: #212529;\n    text-align: inherit;\n    white-space: nowrap;\n    background-color: transparent;\n    border: 0\n}\n\n.dropdown-item:focus,\n.dropdown-item:hover {\n    color: #16181b;\n    text-decoration: none;\n    background-color: #f8f9fa\n}\n\n.dropdown-item.active,\n.dropdown-item:active {\n    color: #fff;\n    text-decoration: none;\n    background-color: #007bff\n}\n\n.dropdown-item.disabled,\n.dropdown-item:disabled {\n    color: #6c757d;\n    background-color: transparent\n}\n\n.dropdown-menu.show {\n    display: block\n}\n\n.dropdown-header {\n    display: block;\n    padding: .5rem 1.5rem;\n    margin-bottom: 0;\n    font-size: .875rem;\n    color: #6c757d;\n    white-space: nowrap\n}\n\n.dropdown-item-text {\n    display: block;\n    padding: .25rem 1.5rem;\n    color: #212529\n}\n\n.btn-group,\n.btn-group-vertical {\n    position: relative;\n    display: -ms-inline-flexbox;\n    display: inline-flex;\n    vertical-align: middle\n}\n\n.btn-group-vertical>.btn,\n.btn-group>.btn {\n    position: relative;\n    -ms-flex: 0 1 auto;\n    flex: 0 1 auto\n}\n\n.btn-group-vertical>.btn:hover,\n.btn-group>.btn:hover {\n    z-index: 1\n}\n\n.btn-group-vertical>.btn.active,\n.btn-group-vertical>.btn:active,\n.btn-group-vertical>.btn:focus,\n.btn-group>.btn.active,\n.btn-group>.btn:active,\n.btn-group>.btn:focus {\n    z-index: 1\n}\n\n.btn-group .btn+.btn,\n.btn-group .btn+.btn-group,\n.btn-group .btn-group+.btn,\n.btn-group .btn-group+.btn-group,\n.btn-group-vertical .btn+.btn,\n.btn-group-vertical .btn+.btn-group,\n.btn-group-vertical .btn-group+.btn,\n.btn-group-vertical .btn-group+.btn-group {\n    margin-left: -1px\n}\n\n.btn-toolbar {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-wrap: wrap;\n    flex-wrap: wrap;\n    -ms-flex-pack: start;\n    justify-content: flex-start\n}\n\n.btn-toolbar .input-group {\n    width: auto\n}\n\n.btn-group>.btn:first-child {\n    margin-left: 0\n}\n\n.btn-group>.btn-group:not(:last-child)>.btn,\n.btn-group>.btn:not(:last-child):not(.dropdown-toggle) {\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0\n}\n\n.btn-group>.btn-group:not(:first-child)>.btn,\n.btn-group>.btn:not(:first-child) {\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0\n}\n\n.dropdown-toggle-split {\n    padding-right: .5625rem;\n    padding-left: .5625rem\n}\n\n.dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after {\n    margin-left: 0\n}\n\n.dropleft .dropdown-toggle-split::before {\n    margin-right: 0\n}\n\n.btn-group-sm>.btn+.dropdown-toggle-split,\n.btn-sm+.dropdown-toggle-split {\n    padding-right: .375rem;\n    padding-left: .375rem\n}\n\n.btn-group-lg>.btn+.dropdown-toggle-split,\n.btn-lg+.dropdown-toggle-split {\n    padding-right: .75rem;\n    padding-left: .75rem\n}\n\n.btn-group-vertical {\n    -ms-flex-direction: column;\n    flex-direction: column;\n    -ms-flex-align: start;\n    align-items: flex-start;\n    -ms-flex-pack: center;\n    justify-content: center\n}\n\n.btn-group-vertical .btn,\n.btn-group-vertical .btn-group {\n    width: 100%\n}\n\n.btn-group-vertical>.btn+.btn,\n.btn-group-vertical>.btn+.btn-group,\n.btn-group-vertical>.btn-group+.btn,\n.btn-group-vertical>.btn-group+.btn-group {\n    margin-top: -1px;\n    margin-left: 0\n}\n\n.btn-group-vertical>.btn-group:not(:last-child)>.btn,\n.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle) {\n    border-bottom-right-radius: 0;\n    border-bottom-left-radius: 0\n}\n\n.btn-group-vertical>.btn-group:not(:first-child)>.btn,\n.btn-group-vertical>.btn:not(:first-child) {\n    border-top-left-radius: 0;\n    border-top-right-radius: 0\n}\n\n.btn-group-toggle>.btn,\n.btn-group-toggle>.btn-group>.btn {\n    margin-bottom: 0\n}\n\n.btn-group-toggle>.btn input[type=checkbox],\n.btn-group-toggle>.btn input[type=radio],\n.btn-group-toggle>.btn-group>.btn input[type=checkbox],\n.btn-group-toggle>.btn-group>.btn input[type=radio] {\n    position: absolute;\n    clip: rect(0, 0, 0, 0);\n    pointer-events: none\n}\n\n.input-group {\n    position: relative;\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-wrap: wrap;\n    flex-wrap: wrap;\n    -ms-flex-align: stretch;\n    align-items: stretch;\n    width: 100%\n}\n\n.input-group>.custom-file,\n.input-group>.custom-select,\n.input-group>.form-control {\n    position: relative;\n    -ms-flex: 1 1 auto;\n    flex: 1 1 auto;\n    width: 1%;\n    margin-bottom: 0\n}\n\n.input-group>.custom-file:focus,\n.input-group>.custom-select:focus,\n.input-group>.form-control:focus {\n    z-index: 3\n}\n\n.input-group>.custom-file+.custom-file,\n.input-group>.custom-file+.custom-select,\n.input-group>.custom-file+.form-control,\n.input-group>.custom-select+.custom-file,\n.input-group>.custom-select+.custom-select,\n.input-group>.custom-select+.form-control,\n.input-group>.form-control+.custom-file,\n.input-group>.form-control+.custom-select,\n.input-group>.form-control+.form-control {\n    margin-left: -1px\n}\n\n.input-group>.custom-select:not(:last-child),\n.input-group>.form-control:not(:last-child) {\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0\n}\n\n.input-group>.custom-select:not(:first-child),\n.input-group>.form-control:not(:first-child) {\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0\n}\n\n.input-group>.custom-file {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-align: center;\n    align-items: center\n}\n\n.input-group>.custom-file:not(:last-child) .custom-file-label,\n.input-group>.custom-file:not(:last-child) .custom-file-label::after {\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0\n}\n\n.input-group>.custom-file:not(:first-child) .custom-file-label {\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0\n}\n\n.input-group-append,\n.input-group-prepend {\n    display: -ms-flexbox;\n    display: flex\n}\n\n.input-group-append .btn,\n.input-group-prepend .btn {\n    position: relative;\n    z-index: 2\n}\n\n.input-group-append .btn+.btn,\n.input-group-append .btn+.input-group-text,\n.input-group-append .input-group-text+.btn,\n.input-group-append .input-group-text+.input-group-text,\n.input-group-prepend .btn+.btn,\n.input-group-prepend .btn+.input-group-text,\n.input-group-prepend .input-group-text+.btn,\n.input-group-prepend .input-group-text+.input-group-text {\n    margin-left: -1px\n}\n\n.input-group-prepend {\n    margin-right: -1px\n}\n\n.input-group-append {\n    margin-left: -1px\n}\n\n.input-group-text {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-align: center;\n    align-items: center;\n    padding: .375rem .75rem;\n    margin-bottom: 0;\n    font-size: 1rem;\n    font-weight: 400;\n    line-height: 1.5;\n    color: #495057;\n    text-align: center;\n    white-space: nowrap;\n    background-color: #e9ecef;\n    border: 1px solid #ced4da;\n    border-radius: .25rem\n}\n\n.input-group-text input[type=checkbox],\n.input-group-text input[type=radio] {\n    margin-top: 0\n}\n\n.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),\n.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),\n.input-group>.input-group-append:not(:last-child)>.btn,\n.input-group>.input-group-append:not(:last-child)>.input-group-text,\n.input-group>.input-group-prepend>.btn,\n.input-group>.input-group-prepend>.input-group-text {\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0\n}\n\n.input-group>.input-group-append>.btn,\n.input-group>.input-group-append>.input-group-text,\n.input-group>.input-group-prepend:first-child>.btn:not(:first-child),\n.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),\n.input-group>.input-group-prepend:not(:first-child)>.btn,\n.input-group>.input-group-prepend:not(:first-child)>.input-group-text {\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0\n}\n\n.custom-control {\n    position: relative;\n    display: block;\n    min-height: 1.5rem;\n    padding-left: 1.5rem\n}\n\n.custom-control-inline {\n    display: -ms-inline-flexbox;\n    display: inline-flex;\n    margin-right: 1rem\n}\n\n.custom-control-input {\n    position: absolute;\n    z-index: -1;\n    opacity: 0\n}\n\n.custom-control-input:checked~.custom-control-label::before {\n    color: #fff;\n    background-color: #007bff\n}\n\n.custom-control-input:focus~.custom-control-label::before {\n    box-shadow: 0 0 0 1px #fff, 0 0 0 .2rem rgba(0, 123, 255, .25)\n}\n\n.custom-control-input:active~.custom-control-label::before {\n    color: #fff;\n    background-color: #b3d7ff\n}\n\n.custom-control-input:disabled~.custom-control-label {\n    color: #6c757d\n}\n\n.custom-control-input:disabled~.custom-control-label::before {\n    background-color: #e9ecef\n}\n\n.custom-control-label {\n    position: relative;\n    margin-bottom: 0\n}\n\n.custom-control-label::before {\n    position: absolute;\n    top: .25rem;\n    left: -1.5rem;\n    display: block;\n    width: 1rem;\n    height: 1rem;\n    pointer-events: none;\n    content: \"\";\n    -webkit-user-select: none;\n    -moz-user-select: none;\n    -ms-user-select: none;\n    user-select: none;\n    background-color: #dee2e6\n}\n\n.custom-control-label::after {\n    position: absolute;\n    top: .25rem;\n    left: -1.5rem;\n    display: block;\n    width: 1rem;\n    height: 1rem;\n    content: \"\";\n    background-repeat: no-repeat;\n    background-position: center center;\n    background-size: 50% 50%\n}\n\n.custom-checkbox .custom-control-label::before {\n    border-radius: .25rem\n}\n\n.custom-checkbox .custom-control-input:checked~.custom-control-label::before {\n    background-color: #007bff\n}\n\n.custom-checkbox .custom-control-input:checked~.custom-control-label::after {\n    background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\")\n}\n\n.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before {\n    background-color: #007bff\n}\n\n.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after {\n    background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\")\n}\n\n.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before {\n    background-color: rgba(0, 123, 255, .5)\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before {\n    background-color: rgba(0, 123, 255, .5)\n}\n\n.custom-radio .custom-control-label::before {\n    border-radius: 50%\n}\n\n.custom-radio .custom-control-input:checked~.custom-control-label::before {\n    background-color: #007bff\n}\n\n.custom-radio .custom-control-input:checked~.custom-control-label::after {\n    background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\")\n}\n\n.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before {\n    background-color: rgba(0, 123, 255, .5)\n}\n\n.custom-select {\n    display: inline-block;\n    width: 100%;\n    height: calc(2.25rem + 2px);\n    padding: .375rem 1.75rem .375rem .75rem;\n    line-height: 1.5;\n    color: #495057;\n    vertical-align: middle;\n    background: #fff url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center;\n    background-size: 8px 10px;\n    border: 1px solid #ced4da;\n    border-radius: .25rem;\n    -webkit-appearance: none;\n    -moz-appearance: none;\n    appearance: none\n}\n\n.custom-select:focus {\n    border-color: #80bdff;\n    outline: 0;\n    box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075), 0 0 5px rgba(128, 189, 255, .5)\n}\n\n.custom-select:focus::-ms-value {\n    color: #495057;\n    background-color: #fff\n}\n\n.custom-select[multiple],\n.custom-select[size]:not([size=\"1\"]) {\n    height: auto;\n    padding-right: .75rem;\n    background-image: none\n}\n\n.custom-select:disabled {\n    color: #6c757d;\n    background-color: #e9ecef\n}\n\n.custom-select::-ms-expand {\n    opacity: 0\n}\n\n.custom-select-sm {\n    height: calc(1.8125rem + 2px);\n    padding-top: .375rem;\n    padding-bottom: .375rem;\n    font-size: 75%\n}\n\n.custom-select-lg {\n    height: calc(2.875rem + 2px);\n    padding-top: .375rem;\n    padding-bottom: .375rem;\n    font-size: 125%\n}\n\n.custom-file {\n    position: relative;\n    display: inline-block;\n    width: 100%;\n    height: calc(2.25rem + 2px);\n    margin-bottom: 0\n}\n\n.custom-file-input {\n    position: relative;\n    z-index: 2;\n    width: 100%;\n    height: calc(2.25rem + 2px);\n    margin: 0;\n    opacity: 0\n}\n\n.custom-file-input:focus~.custom-file-label {\n    border-color: #80bdff;\n    box-shadow: 0 0 0 .2rem rgba(0, 123, 255, .25)\n}\n\n.custom-file-input:focus~.custom-file-label::after {\n    border-color: #80bdff\n}\n\n.custom-file-input:lang(en)~.custom-file-label::after {\n    content: \"Browse\"\n}\n\n.custom-file-label {\n    position: absolute;\n    top: 0;\n    right: 0;\n    left: 0;\n    z-index: 1;\n    height: calc(2.25rem + 2px);\n    padding: .375rem .75rem;\n    line-height: 1.5;\n    color: #495057;\n    background-color: #fff;\n    border: 1px solid #ced4da;\n    border-radius: .25rem\n}\n\n.custom-file-label::after {\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    z-index: 3;\n    display: block;\n    height: 2.25rem;\n    padding: .375rem .75rem;\n    line-height: 1.5;\n    color: #495057;\n    content: \"Browse\";\n    background-color: #e9ecef;\n    border-left: 1px solid #ced4da;\n    border-radius: 0 .25rem .25rem 0\n}\n\n.custom-range {\n    width: 100%;\n    padding-left: 0;\n    background-color: transparent;\n    -webkit-appearance: none;\n    -moz-appearance: none;\n    appearance: none\n}\n\n.custom-range:focus {\n    outline: 0\n}\n\n.custom-range::-moz-focus-outer {\n    border: 0\n}\n\n.custom-range::-webkit-slider-thumb {\n    width: 1rem;\n    height: 1rem;\n    margin-top: -.25rem;\n    background-color: #007bff;\n    border: 0;\n    border-radius: 1rem;\n    -webkit-appearance: none;\n    appearance: none\n}\n\n.custom-range::-webkit-slider-thumb:focus {\n    outline: 0;\n    box-shadow: 0 0 0 1px #fff, 0 0 0 .2rem rgba(0, 123, 255, .25)\n}\n\n.custom-range::-webkit-slider-thumb:active {\n    background-color: #b3d7ff\n}\n\n.custom-range::-webkit-slider-runnable-track {\n    width: 100%;\n    height: .5rem;\n    color: transparent;\n    cursor: pointer;\n    background-color: #dee2e6;\n    border-color: transparent;\n    border-radius: 1rem\n}\n\n.custom-range::-moz-range-thumb {\n    width: 1rem;\n    height: 1rem;\n    background-color: #007bff;\n    border: 0;\n    border-radius: 1rem;\n    -moz-appearance: none;\n    appearance: none\n}\n\n.custom-range::-moz-range-thumb:focus {\n    outline: 0;\n    box-shadow: 0 0 0 1px #fff, 0 0 0 .2rem rgba(0, 123, 255, .25)\n}\n\n.custom-range::-moz-range-thumb:active {\n    background-color: #b3d7ff\n}\n\n.custom-range::-moz-range-track {\n    width: 100%;\n    height: .5rem;\n    color: transparent;\n    cursor: pointer;\n    background-color: #dee2e6;\n    border-color: transparent;\n    border-radius: 1rem\n}\n\n.custom-range::-ms-thumb {\n    width: 1rem;\n    height: 1rem;\n    background-color: #007bff;\n    border: 0;\n    border-radius: 1rem;\n    appearance: none\n}\n\n.custom-range::-ms-thumb:focus {\n    outline: 0;\n    box-shadow: 0 0 0 1px #fff, 0 0 0 .2rem rgba(0, 123, 255, .25)\n}\n\n.custom-range::-ms-thumb:active {\n    background-color: #b3d7ff\n}\n\n.custom-range::-ms-track {\n    width: 100%;\n    height: .5rem;\n    color: transparent;\n    cursor: pointer;\n    background-color: transparent;\n    border-color: transparent;\n    border-width: .5rem\n}\n\n.custom-range::-ms-fill-lower {\n    background-color: #dee2e6;\n    border-radius: 1rem\n}\n\n.custom-range::-ms-fill-upper {\n    margin-right: 15px;\n    background-color: #dee2e6;\n    border-radius: 1rem\n}\n\n.nav {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-wrap: wrap;\n    flex-wrap: wrap;\n    padding-left: 0;\n    margin-bottom: 0;\n    list-style: none\n}\n\n.nav-link {\n    display: block;\n    padding: .5rem 1rem\n}\n\n.nav-link:focus,\n.nav-link:hover {\n    text-decoration: none\n}\n\n.nav-link.disabled {\n    color: #6c757d\n}\n\n.nav-tabs {\n    border-bottom: 1px solid #dee2e6\n}\n\n.nav-tabs .nav-item {\n    margin-bottom: -1px\n}\n\n.nav-tabs .nav-link {\n    border: 1px solid transparent;\n    border-top-left-radius: .25rem;\n    border-top-right-radius: .25rem\n}\n\n.nav-tabs .nav-link:focus,\n.nav-tabs .nav-link:hover {\n    border-color: #e9ecef #e9ecef #dee2e6\n}\n\n.nav-tabs .nav-link.disabled {\n    color: #6c757d;\n    background-color: transparent;\n    border-color: transparent\n}\n\n.nav-tabs .nav-item.show .nav-link,\n.nav-tabs .nav-link.active {\n    color: #495057;\n    background-color: #fff;\n    border-color: #dee2e6 #dee2e6 #fff\n}\n\n.nav-tabs .dropdown-menu {\n    margin-top: -1px;\n    border-top-left-radius: 0;\n    border-top-right-radius: 0\n}\n\n.nav-pills .nav-link {\n    border-radius: .25rem\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show>.nav-link {\n    color: #fff;\n    background-color: #007bff\n}\n\n.nav-fill .nav-item {\n    -ms-flex: 1 1 auto;\n    flex: 1 1 auto;\n    text-align: center\n}\n\n.nav-justified .nav-item {\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    text-align: center\n}\n\n.tab-content>.tab-pane {\n    display: none\n}\n\n.tab-content>.active {\n    display: block\n}\n\n.navbar {\n    position: relative;\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-wrap: wrap;\n    flex-wrap: wrap;\n    -ms-flex-align: center;\n    align-items: center;\n    -ms-flex-pack: justify;\n    justify-content: space-between;\n    padding: .5rem 1rem\n}\n\n.navbar>.container,\n.navbar>.container-fluid {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-wrap: wrap;\n    flex-wrap: wrap;\n    -ms-flex-align: center;\n    align-items: center;\n    -ms-flex-pack: justify;\n    justify-content: space-between\n}\n\n.navbar-brand {\n    display: inline-block;\n    padding-top: .3125rem;\n    padding-bottom: .3125rem;\n    margin-right: 1rem;\n    font-size: 1.25rem;\n    line-height: inherit;\n    white-space: nowrap\n}\n\n.navbar-brand:focus,\n.navbar-brand:hover {\n    text-decoration: none\n}\n\n.navbar-nav {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-direction: column;\n    flex-direction: column;\n    padding-left: 0;\n    margin-bottom: 0;\n    list-style: none\n}\n\n.navbar-nav .nav-link {\n    padding-right: 0;\n    padding-left: 0\n}\n\n.navbar-nav .dropdown-menu {\n    position: static;\n    float: none\n}\n\n.navbar-text {\n    display: inline-block;\n    padding-top: .5rem;\n    padding-bottom: .5rem\n}\n\n.navbar-collapse {\n    -ms-flex-preferred-size: 100%;\n    flex-basis: 100%;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    -ms-flex-align: center;\n    align-items: center\n}\n\n.navbar-toggler {\n    padding: .25rem .75rem;\n    font-size: 1.25rem;\n    line-height: 1;\n    background-color: transparent;\n    border: 1px solid transparent;\n    border-radius: .25rem\n}\n\n.navbar-toggler:focus,\n.navbar-toggler:hover {\n    text-decoration: none\n}\n\n.navbar-toggler:not(:disabled):not(.disabled) {\n    cursor: pointer\n}\n\n.navbar-toggler-icon {\n    display: inline-block;\n    width: 1.5em;\n    height: 1.5em;\n    vertical-align: middle;\n    content: \"\";\n    background: no-repeat center center;\n    background-size: 100% 100%\n}\n\n@media (max-width:575.98px) {\n\n    .navbar-expand-sm>.container,\n    .navbar-expand-sm>.container-fluid {\n        padding-right: 0;\n        padding-left: 0\n    }\n}\n\n@media (min-width:576px) {\n    .navbar-expand-sm {\n        -ms-flex-flow: row nowrap;\n        flex-flow: row nowrap;\n        -ms-flex-pack: start;\n        justify-content: flex-start\n    }\n\n    .navbar-expand-sm .navbar-nav {\n        -ms-flex-direction: row;\n        flex-direction: row\n    }\n\n    .navbar-expand-sm .navbar-nav .dropdown-menu {\n        position: absolute\n    }\n\n    .navbar-expand-sm .navbar-nav .nav-link {\n        padding-right: .5rem;\n        padding-left: .5rem\n    }\n\n    .navbar-expand-sm>.container,\n    .navbar-expand-sm>.container-fluid {\n        -ms-flex-wrap: nowrap;\n        flex-wrap: nowrap\n    }\n\n    .navbar-expand-sm .navbar-collapse {\n        display: -ms-flexbox !important;\n        display: flex !important;\n        -ms-flex-preferred-size: auto;\n        flex-basis: auto\n    }\n\n    .navbar-expand-sm .navbar-toggler {\n        display: none\n    }\n}\n\n@media (max-width:767.98px) {\n\n    .navbar-expand-md>.container,\n    .navbar-expand-md>.container-fluid {\n        padding-right: 0;\n        padding-left: 0\n    }\n}\n\n@media (min-width:768px) {\n    .navbar-expand-md {\n        -ms-flex-flow: row nowrap;\n        flex-flow: row nowrap;\n        -ms-flex-pack: start;\n        justify-content: flex-start\n    }\n\n    .navbar-expand-md .navbar-nav {\n        -ms-flex-direction: row;\n        flex-direction: row\n    }\n\n    .navbar-expand-md .navbar-nav .dropdown-menu {\n        position: absolute\n    }\n\n    .navbar-expand-md .navbar-nav .nav-link {\n        padding-right: .5rem;\n        padding-left: .5rem\n    }\n\n    .navbar-expand-md>.container,\n    .navbar-expand-md>.container-fluid {\n        -ms-flex-wrap: nowrap;\n        flex-wrap: nowrap\n    }\n\n    .navbar-expand-md .navbar-collapse {\n        display: -ms-flexbox !important;\n        display: flex !important;\n        -ms-flex-preferred-size: auto;\n        flex-basis: auto\n    }\n\n    .navbar-expand-md .navbar-toggler {\n        display: none\n    }\n}\n\n@media (max-width:991.98px) {\n\n    .navbar-expand-lg>.container,\n    .navbar-expand-lg>.container-fluid {\n        padding-right: 0;\n        padding-left: 0\n    }\n}\n\n@media (min-width:992px) {\n    .navbar-expand-lg {\n        -ms-flex-flow: row nowrap;\n        flex-flow: row nowrap;\n        -ms-flex-pack: start;\n        justify-content: flex-start\n    }\n\n    .navbar-expand-lg .navbar-nav {\n        -ms-flex-direction: row;\n        flex-direction: row\n    }\n\n    .navbar-expand-lg .navbar-nav .dropdown-menu {\n        position: absolute\n    }\n\n    .navbar-expand-lg .navbar-nav .nav-link {\n        padding-right: .5rem;\n        padding-left: .5rem\n    }\n\n    .navbar-expand-lg>.container,\n    .navbar-expand-lg>.container-fluid {\n        -ms-flex-wrap: nowrap;\n        flex-wrap: nowrap\n    }\n\n    .navbar-expand-lg .navbar-collapse {\n        display: -ms-flexbox !important;\n        display: flex !important;\n        -ms-flex-preferred-size: auto;\n        flex-basis: auto\n    }\n\n    .navbar-expand-lg .navbar-toggler {\n        display: none\n    }\n}\n\n@media (max-width:1199.98px) {\n\n    .navbar-expand-xl>.container,\n    .navbar-expand-xl>.container-fluid {\n        padding-right: 0;\n        padding-left: 0\n    }\n}\n\n@media (min-width:1200px) {\n    .navbar-expand-xl {\n        -ms-flex-flow: row nowrap;\n        flex-flow: row nowrap;\n        -ms-flex-pack: start;\n        justify-content: flex-start\n    }\n\n    .navbar-expand-xl .navbar-nav {\n        -ms-flex-direction: row;\n        flex-direction: row\n    }\n\n    .navbar-expand-xl .navbar-nav .dropdown-menu {\n        position: absolute\n    }\n\n    .navbar-expand-xl .navbar-nav .nav-link {\n        padding-right: .5rem;\n        padding-left: .5rem\n    }\n\n    .navbar-expand-xl>.container,\n    .navbar-expand-xl>.container-fluid {\n        -ms-flex-wrap: nowrap;\n        flex-wrap: nowrap\n    }\n\n    .navbar-expand-xl .navbar-collapse {\n        display: -ms-flexbox !important;\n        display: flex !important;\n        -ms-flex-preferred-size: auto;\n        flex-basis: auto\n    }\n\n    .navbar-expand-xl .navbar-toggler {\n        display: none\n    }\n}\n\n.navbar-expand {\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -ms-flex-pack: start;\n    justify-content: flex-start\n}\n\n.navbar-expand>.container,\n.navbar-expand>.container-fluid {\n    padding-right: 0;\n    padding-left: 0\n}\n\n.navbar-expand .navbar-nav {\n    -ms-flex-direction: row;\n    flex-direction: row\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n    position: absolute\n}\n\n.navbar-expand .navbar-nav .nav-link {\n    padding-right: .5rem;\n    padding-left: .5rem\n}\n\n.navbar-expand>.container,\n.navbar-expand>.container-fluid {\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap\n}\n\n.navbar-expand .navbar-collapse {\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto\n}\n\n.navbar-expand .navbar-toggler {\n    display: none\n}\n\n.navbar-light .navbar-brand {\n    color: rgba(0, 0, 0, .9)\n}\n\n.navbar-light .navbar-brand:focus,\n.navbar-light .navbar-brand:hover {\n    color: rgba(0, 0, 0, .9)\n}\n\n.navbar-light .navbar-nav .nav-link {\n    color: rgba(0, 0, 0, .5)\n}\n\n.navbar-light .navbar-nav .nav-link:focus,\n.navbar-light .navbar-nav .nav-link:hover {\n    color: rgba(0, 0, 0, .7)\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n    color: rgba(0, 0, 0, .3)\n}\n\n.navbar-light .navbar-nav .active>.nav-link,\n.navbar-light .navbar-nav .nav-link.active,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .show>.nav-link {\n    color: rgba(0, 0, 0, .9)\n}\n\n.navbar-light .navbar-toggler {\n    color: rgba(0, 0, 0, .5);\n    border-color: rgba(0, 0, 0, .1)\n}\n\n.navbar-light .navbar-toggler-icon {\n    background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")\n}\n\n.navbar-light .navbar-text {\n    color: rgba(0, 0, 0, .5)\n}\n\n.navbar-light .navbar-text a {\n    color: rgba(0, 0, 0, .9)\n}\n\n.navbar-light .navbar-text a:focus,\n.navbar-light .navbar-text a:hover {\n    color: rgba(0, 0, 0, .9)\n}\n\n.navbar-dark .navbar-brand {\n    color: #fff\n}\n\n.navbar-dark .navbar-brand:focus,\n.navbar-dark .navbar-brand:hover {\n    color: #fff\n}\n\n.navbar-dark .navbar-nav .nav-link {\n    color: rgba(255, 255, 255, .5)\n}\n\n.navbar-dark .navbar-nav .nav-link:focus,\n.navbar-dark .navbar-nav .nav-link:hover {\n    color: rgba(255, 255, 255, .75)\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n    color: rgba(255, 255, 255, .25)\n}\n\n.navbar-dark .navbar-nav .active>.nav-link,\n.navbar-dark .navbar-nav .nav-link.active,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .show>.nav-link {\n    color: #fff\n}\n\n.navbar-dark .navbar-toggler {\n    color: rgba(255, 255, 255, .5);\n    border-color: rgba(255, 255, 255, .1)\n}\n\n.navbar-dark .navbar-toggler-icon {\n    background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")\n}\n\n.navbar-dark .navbar-text {\n    color: rgba(255, 255, 255, .5)\n}\n\n.navbar-dark .navbar-text a {\n    color: #fff\n}\n\n.navbar-dark .navbar-text a:focus,\n.navbar-dark .navbar-text a:hover {\n    color: #fff\n}\n\n.card {\n    position: relative;\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-direction: column;\n    flex-direction: column;\n    min-width: 0;\n    word-wrap: break-word;\n    background-color: #fff;\n    background-clip: border-box;\n    border: 1px solid rgba(0, 0, 0, .125);\n    border-radius: .25rem\n}\n\n.card>hr {\n    margin-right: 0;\n    margin-left: 0\n}\n\n.card>.list-group:first-child .list-group-item:first-child {\n    border-top-left-radius: .25rem;\n    border-top-right-radius: .25rem\n}\n\n.card>.list-group:last-child .list-group-item:last-child {\n    border-bottom-right-radius: .25rem;\n    border-bottom-left-radius: .25rem\n}\n\n.card-body {\n    -ms-flex: 1 1 auto;\n    flex: 1 1 auto;\n    padding: 1.25rem\n}\n\n.card-title {\n    margin-bottom: .75rem\n}\n\n.card-subtitle {\n    margin-top: -.375rem;\n    margin-bottom: 0\n}\n\n.card-text:last-child {\n    margin-bottom: 0\n}\n\n.card-link:hover {\n    text-decoration: none\n}\n\n.card-link+.card-link {\n    margin-left: 1.25rem\n}\n\n.card-header {\n    padding: .75rem 1.25rem;\n    margin-bottom: 0;\n    background-color: rgba(0, 0, 0, .03);\n    border-bottom: 1px solid rgba(0, 0, 0, .125)\n}\n\n.card-header:first-child {\n    border-radius: calc(.25rem - 1px) calc(.25rem - 1px) 0 0\n}\n\n.card-header+.list-group .list-group-item:first-child {\n    border-top: 0\n}\n\n.card-footer {\n    padding: .75rem 1.25rem;\n    background-color: rgba(0, 0, 0, .03);\n    border-top: 1px solid rgba(0, 0, 0, .125)\n}\n\n.card-footer:last-child {\n    border-radius: 0 0 calc(.25rem - 1px) calc(.25rem - 1px)\n}\n\n.card-header-tabs {\n    margin-right: -.625rem;\n    margin-bottom: -.75rem;\n    margin-left: -.625rem;\n    border-bottom: 0\n}\n\n.card-header-pills {\n    margin-right: -.625rem;\n    margin-left: -.625rem\n}\n\n.card-img-overlay {\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    padding: 1.25rem\n}\n\n.card-img {\n    width: 100%;\n    border-radius: calc(.25rem - 1px)\n}\n\n.card-img-top {\n    width: 100%;\n    border-top-left-radius: calc(.25rem - 1px);\n    border-top-right-radius: calc(.25rem - 1px)\n}\n\n.card-img-bottom {\n    width: 100%;\n    border-bottom-right-radius: calc(.25rem - 1px);\n    border-bottom-left-radius: calc(.25rem - 1px)\n}\n\n.card-deck {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-direction: column;\n    flex-direction: column\n}\n\n.card-deck .card {\n    margin-bottom: 15px\n}\n\n@media (min-width:576px) {\n    .card-deck {\n        -ms-flex-flow: row wrap;\n        flex-flow: row wrap;\n        margin-right: -15px;\n        margin-left: -15px\n    }\n\n    .card-deck .card {\n        display: -ms-flexbox;\n        display: flex;\n        -ms-flex: 1 0 0%;\n        flex: 1 0 0%;\n        -ms-flex-direction: column;\n        flex-direction: column;\n        margin-right: 15px;\n        margin-bottom: 0;\n        margin-left: 15px\n    }\n}\n\n.card-group {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-direction: column;\n    flex-direction: column\n}\n\n.card-group>.card {\n    margin-bottom: 15px\n}\n\n@media (min-width:576px) {\n    .card-group {\n        -ms-flex-flow: row wrap;\n        flex-flow: row wrap\n    }\n\n    .card-group>.card {\n        -ms-flex: 1 0 0%;\n        flex: 1 0 0%;\n        margin-bottom: 0\n    }\n\n    .card-group>.card+.card {\n        margin-left: 0;\n        border-left: 0\n    }\n\n    .card-group>.card:first-child {\n        border-top-right-radius: 0;\n        border-bottom-right-radius: 0\n    }\n\n    .card-group>.card:first-child .card-header,\n    .card-group>.card:first-child .card-img-top {\n        border-top-right-radius: 0\n    }\n\n    .card-group>.card:first-child .card-footer,\n    .card-group>.card:first-child .card-img-bottom {\n        border-bottom-right-radius: 0\n    }\n\n    .card-group>.card:last-child {\n        border-top-left-radius: 0;\n        border-bottom-left-radius: 0\n    }\n\n    .card-group>.card:last-child .card-header,\n    .card-group>.card:last-child .card-img-top {\n        border-top-left-radius: 0\n    }\n\n    .card-group>.card:last-child .card-footer,\n    .card-group>.card:last-child .card-img-bottom {\n        border-bottom-left-radius: 0\n    }\n\n    .card-group>.card:only-child {\n        border-radius: .25rem\n    }\n\n    .card-group>.card:only-child .card-header,\n    .card-group>.card:only-child .card-img-top {\n        border-top-left-radius: .25rem;\n        border-top-right-radius: .25rem\n    }\n\n    .card-group>.card:only-child .card-footer,\n    .card-group>.card:only-child .card-img-bottom {\n        border-bottom-right-radius: .25rem;\n        border-bottom-left-radius: .25rem\n    }\n\n    .card-group>.card:not(:first-child):not(:last-child):not(:only-child) {\n        border-radius: 0\n    }\n\n    .card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,\n    .card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,\n    .card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,\n    .card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top {\n        border-radius: 0\n    }\n}\n\n.card-columns .card {\n    margin-bottom: .75rem\n}\n\n@media (min-width:576px) {\n    .card-columns {\n        -webkit-column-count: 3;\n        -moz-column-count: 3;\n        column-count: 3;\n        -webkit-column-gap: 1.25rem;\n        -moz-column-gap: 1.25rem;\n        column-gap: 1.25rem;\n        orphans: 1;\n        widows: 1\n    }\n\n    .card-columns .card {\n        display: inline-block;\n        width: 100%\n    }\n}\n\n.accordion .card:not(:first-of-type):not(:last-of-type) {\n    border-bottom: 0;\n    border-radius: 0\n}\n\n.accordion .card:not(:first-of-type) .card-header:first-child {\n    border-radius: 0\n}\n\n.accordion .card:first-of-type {\n    border-bottom: 0;\n    border-bottom-right-radius: 0;\n    border-bottom-left-radius: 0\n}\n\n.accordion .card:last-of-type {\n    border-top-left-radius: 0;\n    border-top-right-radius: 0\n}\n\n.breadcrumb {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-wrap: wrap;\n    flex-wrap: wrap;\n    padding: .75rem 1rem;\n    margin-bottom: 1rem;\n    list-style: none;\n    background-color: #e9ecef;\n    border-radius: .25rem\n}\n\n.breadcrumb-item+.breadcrumb-item {\n    padding-left: .5rem\n}\n\n.breadcrumb-item+.breadcrumb-item::before {\n    display: inline-block;\n    padding-right: .5rem;\n    color: #6c757d;\n    content: \"/\"\n}\n\n.breadcrumb-item+.breadcrumb-item:hover::before {\n    text-decoration: underline\n}\n\n.breadcrumb-item+.breadcrumb-item:hover::before {\n    text-decoration: none\n}\n\n.breadcrumb-item.active {\n    color: #6c757d\n}\n\n.pagination {\n    display: -ms-flexbox;\n    display: flex;\n    padding-left: 0;\n    list-style: none;\n    border-radius: .25rem\n}\n\n.page-link {\n    position: relative;\n    display: block;\n    padding: .5rem .75rem;\n    margin-left: -1px;\n    line-height: 1.25;\n    color: #007bff;\n    background-color: #fff;\n    border: 1px solid #dee2e6\n}\n\n.page-link:hover {\n    z-index: 2;\n    color: #0056b3;\n    text-decoration: none;\n    background-color: #e9ecef;\n    border-color: #dee2e6\n}\n\n.page-link:focus {\n    z-index: 2;\n    outline: 0;\n    box-shadow: 0 0 0 .2rem rgba(0, 123, 255, .25)\n}\n\n.page-link:not(:disabled):not(.disabled) {\n    cursor: pointer\n}\n\n.page-item:first-child .page-link {\n    margin-left: 0;\n    border-top-left-radius: .25rem;\n    border-bottom-left-radius: .25rem\n}\n\n.page-item:last-child .page-link {\n    border-top-right-radius: .25rem;\n    border-bottom-right-radius: .25rem\n}\n\n.page-item.active .page-link {\n    z-index: 1;\n    color: #fff;\n    background-color: #007bff;\n    border-color: #007bff\n}\n\n.page-item.disabled .page-link {\n    color: #6c757d;\n    pointer-events: none;\n    cursor: auto;\n    background-color: #fff;\n    border-color: #dee2e6\n}\n\n.pagination-lg .page-link {\n    padding: .75rem 1.5rem;\n    font-size: 1.25rem;\n    line-height: 1.5\n}\n\n.pagination-lg .page-item:first-child .page-link {\n    border-top-left-radius: .3rem;\n    border-bottom-left-radius: .3rem\n}\n\n.pagination-lg .page-item:last-child .page-link {\n    border-top-right-radius: .3rem;\n    border-bottom-right-radius: .3rem\n}\n\n.pagination-sm .page-link {\n    padding: .25rem .5rem;\n    font-size: .875rem;\n    line-height: 1.5\n}\n\n.pagination-sm .page-item:first-child .page-link {\n    border-top-left-radius: .2rem;\n    border-bottom-left-radius: .2rem\n}\n\n.pagination-sm .page-item:last-child .page-link {\n    border-top-right-radius: .2rem;\n    border-bottom-right-radius: .2rem\n}\n\n.badge {\n    display: inline-block;\n    padding: .25em .4em;\n    font-size: 75%;\n    font-weight: 700;\n    line-height: 1;\n    text-align: center;\n    white-space: nowrap;\n    vertical-align: baseline;\n    border-radius: .25rem\n}\n\n.badge:empty {\n    display: none\n}\n\n.btn .badge {\n    position: relative;\n    top: -1px\n}\n\n.badge-pill {\n    padding-right: .6em;\n    padding-left: .6em;\n    border-radius: 10rem\n}\n\n.badge-primary {\n    color: #fff;\n    background-color: #007bff\n}\n\n.badge-primary[href]:focus,\n.badge-primary[href]:hover {\n    color: #fff;\n    text-decoration: none;\n    background-color: #0062cc\n}\n\n.badge-secondary {\n    color: #fff;\n    background-color: #6c757d\n}\n\n.badge-secondary[href]:focus,\n.badge-secondary[href]:hover {\n    color: #fff;\n    text-decoration: none;\n    background-color: #545b62\n}\n\n.badge-success {\n    color: #fff;\n    background-color: #28a745\n}\n\n.badge-success[href]:focus,\n.badge-success[href]:hover {\n    color: #fff;\n    text-decoration: none;\n    background-color: #1e7e34\n}\n\n.badge-info {\n    color: #fff;\n    background-color: #17a2b8\n}\n\n.badge-info[href]:focus,\n.badge-info[href]:hover {\n    color: #fff;\n    text-decoration: none;\n    background-color: #117a8b\n}\n\n.badge-warning {\n    color: #212529;\n    background-color: #ffc107\n}\n\n.badge-warning[href]:focus,\n.badge-warning[href]:hover {\n    color: #212529;\n    text-decoration: none;\n    background-color: #d39e00\n}\n\n.badge-danger {\n    color: #fff;\n    background-color: #dc3545\n}\n\n.badge-danger[href]:focus,\n.badge-danger[href]:hover {\n    color: #fff;\n    text-decoration: none;\n    background-color: #bd2130\n}\n\n.badge-light {\n    color: #212529;\n    background-color: #f8f9fa\n}\n\n.badge-light[href]:focus,\n.badge-light[href]:hover {\n    color: #212529;\n    text-decoration: none;\n    background-color: #dae0e5\n}\n\n.badge-dark {\n    color: #fff;\n    background-color: #343a40\n}\n\n.badge-dark[href]:focus,\n.badge-dark[href]:hover {\n    color: #fff;\n    text-decoration: none;\n    background-color: #1d2124\n}\n\n.jumbotron {\n    padding: 2rem 1rem;\n    margin-bottom: 2rem;\n    background-color: #e9ecef;\n    border-radius: .3rem\n}\n\n@media (min-width:576px) {\n    .jumbotron {\n        padding: 4rem 2rem\n    }\n}\n\n.jumbotron-fluid {\n    padding-right: 0;\n    padding-left: 0;\n    border-radius: 0\n}\n\n.alert {\n    position: relative;\n    padding: .75rem 1.25rem;\n    margin-bottom: 1rem;\n    border: 1px solid transparent;\n    border-radius: .25rem\n}\n\n.alert-heading {\n    color: inherit\n}\n\n.alert-link {\n    font-weight: 700\n}\n\n.alert-dismissible {\n    padding-right: 4rem\n}\n\n.alert-dismissible .close {\n    position: absolute;\n    top: 0;\n    right: 0;\n    padding: .75rem 1.25rem;\n    color: inherit\n}\n\n.alert-primary {\n    color: #004085;\n    background-color: #cce5ff;\n    border-color: #b8daff\n}\n\n.alert-primary hr {\n    border-top-color: #9fcdff\n}\n\n.alert-primary .alert-link {\n    color: #002752\n}\n\n.alert-secondary {\n    color: #383d41;\n    background-color: #e2e3e5;\n    border-color: #d6d8db\n}\n\n.alert-secondary hr {\n    border-top-color: #c8cbcf\n}\n\n.alert-secondary .alert-link {\n    color: #202326\n}\n\n.alert-success {\n    color: #155724;\n    background-color: #d4edda;\n    border-color: #c3e6cb\n}\n\n.alert-success hr {\n    border-top-color: #b1dfbb\n}\n\n.alert-success .alert-link {\n    color: #0b2e13\n}\n\n.alert-info {\n    color: #0c5460;\n    background-color: #d1ecf1;\n    border-color: #bee5eb\n}\n\n.alert-info hr {\n    border-top-color: #abdde5\n}\n\n.alert-info .alert-link {\n    color: #062c33\n}\n\n.alert-warning {\n    color: #856404;\n    background-color: #fff3cd;\n    border-color: #ffeeba\n}\n\n.alert-warning hr {\n    border-top-color: #ffe8a1\n}\n\n.alert-warning .alert-link {\n    color: #533f03\n}\n\n.alert-danger {\n    color: #721c24;\n    background-color: #f8d7da;\n    border-color: #f5c6cb\n}\n\n.alert-danger hr {\n    border-top-color: #f1b0b7\n}\n\n.alert-danger .alert-link {\n    color: #491217\n}\n\n.alert-light {\n    color: #818182;\n    background-color: #fefefe;\n    border-color: #fdfdfe\n}\n\n.alert-light hr {\n    border-top-color: #ececf6\n}\n\n.alert-light .alert-link {\n    color: #686868\n}\n\n.alert-dark {\n    color: #1b1e21;\n    background-color: #d6d8d9;\n    border-color: #c6c8ca\n}\n\n.alert-dark hr {\n    border-top-color: #b9bbbe\n}\n\n.alert-dark .alert-link {\n    color: #040505\n}\n\n@-webkit-keyframes progress-bar-stripes {\n    from {\n        background-position: 1rem 0\n    }\n\n    to {\n        background-position: 0 0\n    }\n}\n\n@keyframes progress-bar-stripes {\n    from {\n        background-position: 1rem 0\n    }\n\n    to {\n        background-position: 0 0\n    }\n}\n\n.progress {\n    display: -ms-flexbox;\n    display: flex;\n    height: 1rem;\n    overflow: hidden;\n    font-size: .75rem;\n    background-color: #e9ecef;\n    border-radius: .25rem\n}\n\n.progress-bar {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-direction: column;\n    flex-direction: column;\n    -ms-flex-pack: center;\n    justify-content: center;\n    color: #fff;\n    text-align: center;\n    white-space: nowrap;\n    background-color: #007bff;\n    transition: width .6s ease\n}\n\n@media screen and (prefers-reduced-motion:reduce) {\n    .progress-bar {\n        transition: none\n    }\n}\n\n.progress-bar-striped {\n    background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n    background-size: 1rem 1rem\n}\n\n.progress-bar-animated {\n    -webkit-animation: progress-bar-stripes 1s linear infinite;\n    animation: progress-bar-stripes 1s linear infinite\n}\n\n.media {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-align: start;\n    align-items: flex-start\n}\n\n.media-body {\n    -ms-flex: 1;\n    flex: 1\n}\n\n.list-group {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-direction: column;\n    flex-direction: column;\n    padding-left: 0;\n    margin-bottom: 0\n}\n\n.list-group-item-action {\n    width: 100%;\n    color: #495057;\n    text-align: inherit\n}\n\n.list-group-item-action:focus,\n.list-group-item-action:hover {\n    color: #495057;\n    text-decoration: none;\n    background-color: #f8f9fa\n}\n\n.list-group-item-action:active {\n    color: #212529;\n    background-color: #e9ecef\n}\n\n.list-group-item {\n    position: relative;\n    display: block;\n    padding: .75rem 1.25rem;\n    margin-bottom: -1px;\n    background-color: #fff;\n    border: 1px solid rgba(0, 0, 0, .125)\n}\n\n.list-group-item:first-child {\n    border-top-left-radius: .25rem;\n    border-top-right-radius: .25rem\n}\n\n.list-group-item:last-child {\n    margin-bottom: 0;\n    border-bottom-right-radius: .25rem;\n    border-bottom-left-radius: .25rem\n}\n\n.list-group-item:focus,\n.list-group-item:hover {\n    z-index: 1;\n    text-decoration: none\n}\n\n.list-group-item.disabled,\n.list-group-item:disabled {\n    color: #6c757d;\n    background-color: #fff\n}\n\n.list-group-item.active {\n    z-index: 2;\n    color: #fff;\n    background-color: #007bff;\n    border-color: #007bff\n}\n\n.list-group-flush .list-group-item {\n    border-right: 0;\n    border-left: 0;\n    border-radius: 0\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n    border-top: 0\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n    border-bottom: 0\n}\n\n.list-group-item-primary {\n    color: #004085;\n    background-color: #b8daff\n}\n\n.list-group-item-primary.list-group-item-action:focus,\n.list-group-item-primary.list-group-item-action:hover {\n    color: #004085;\n    background-color: #9fcdff\n}\n\n.list-group-item-primary.list-group-item-action.active {\n    color: #fff;\n    background-color: #004085;\n    border-color: #004085\n}\n\n.list-group-item-secondary {\n    color: #383d41;\n    background-color: #d6d8db\n}\n\n.list-group-item-secondary.list-group-item-action:focus,\n.list-group-item-secondary.list-group-item-action:hover {\n    color: #383d41;\n    background-color: #c8cbcf\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n    color: #fff;\n    background-color: #383d41;\n    border-color: #383d41\n}\n\n.list-group-item-success {\n    color: #155724;\n    background-color: #c3e6cb\n}\n\n.list-group-item-success.list-group-item-action:focus,\n.list-group-item-success.list-group-item-action:hover {\n    color: #155724;\n    background-color: #b1dfbb\n}\n\n.list-group-item-success.list-group-item-action.active {\n    color: #fff;\n    background-color: #155724;\n    border-color: #155724\n}\n\n.list-group-item-info {\n    color: #0c5460;\n    background-color: #bee5eb\n}\n\n.list-group-item-info.list-group-item-action:focus,\n.list-group-item-info.list-group-item-action:hover {\n    color: #0c5460;\n    background-color: #abdde5\n}\n\n.list-group-item-info.list-group-item-action.active {\n    color: #fff;\n    background-color: #0c5460;\n    border-color: #0c5460\n}\n\n.list-group-item-warning {\n    color: #856404;\n    background-color: #ffeeba\n}\n\n.list-group-item-warning.list-group-item-action:focus,\n.list-group-item-warning.list-group-item-action:hover {\n    color: #856404;\n    background-color: #ffe8a1\n}\n\n.list-group-item-warning.list-group-item-action.active {\n    color: #fff;\n    background-color: #856404;\n    border-color: #856404\n}\n\n.list-group-item-danger {\n    color: #721c24;\n    background-color: #f5c6cb\n}\n\n.list-group-item-danger.list-group-item-action:focus,\n.list-group-item-danger.list-group-item-action:hover {\n    color: #721c24;\n    background-color: #f1b0b7\n}\n\n.list-group-item-danger.list-group-item-action.active {\n    color: #fff;\n    background-color: #721c24;\n    border-color: #721c24\n}\n\n.list-group-item-light {\n    color: #818182;\n    background-color: #fdfdfe\n}\n\n.list-group-item-light.list-group-item-action:focus,\n.list-group-item-light.list-group-item-action:hover {\n    color: #818182;\n    background-color: #ececf6\n}\n\n.list-group-item-light.list-group-item-action.active {\n    color: #fff;\n    background-color: #818182;\n    border-color: #818182\n}\n\n.list-group-item-dark {\n    color: #1b1e21;\n    background-color: #c6c8ca\n}\n\n.list-group-item-dark.list-group-item-action:focus,\n.list-group-item-dark.list-group-item-action:hover {\n    color: #1b1e21;\n    background-color: #b9bbbe\n}\n\n.list-group-item-dark.list-group-item-action.active {\n    color: #fff;\n    background-color: #1b1e21;\n    border-color: #1b1e21\n}\n\n.close {\n    float: right;\n    font-size: 1.5rem;\n    font-weight: 700;\n    line-height: 1;\n    color: #000;\n    text-shadow: 0 1px 0 #fff;\n    opacity: .5\n}\n\n.close:focus,\n.close:hover {\n    color: #000;\n    text-decoration: none;\n    opacity: .75\n}\n\n.close:not(:disabled):not(.disabled) {\n    cursor: pointer\n}\n\nbutton.close {\n    padding: 0;\n    background-color: transparent;\n    border: 0;\n    -webkit-appearance: none\n}\n\n.modal-open {\n    overflow: hidden\n}\n\n.modal {\n    position: fixed;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    z-index: 1050;\n    display: none;\n    overflow: hidden;\n    outline: 0\n}\n\n.modal-open .modal {\n    overflow-x: hidden;\n    overflow-y: auto\n}\n\n.modal-dialog {\n    position: relative;\n    width: auto;\n    margin: .5rem;\n    pointer-events: none\n}\n\n.modal.fade .modal-dialog {\n    transition: -webkit-transform .3s ease-out;\n    transition: transform .3s ease-out;\n    transition: transform .3s ease-out, -webkit-transform .3s ease-out;\n    -webkit-transform: translate(0, -25%);\n    transform: translate(0, -25%)\n}\n\n@media screen and (prefers-reduced-motion:reduce) {\n    .modal.fade .modal-dialog {\n        transition: none\n    }\n}\n\n.modal.show .modal-dialog {\n    -webkit-transform: translate(0, 0);\n    transform: translate(0, 0)\n}\n\n.modal-dialog-centered {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-align: center;\n    align-items: center;\n    min-height: calc(100% - (.5rem * 2))\n}\n\n.modal-content {\n    position: relative;\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-direction: column;\n    flex-direction: column;\n    width: 100%;\n    pointer-events: auto;\n    background-color: #fff;\n    background-clip: padding-box;\n    border: 1px solid rgba(0, 0, 0, .2);\n    border-radius: .3rem;\n    outline: 0\n}\n\n.modal-backdrop {\n    position: fixed;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    z-index: 1040;\n    background-color: #000\n}\n\n.modal-backdrop.fade {\n    opacity: 0\n}\n\n.modal-backdrop.show {\n    opacity: .5\n}\n\n.modal-header {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-align: start;\n    align-items: flex-start;\n    -ms-flex-pack: justify;\n    justify-content: space-between;\n    padding: 1rem;\n    border-bottom: 1px solid #e9ecef;\n    border-top-left-radius: .3rem;\n    border-top-right-radius: .3rem\n}\n\n.modal-header .close {\n    padding: 1rem;\n    margin: -1rem -1rem -1rem auto\n}\n\n.modal-title {\n    margin-bottom: 0;\n    line-height: 1.5\n}\n\n.modal-body {\n    position: relative;\n    -ms-flex: 1 1 auto;\n    flex: 1 1 auto;\n    padding: 1rem\n}\n\n.modal-footer {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-align: center;\n    align-items: center;\n    -ms-flex-pack: end;\n    justify-content: flex-end;\n    padding: 1rem;\n    border-top: 1px solid #e9ecef\n}\n\n.modal-footer>:not(:first-child) {\n    margin-left: .25rem\n}\n\n.modal-footer>:not(:last-child) {\n    margin-right: .25rem\n}\n\n.modal-scrollbar-measure {\n    position: absolute;\n    top: -9999px;\n    width: 50px;\n    height: 50px;\n    overflow: scroll\n}\n\n@media (min-width:576px) {\n    .modal-dialog {\n        max-width: 500px;\n        margin: 1.75rem auto\n    }\n\n    .modal-dialog-centered {\n        min-height: calc(100% - (1.75rem * 2))\n    }\n\n    .modal-sm {\n        max-width: 300px\n    }\n}\n\n@media (min-width:992px) {\n    .modal-lg {\n        max-width: 800px\n    }\n}\n\n.tooltip {\n    position: absolute;\n    z-index: 1070;\n    display: block;\n    margin: 0;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-style: normal;\n    font-weight: 400;\n    line-height: 1.5;\n    text-align: left;\n    text-align: start;\n    text-decoration: none;\n    text-shadow: none;\n    text-transform: none;\n    letter-spacing: normal;\n    word-break: normal;\n    word-spacing: normal;\n    white-space: normal;\n    line-break: auto;\n    font-size: .875rem;\n    word-wrap: break-word;\n    opacity: 0\n}\n\n.tooltip.show {\n    opacity: .9\n}\n\n.tooltip .arrow {\n    position: absolute;\n    display: block;\n    width: .8rem;\n    height: .4rem\n}\n\n.tooltip .arrow::before {\n    position: absolute;\n    content: \"\";\n    border-color: transparent;\n    border-style: solid\n}\n\n.bs-tooltip-auto[x-placement^=top],\n.bs-tooltip-top {\n    padding: .4rem 0\n}\n\n.bs-tooltip-auto[x-placement^=top] .arrow,\n.bs-tooltip-top .arrow {\n    bottom: 0\n}\n\n.bs-tooltip-auto[x-placement^=top] .arrow::before,\n.bs-tooltip-top .arrow::before {\n    top: 0;\n    border-width: .4rem .4rem 0;\n    border-top-color: #000\n}\n\n.bs-tooltip-auto[x-placement^=right],\n.bs-tooltip-right {\n    padding: 0 .4rem\n}\n\n.bs-tooltip-auto[x-placement^=right] .arrow,\n.bs-tooltip-right .arrow {\n    left: 0;\n    width: .4rem;\n    height: .8rem\n}\n\n.bs-tooltip-auto[x-placement^=right] .arrow::before,\n.bs-tooltip-right .arrow::before {\n    right: 0;\n    border-width: .4rem .4rem .4rem 0;\n    border-right-color: #000\n}\n\n.bs-tooltip-auto[x-placement^=bottom],\n.bs-tooltip-bottom {\n    padding: .4rem 0\n}\n\n.bs-tooltip-auto[x-placement^=bottom] .arrow,\n.bs-tooltip-bottom .arrow {\n    top: 0\n}\n\n.bs-tooltip-auto[x-placement^=bottom] .arrow::before,\n.bs-tooltip-bottom .arrow::before {\n    bottom: 0;\n    border-width: 0 .4rem .4rem;\n    border-bottom-color: #000\n}\n\n.bs-tooltip-auto[x-placement^=left],\n.bs-tooltip-left {\n    padding: 0 .4rem\n}\n\n.bs-tooltip-auto[x-placement^=left] .arrow,\n.bs-tooltip-left .arrow {\n    right: 0;\n    width: .4rem;\n    height: .8rem\n}\n\n.bs-tooltip-auto[x-placement^=left] .arrow::before,\n.bs-tooltip-left .arrow::before {\n    left: 0;\n    border-width: .4rem 0 .4rem .4rem;\n    border-left-color: #000\n}\n\n.tooltip-inner {\n    max-width: 200px;\n    padding: .25rem .5rem;\n    color: #fff;\n    text-align: center;\n    background-color: #000;\n    border-radius: .25rem\n}\n\n.popover {\n    position: absolute;\n    top: 0;\n    left: 0;\n    z-index: 1060;\n    display: block;\n    max-width: 276px;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n    font-style: normal;\n    font-weight: 400;\n    line-height: 1.5;\n    text-align: left;\n    text-align: start;\n    text-decoration: none;\n    text-shadow: none;\n    text-transform: none;\n    letter-spacing: normal;\n    word-break: normal;\n    word-spacing: normal;\n    white-space: normal;\n    line-break: auto;\n    font-size: .875rem;\n    word-wrap: break-word;\n    background-color: #fff;\n    background-clip: padding-box;\n    border: 1px solid rgba(0, 0, 0, .2);\n    border-radius: .3rem\n}\n\n.popover .arrow {\n    position: absolute;\n    display: block;\n    width: 1rem;\n    height: .5rem;\n    margin: 0 .3rem\n}\n\n.popover .arrow::after,\n.popover .arrow::before {\n    position: absolute;\n    display: block;\n    content: \"\";\n    border-color: transparent;\n    border-style: solid\n}\n\n.bs-popover-auto[x-placement^=top],\n.bs-popover-top {\n    margin-bottom: .5rem\n}\n\n.bs-popover-auto[x-placement^=top] .arrow,\n.bs-popover-top .arrow {\n    bottom: calc((.5rem + 1px) * -1)\n}\n\n.bs-popover-auto[x-placement^=top] .arrow::after,\n.bs-popover-auto[x-placement^=top] .arrow::before,\n.bs-popover-top .arrow::after,\n.bs-popover-top .arrow::before {\n    border-width: .5rem .5rem 0\n}\n\n.bs-popover-auto[x-placement^=top] .arrow::before,\n.bs-popover-top .arrow::before {\n    bottom: 0;\n    border-top-color: rgba(0, 0, 0, .25)\n}\n\n.bs-popover-auto[x-placement^=top] .arrow::after,\n.bs-popover-top .arrow::after {\n    bottom: 1px;\n    border-top-color: #fff\n}\n\n.bs-popover-auto[x-placement^=right],\n.bs-popover-right {\n    margin-left: .5rem\n}\n\n.bs-popover-auto[x-placement^=right] .arrow,\n.bs-popover-right .arrow {\n    left: calc((.5rem + 1px) * -1);\n    width: .5rem;\n    height: 1rem;\n    margin: .3rem 0\n}\n\n.bs-popover-auto[x-placement^=right] .arrow::after,\n.bs-popover-auto[x-placement^=right] .arrow::before,\n.bs-popover-right .arrow::after,\n.bs-popover-right .arrow::before {\n    border-width: .5rem .5rem .5rem 0\n}\n\n.bs-popover-auto[x-placement^=right] .arrow::before,\n.bs-popover-right .arrow::before {\n    left: 0;\n    border-right-color: rgba(0, 0, 0, .25)\n}\n\n.bs-popover-auto[x-placement^=right] .arrow::after,\n.bs-popover-right .arrow::after {\n    left: 1px;\n    border-right-color: #fff\n}\n\n.bs-popover-auto[x-placement^=bottom],\n.bs-popover-bottom {\n    margin-top: .5rem\n}\n\n.bs-popover-auto[x-placement^=bottom] .arrow,\n.bs-popover-bottom .arrow {\n    top: calc((.5rem + 1px) * -1)\n}\n\n.bs-popover-auto[x-placement^=bottom] .arrow::after,\n.bs-popover-auto[x-placement^=bottom] .arrow::before,\n.bs-popover-bottom .arrow::after,\n.bs-popover-bottom .arrow::before {\n    border-width: 0 .5rem .5rem .5rem\n}\n\n.bs-popover-auto[x-placement^=bottom] .arrow::before,\n.bs-popover-bottom .arrow::before {\n    top: 0;\n    border-bottom-color: rgba(0, 0, 0, .25)\n}\n\n.bs-popover-auto[x-placement^=bottom] .arrow::after,\n.bs-popover-bottom .arrow::after {\n    top: 1px;\n    border-bottom-color: #fff\n}\n\n.bs-popover-auto[x-placement^=bottom] .popover-header::before,\n.bs-popover-bottom .popover-header::before {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    display: block;\n    width: 1rem;\n    margin-left: -.5rem;\n    content: \"\";\n    border-bottom: 1px solid #f7f7f7\n}\n\n.bs-popover-auto[x-placement^=left],\n.bs-popover-left {\n    margin-right: .5rem\n}\n\n.bs-popover-auto[x-placement^=left] .arrow,\n.bs-popover-left .arrow {\n    right: calc((.5rem + 1px) * -1);\n    width: .5rem;\n    height: 1rem;\n    margin: .3rem 0\n}\n\n.bs-popover-auto[x-placement^=left] .arrow::after,\n.bs-popover-auto[x-placement^=left] .arrow::before,\n.bs-popover-left .arrow::after,\n.bs-popover-left .arrow::before {\n    border-width: .5rem 0 .5rem .5rem\n}\n\n.bs-popover-auto[x-placement^=left] .arrow::before,\n.bs-popover-left .arrow::before {\n    right: 0;\n    border-left-color: rgba(0, 0, 0, .25)\n}\n\n.bs-popover-auto[x-placement^=left] .arrow::after,\n.bs-popover-left .arrow::after {\n    right: 1px;\n    border-left-color: #fff\n}\n\n.popover-header {\n    padding: .5rem .75rem;\n    margin-bottom: 0;\n    font-size: 1rem;\n    color: inherit;\n    background-color: #f7f7f7;\n    border-bottom: 1px solid #ebebeb;\n    border-top-left-radius: calc(.3rem - 1px);\n    border-top-right-radius: calc(.3rem - 1px)\n}\n\n.popover-header:empty {\n    display: none\n}\n\n.popover-body {\n    padding: .5rem .75rem;\n    color: #212529\n}\n\n.carousel {\n    position: relative\n}\n\n.carousel-inner {\n    position: relative;\n    width: 100%;\n    overflow: hidden\n}\n\n.carousel-item {\n    position: relative;\n    display: none;\n    -ms-flex-align: center;\n    align-items: center;\n    width: 100%;\n    transition: -webkit-transform .6s ease;\n    transition: transform .6s ease;\n    transition: transform .6s ease, -webkit-transform .6s ease;\n    -webkit-backface-visibility: hidden;\n    backface-visibility: hidden;\n    -webkit-perspective: 1000px;\n    perspective: 1000px\n}\n\n@media screen and (prefers-reduced-motion:reduce) {\n    .carousel-item {\n        transition: none\n    }\n}\n\n.carousel-item-next,\n.carousel-item-prev,\n.carousel-item.active {\n    display: block\n}\n\n.carousel-item-next,\n.carousel-item-prev {\n    position: absolute;\n    top: 0\n}\n\n.carousel-item-next.carousel-item-left,\n.carousel-item-prev.carousel-item-right {\n    -webkit-transform: translateX(0);\n    transform: translateX(0)\n}\n\n@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)) {\n\n    .carousel-item-next.carousel-item-left,\n    .carousel-item-prev.carousel-item-right {\n        -webkit-transform: translate3d(0, 0, 0);\n        transform: translate3d(0, 0, 0)\n    }\n}\n\n.active.carousel-item-right,\n.carousel-item-next {\n    -webkit-transform: translateX(100%);\n    transform: translateX(100%)\n}\n\n@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)) {\n\n    .active.carousel-item-right,\n    .carousel-item-next {\n        -webkit-transform: translate3d(100%, 0, 0);\n        transform: translate3d(100%, 0, 0)\n    }\n}\n\n.active.carousel-item-left,\n.carousel-item-prev {\n    -webkit-transform: translateX(-100%);\n    transform: translateX(-100%)\n}\n\n@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)) {\n\n    .active.carousel-item-left,\n    .carousel-item-prev {\n        -webkit-transform: translate3d(-100%, 0, 0);\n        transform: translate3d(-100%, 0, 0)\n    }\n}\n\n.carousel-fade .carousel-item {\n    opacity: 0;\n    transition-duration: .6s;\n    transition-property: opacity\n}\n\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right,\n.carousel-fade .carousel-item.active {\n    opacity: 1\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n    opacity: 0\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-prev,\n.carousel-fade .carousel-item-next,\n.carousel-fade .carousel-item-prev,\n.carousel-fade .carousel-item.active {\n    -webkit-transform: translateX(0);\n    transform: translateX(0)\n}\n\n@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)) {\n\n    .carousel-fade .active.carousel-item-left,\n    .carousel-fade .active.carousel-item-prev,\n    .carousel-fade .carousel-item-next,\n    .carousel-fade .carousel-item-prev,\n    .carousel-fade .carousel-item.active {\n        -webkit-transform: translate3d(0, 0, 0);\n        transform: translate3d(0, 0, 0)\n    }\n}\n\n.carousel-control-next,\n.carousel-control-prev {\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-align: center;\n    align-items: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n    width: 15%;\n    color: #fff;\n    text-align: center;\n    opacity: .5\n}\n\n.carousel-control-next:focus,\n.carousel-control-next:hover,\n.carousel-control-prev:focus,\n.carousel-control-prev:hover {\n    color: #fff;\n    text-decoration: none;\n    outline: 0;\n    opacity: .9\n}\n\n.carousel-control-prev {\n    left: 0\n}\n\n.carousel-control-next {\n    right: 0\n}\n\n.carousel-control-next-icon,\n.carousel-control-prev-icon {\n    display: inline-block;\n    width: 20px;\n    height: 20px;\n    background: transparent no-repeat center center;\n    background-size: 100% 100%\n}\n\n.carousel-control-prev-icon {\n    background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\")\n}\n\n.carousel-control-next-icon {\n    background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\")\n}\n\n.carousel-indicators {\n    position: absolute;\n    right: 0;\n    bottom: 10px;\n    left: 0;\n    z-index: 15;\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-pack: center;\n    justify-content: center;\n    padding-left: 0;\n    margin-right: 15%;\n    margin-left: 15%;\n    list-style: none\n}\n\n.carousel-indicators li {\n    position: relative;\n    -ms-flex: 0 1 auto;\n    flex: 0 1 auto;\n    width: 30px;\n    height: 3px;\n    margin-right: 3px;\n    margin-left: 3px;\n    text-indent: -999px;\n    cursor: pointer;\n    background-color: rgba(255, 255, 255, .5)\n}\n\n.carousel-indicators li::before {\n    position: absolute;\n    top: -10px;\n    left: 0;\n    display: inline-block;\n    width: 100%;\n    height: 10px;\n    content: \"\"\n}\n\n.carousel-indicators li::after {\n    position: absolute;\n    bottom: -10px;\n    left: 0;\n    display: inline-block;\n    width: 100%;\n    height: 10px;\n    content: \"\"\n}\n\n.carousel-indicators .active {\n    background-color: #fff\n}\n\n.carousel-caption {\n    position: absolute;\n    right: 15%;\n    bottom: 20px;\n    left: 15%;\n    z-index: 10;\n    padding-top: 20px;\n    padding-bottom: 20px;\n    color: #fff;\n    text-align: center\n}\n\n.align-baseline {\n    vertical-align: baseline !important\n}\n\n.align-top {\n    vertical-align: top !important\n}\n\n.align-middle {\n    vertical-align: middle !important\n}\n\n.align-bottom {\n    vertical-align: bottom !important\n}\n\n.align-text-bottom {\n    vertical-align: text-bottom !important\n}\n\n.align-text-top {\n    vertical-align: text-top !important\n}\n\n.bg-primary {\n    background-color: #007bff !important\n}\n\na.bg-primary:focus,\na.bg-primary:hover,\nbutton.bg-primary:focus,\nbutton.bg-primary:hover {\n    background-color: #0062cc !important\n}\n\n.bg-secondary {\n    background-color: #6c757d !important\n}\n\na.bg-secondary:focus,\na.bg-secondary:hover,\nbutton.bg-secondary:focus,\nbutton.bg-secondary:hover {\n    background-color: #545b62 !important\n}\n\n.bg-success {\n    background-color: #28a745 !important\n}\n\na.bg-success:focus,\na.bg-success:hover,\nbutton.bg-success:focus,\nbutton.bg-success:hover {\n    background-color: #1e7e34 !important\n}\n\n.bg-info {\n    background-color: #17a2b8 !important\n}\n\na.bg-info:focus,\na.bg-info:hover,\nbutton.bg-info:focus,\nbutton.bg-info:hover {\n    background-color: #117a8b !important\n}\n\n.bg-warning {\n    background-color: #ffc107 !important\n}\n\na.bg-warning:focus,\na.bg-warning:hover,\nbutton.bg-warning:focus,\nbutton.bg-warning:hover {\n    background-color: #d39e00 !important\n}\n\n.bg-danger {\n    background-color: #dc3545 !important\n}\n\na.bg-danger:focus,\na.bg-danger:hover,\nbutton.bg-danger:focus,\nbutton.bg-danger:hover {\n    background-color: #bd2130 !important\n}\n\n.bg-light {\n    background-color: #f8f9fa !important\n}\n\na.bg-light:focus,\na.bg-light:hover,\nbutton.bg-light:focus,\nbutton.bg-light:hover {\n    background-color: #dae0e5 !important\n}\n\n.bg-dark {\n    background-color: #343a40 !important\n}\n\na.bg-dark:focus,\na.bg-dark:hover,\nbutton.bg-dark:focus,\nbutton.bg-dark:hover {\n    background-color: #1d2124 !important\n}\n\n.bg-white {\n    background-color: #fff !important\n}\n\n.bg-transparent {\n    background-color: transparent !important\n}\n\n.border {\n    border: 1px solid #dee2e6 !important\n}\n\n.border-top {\n    border-top: 1px solid #dee2e6 !important\n}\n\n.border-right {\n    border-right: 1px solid #dee2e6 !important\n}\n\n.border-bottom {\n    border-bottom: 1px solid #dee2e6 !important\n}\n\n.border-left {\n    border-left: 1px solid #dee2e6 !important\n}\n\n.border-0 {\n    border: 0 !important\n}\n\n.border-top-0 {\n    border-top: 0 !important\n}\n\n.border-right-0 {\n    border-right: 0 !important\n}\n\n.border-bottom-0 {\n    border-bottom: 0 !important\n}\n\n.border-left-0 {\n    border-left: 0 !important\n}\n\n.border-primary {\n    border-color: #007bff !important\n}\n\n.border-secondary {\n    border-color: #6c757d !important\n}\n\n.border-success {\n    border-color: #28a745 !important\n}\n\n.border-info {\n    border-color: #17a2b8 !important\n}\n\n.border-warning {\n    border-color: #ffc107 !important\n}\n\n.border-danger {\n    border-color: #dc3545 !important\n}\n\n.border-light {\n    border-color: #f8f9fa !important\n}\n\n.border-dark {\n    border-color: #343a40 !important\n}\n\n.border-white {\n    border-color: #fff !important\n}\n\n.rounded {\n    border-radius: .25rem !important\n}\n\n.rounded-top {\n    border-top-left-radius: .25rem !important;\n    border-top-right-radius: .25rem !important\n}\n\n.rounded-right {\n    border-top-right-radius: .25rem !important;\n    border-bottom-right-radius: .25rem !important\n}\n\n.rounded-bottom {\n    border-bottom-right-radius: .25rem !important;\n    border-bottom-left-radius: .25rem !important\n}\n\n.rounded-left {\n    border-top-left-radius: .25rem !important;\n    border-bottom-left-radius: .25rem !important\n}\n\n.rounded-circle {\n    border-radius: 50% !important\n}\n\n.rounded-0 {\n    border-radius: 0 !important\n}\n\n.clearfix::after {\n    display: block;\n    clear: both;\n    content: \"\"\n}\n\n.d-none {\n    display: none !important\n}\n\n.d-inline {\n    display: inline !important\n}\n\n.d-inline-block {\n    display: inline-block !important\n}\n\n.d-block {\n    display: block !important\n}\n\n.d-table {\n    display: table !important\n}\n\n.d-table-row {\n    display: table-row !important\n}\n\n.d-table-cell {\n    display: table-cell !important\n}\n\n.d-flex {\n    display: -ms-flexbox !important;\n    display: flex !important\n}\n\n.d-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important\n}\n\n@media (min-width:576px) {\n    .d-sm-none {\n        display: none !important\n    }\n\n    .d-sm-inline {\n        display: inline !important\n    }\n\n    .d-sm-inline-block {\n        display: inline-block !important\n    }\n\n    .d-sm-block {\n        display: block !important\n    }\n\n    .d-sm-table {\n        display: table !important\n    }\n\n    .d-sm-table-row {\n        display: table-row !important\n    }\n\n    .d-sm-table-cell {\n        display: table-cell !important\n    }\n\n    .d-sm-flex {\n        display: -ms-flexbox !important;\n        display: flex !important\n    }\n\n    .d-sm-inline-flex {\n        display: -ms-inline-flexbox !important;\n        display: inline-flex !important\n    }\n}\n\n@media (min-width:768px) {\n    .d-md-none {\n        display: none !important\n    }\n\n    .d-md-inline {\n        display: inline !important\n    }\n\n    .d-md-inline-block {\n        display: inline-block !important\n    }\n\n    .d-md-block {\n        display: block !important\n    }\n\n    .d-md-table {\n        display: table !important\n    }\n\n    .d-md-table-row {\n        display: table-row !important\n    }\n\n    .d-md-table-cell {\n        display: table-cell !important\n    }\n\n    .d-md-flex {\n        display: -ms-flexbox !important;\n        display: flex !important\n    }\n\n    .d-md-inline-flex {\n        display: -ms-inline-flexbox !important;\n        display: inline-flex !important\n    }\n}\n\n@media (min-width:992px) {\n    .d-lg-none {\n        display: none !important\n    }\n\n    .d-lg-inline {\n        display: inline !important\n    }\n\n    .d-lg-inline-block {\n        display: inline-block !important\n    }\n\n    .d-lg-block {\n        display: block !important\n    }\n\n    .d-lg-table {\n        display: table !important\n    }\n\n    .d-lg-table-row {\n        display: table-row !important\n    }\n\n    .d-lg-table-cell {\n        display: table-cell !important\n    }\n\n    .d-lg-flex {\n        display: -ms-flexbox !important;\n        display: flex !important\n    }\n\n    .d-lg-inline-flex {\n        display: -ms-inline-flexbox !important;\n        display: inline-flex !important\n    }\n}\n\n@media (min-width:1200px) {\n    .d-xl-none {\n        display: none !important\n    }\n\n    .d-xl-inline {\n        display: inline !important\n    }\n\n    .d-xl-inline-block {\n        display: inline-block !important\n    }\n\n    .d-xl-block {\n        display: block !important\n    }\n\n    .d-xl-table {\n        display: table !important\n    }\n\n    .d-xl-table-row {\n        display: table-row !important\n    }\n\n    .d-xl-table-cell {\n        display: table-cell !important\n    }\n\n    .d-xl-flex {\n        display: -ms-flexbox !important;\n        display: flex !important\n    }\n\n    .d-xl-inline-flex {\n        display: -ms-inline-flexbox !important;\n        display: inline-flex !important\n    }\n}\n\n@media print {\n    .d-print-none {\n        display: none !important\n    }\n\n    .d-print-inline {\n        display: inline !important\n    }\n\n    .d-print-inline-block {\n        display: inline-block !important\n    }\n\n    .d-print-block {\n        display: block !important\n    }\n\n    .d-print-table {\n        display: table !important\n    }\n\n    .d-print-table-row {\n        display: table-row !important\n    }\n\n    .d-print-table-cell {\n        display: table-cell !important\n    }\n\n    .d-print-flex {\n        display: -ms-flexbox !important;\n        display: flex !important\n    }\n\n    .d-print-inline-flex {\n        display: -ms-inline-flexbox !important;\n        display: inline-flex !important\n    }\n}\n\n.embed-responsive {\n    position: relative;\n    display: block;\n    width: 100%;\n    padding: 0;\n    overflow: hidden\n}\n\n.embed-responsive::before {\n    display: block;\n    content: \"\"\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive embed,\n.embed-responsive iframe,\n.embed-responsive object,\n.embed-responsive video {\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    border: 0\n}\n\n.embed-responsive-21by9::before {\n    padding-top: 42.857143%\n}\n\n.embed-responsive-16by9::before {\n    padding-top: 56.25%\n}\n\n.embed-responsive-4by3::before {\n    padding-top: 75%\n}\n\n.embed-responsive-1by1::before {\n    padding-top: 100%\n}\n\n.flex-row {\n    -ms-flex-direction: row !important;\n    flex-direction: row !important\n}\n\n.flex-column {\n    -ms-flex-direction: column !important;\n    flex-direction: column !important\n}\n\n.flex-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important\n}\n\n.flex-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important\n}\n\n.flex-wrap {\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important\n}\n\n.flex-nowrap {\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important\n}\n\n.flex-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important\n}\n\n.flex-fill {\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important\n}\n\n.flex-grow-0 {\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important\n}\n\n.flex-grow-1 {\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important\n}\n\n.flex-shrink-0 {\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important\n}\n\n.flex-shrink-1 {\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important\n}\n\n.justify-content-start {\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important\n}\n\n.justify-content-end {\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important\n}\n\n.justify-content-center {\n    -ms-flex-pack: center !important;\n    justify-content: center !important\n}\n\n.justify-content-between {\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important\n}\n\n.justify-content-around {\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important\n}\n\n.align-items-start {\n    -ms-flex-align: start !important;\n    align-items: flex-start !important\n}\n\n.align-items-end {\n    -ms-flex-align: end !important;\n    align-items: flex-end !important\n}\n\n.align-items-center {\n    -ms-flex-align: center !important;\n    align-items: center !important\n}\n\n.align-items-baseline {\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important\n}\n\n.align-items-stretch {\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important\n}\n\n.align-content-start {\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important\n}\n\n.align-content-end {\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important\n}\n\n.align-content-center {\n    -ms-flex-line-pack: center !important;\n    align-content: center !important\n}\n\n.align-content-between {\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important\n}\n\n.align-content-around {\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important\n}\n\n.align-content-stretch {\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important\n}\n\n.align-self-auto {\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important\n}\n\n.align-self-start {\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important\n}\n\n.align-self-end {\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important\n}\n\n.align-self-center {\n    -ms-flex-item-align: center !important;\n    align-self: center !important\n}\n\n.align-self-baseline {\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important\n}\n\n.align-self-stretch {\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important\n}\n\n@media (min-width:576px) {\n    .flex-sm-row {\n        -ms-flex-direction: row !important;\n        flex-direction: row !important\n    }\n\n    .flex-sm-column {\n        -ms-flex-direction: column !important;\n        flex-direction: column !important\n    }\n\n    .flex-sm-row-reverse {\n        -ms-flex-direction: row-reverse !important;\n        flex-direction: row-reverse !important\n    }\n\n    .flex-sm-column-reverse {\n        -ms-flex-direction: column-reverse !important;\n        flex-direction: column-reverse !important\n    }\n\n    .flex-sm-wrap {\n        -ms-flex-wrap: wrap !important;\n        flex-wrap: wrap !important\n    }\n\n    .flex-sm-nowrap {\n        -ms-flex-wrap: nowrap !important;\n        flex-wrap: nowrap !important\n    }\n\n    .flex-sm-wrap-reverse {\n        -ms-flex-wrap: wrap-reverse !important;\n        flex-wrap: wrap-reverse !important\n    }\n\n    .flex-sm-fill {\n        -ms-flex: 1 1 auto !important;\n        flex: 1 1 auto !important\n    }\n\n    .flex-sm-grow-0 {\n        -ms-flex-positive: 0 !important;\n        flex-grow: 0 !important\n    }\n\n    .flex-sm-grow-1 {\n        -ms-flex-positive: 1 !important;\n        flex-grow: 1 !important\n    }\n\n    .flex-sm-shrink-0 {\n        -ms-flex-negative: 0 !important;\n        flex-shrink: 0 !important\n    }\n\n    .flex-sm-shrink-1 {\n        -ms-flex-negative: 1 !important;\n        flex-shrink: 1 !important\n    }\n\n    .justify-content-sm-start {\n        -ms-flex-pack: start !important;\n        justify-content: flex-start !important\n    }\n\n    .justify-content-sm-end {\n        -ms-flex-pack: end !important;\n        justify-content: flex-end !important\n    }\n\n    .justify-content-sm-center {\n        -ms-flex-pack: center !important;\n        justify-content: center !important\n    }\n\n    .justify-content-sm-between {\n        -ms-flex-pack: justify !important;\n        justify-content: space-between !important\n    }\n\n    .justify-content-sm-around {\n        -ms-flex-pack: distribute !important;\n        justify-content: space-around !important\n    }\n\n    .align-items-sm-start {\n        -ms-flex-align: start !important;\n        align-items: flex-start !important\n    }\n\n    .align-items-sm-end {\n        -ms-flex-align: end !important;\n        align-items: flex-end !important\n    }\n\n    .align-items-sm-center {\n        -ms-flex-align: center !important;\n        align-items: center !important\n    }\n\n    .align-items-sm-baseline {\n        -ms-flex-align: baseline !important;\n        align-items: baseline !important\n    }\n\n    .align-items-sm-stretch {\n        -ms-flex-align: stretch !important;\n        align-items: stretch !important\n    }\n\n    .align-content-sm-start {\n        -ms-flex-line-pack: start !important;\n        align-content: flex-start !important\n    }\n\n    .align-content-sm-end {\n        -ms-flex-line-pack: end !important;\n        align-content: flex-end !important\n    }\n\n    .align-content-sm-center {\n        -ms-flex-line-pack: center !important;\n        align-content: center !important\n    }\n\n    .align-content-sm-between {\n        -ms-flex-line-pack: justify !important;\n        align-content: space-between !important\n    }\n\n    .align-content-sm-around {\n        -ms-flex-line-pack: distribute !important;\n        align-content: space-around !important\n    }\n\n    .align-content-sm-stretch {\n        -ms-flex-line-pack: stretch !important;\n        align-content: stretch !important\n    }\n\n    .align-self-sm-auto {\n        -ms-flex-item-align: auto !important;\n        align-self: auto !important\n    }\n\n    .align-self-sm-start {\n        -ms-flex-item-align: start !important;\n        align-self: flex-start !important\n    }\n\n    .align-self-sm-end {\n        -ms-flex-item-align: end !important;\n        align-self: flex-end !important\n    }\n\n    .align-self-sm-center {\n        -ms-flex-item-align: center !important;\n        align-self: center !important\n    }\n\n    .align-self-sm-baseline {\n        -ms-flex-item-align: baseline !important;\n        align-self: baseline !important\n    }\n\n    .align-self-sm-stretch {\n        -ms-flex-item-align: stretch !important;\n        align-self: stretch !important\n    }\n}\n\n@media (min-width:768px) {\n    .flex-md-row {\n        -ms-flex-direction: row !important;\n        flex-direction: row !important\n    }\n\n    .flex-md-column {\n        -ms-flex-direction: column !important;\n        flex-direction: column !important\n    }\n\n    .flex-md-row-reverse {\n        -ms-flex-direction: row-reverse !important;\n        flex-direction: row-reverse !important\n    }\n\n    .flex-md-column-reverse {\n        -ms-flex-direction: column-reverse !important;\n        flex-direction: column-reverse !important\n    }\n\n    .flex-md-wrap {\n        -ms-flex-wrap: wrap !important;\n        flex-wrap: wrap !important\n    }\n\n    .flex-md-nowrap {\n        -ms-flex-wrap: nowrap !important;\n        flex-wrap: nowrap !important\n    }\n\n    .flex-md-wrap-reverse {\n        -ms-flex-wrap: wrap-reverse !important;\n        flex-wrap: wrap-reverse !important\n    }\n\n    .flex-md-fill {\n        -ms-flex: 1 1 auto !important;\n        flex: 1 1 auto !important\n    }\n\n    .flex-md-grow-0 {\n        -ms-flex-positive: 0 !important;\n        flex-grow: 0 !important\n    }\n\n    .flex-md-grow-1 {\n        -ms-flex-positive: 1 !important;\n        flex-grow: 1 !important\n    }\n\n    .flex-md-shrink-0 {\n        -ms-flex-negative: 0 !important;\n        flex-shrink: 0 !important\n    }\n\n    .flex-md-shrink-1 {\n        -ms-flex-negative: 1 !important;\n        flex-shrink: 1 !important\n    }\n\n    .justify-content-md-start {\n        -ms-flex-pack: start !important;\n        justify-content: flex-start !important\n    }\n\n    .justify-content-md-end {\n        -ms-flex-pack: end !important;\n        justify-content: flex-end !important\n    }\n\n    .justify-content-md-center {\n        -ms-flex-pack: center !important;\n        justify-content: center !important\n    }\n\n    .justify-content-md-between {\n        -ms-flex-pack: justify !important;\n        justify-content: space-between !important\n    }\n\n    .justify-content-md-around {\n        -ms-flex-pack: distribute !important;\n        justify-content: space-around !important\n    }\n\n    .align-items-md-start {\n        -ms-flex-align: start !important;\n        align-items: flex-start !important\n    }\n\n    .align-items-md-end {\n        -ms-flex-align: end !important;\n        align-items: flex-end !important\n    }\n\n    .align-items-md-center {\n        -ms-flex-align: center !important;\n        align-items: center !important\n    }\n\n    .align-items-md-baseline {\n        -ms-flex-align: baseline !important;\n        align-items: baseline !important\n    }\n\n    .align-items-md-stretch {\n        -ms-flex-align: stretch !important;\n        align-items: stretch !important\n    }\n\n    .align-content-md-start {\n        -ms-flex-line-pack: start !important;\n        align-content: flex-start !important\n    }\n\n    .align-content-md-end {\n        -ms-flex-line-pack: end !important;\n        align-content: flex-end !important\n    }\n\n    .align-content-md-center {\n        -ms-flex-line-pack: center !important;\n        align-content: center !important\n    }\n\n    .align-content-md-between {\n        -ms-flex-line-pack: justify !important;\n        align-content: space-between !important\n    }\n\n    .align-content-md-around {\n        -ms-flex-line-pack: distribute !important;\n        align-content: space-around !important\n    }\n\n    .align-content-md-stretch {\n        -ms-flex-line-pack: stretch !important;\n        align-content: stretch !important\n    }\n\n    .align-self-md-auto {\n        -ms-flex-item-align: auto !important;\n        align-self: auto !important\n    }\n\n    .align-self-md-start {\n        -ms-flex-item-align: start !important;\n        align-self: flex-start !important\n    }\n\n    .align-self-md-end {\n        -ms-flex-item-align: end !important;\n        align-self: flex-end !important\n    }\n\n    .align-self-md-center {\n        -ms-flex-item-align: center !important;\n        align-self: center !important\n    }\n\n    .align-self-md-baseline {\n        -ms-flex-item-align: baseline !important;\n        align-self: baseline !important\n    }\n\n    .align-self-md-stretch {\n        -ms-flex-item-align: stretch !important;\n        align-self: stretch !important\n    }\n}\n\n@media (min-width:992px) {\n    .flex-lg-row {\n        -ms-flex-direction: row !important;\n        flex-direction: row !important\n    }\n\n    .flex-lg-column {\n        -ms-flex-direction: column !important;\n        flex-direction: column !important\n    }\n\n    .flex-lg-row-reverse {\n        -ms-flex-direction: row-reverse !important;\n        flex-direction: row-reverse !important\n    }\n\n    .flex-lg-column-reverse {\n        -ms-flex-direction: column-reverse !important;\n        flex-direction: column-reverse !important\n    }\n\n    .flex-lg-wrap {\n        -ms-flex-wrap: wrap !important;\n        flex-wrap: wrap !important\n    }\n\n    .flex-lg-nowrap {\n        -ms-flex-wrap: nowrap !important;\n        flex-wrap: nowrap !important\n    }\n\n    .flex-lg-wrap-reverse {\n        -ms-flex-wrap: wrap-reverse !important;\n        flex-wrap: wrap-reverse !important\n    }\n\n    .flex-lg-fill {\n        -ms-flex: 1 1 auto !important;\n        flex: 1 1 auto !important\n    }\n\n    .flex-lg-grow-0 {\n        -ms-flex-positive: 0 !important;\n        flex-grow: 0 !important\n    }\n\n    .flex-lg-grow-1 {\n        -ms-flex-positive: 1 !important;\n        flex-grow: 1 !important\n    }\n\n    .flex-lg-shrink-0 {\n        -ms-flex-negative: 0 !important;\n        flex-shrink: 0 !important\n    }\n\n    .flex-lg-shrink-1 {\n        -ms-flex-negative: 1 !important;\n        flex-shrink: 1 !important\n    }\n\n    .justify-content-lg-start {\n        -ms-flex-pack: start !important;\n        justify-content: flex-start !important\n    }\n\n    .justify-content-lg-end {\n        -ms-flex-pack: end !important;\n        justify-content: flex-end !important\n    }\n\n    .justify-content-lg-center {\n        -ms-flex-pack: center !important;\n        justify-content: center !important\n    }\n\n    .justify-content-lg-between {\n        -ms-flex-pack: justify !important;\n        justify-content: space-between !important\n    }\n\n    .justify-content-lg-around {\n        -ms-flex-pack: distribute !important;\n        justify-content: space-around !important\n    }\n\n    .align-items-lg-start {\n        -ms-flex-align: start !important;\n        align-items: flex-start !important\n    }\n\n    .align-items-lg-end {\n        -ms-flex-align: end !important;\n        align-items: flex-end !important\n    }\n\n    .align-items-lg-center {\n        -ms-flex-align: center !important;\n        align-items: center !important\n    }\n\n    .align-items-lg-baseline {\n        -ms-flex-align: baseline !important;\n        align-items: baseline !important\n    }\n\n    .align-items-lg-stretch {\n        -ms-flex-align: stretch !important;\n        align-items: stretch !important\n    }\n\n    .align-content-lg-start {\n        -ms-flex-line-pack: start !important;\n        align-content: flex-start !important\n    }\n\n    .align-content-lg-end {\n        -ms-flex-line-pack: end !important;\n        align-content: flex-end !important\n    }\n\n    .align-content-lg-center {\n        -ms-flex-line-pack: center !important;\n        align-content: center !important\n    }\n\n    .align-content-lg-between {\n        -ms-flex-line-pack: justify !important;\n        align-content: space-between !important\n    }\n\n    .align-content-lg-around {\n        -ms-flex-line-pack: distribute !important;\n        align-content: space-around !important\n    }\n\n    .align-content-lg-stretch {\n        -ms-flex-line-pack: stretch !important;\n        align-content: stretch !important\n    }\n\n    .align-self-lg-auto {\n        -ms-flex-item-align: auto !important;\n        align-self: auto !important\n    }\n\n    .align-self-lg-start {\n        -ms-flex-item-align: start !important;\n        align-self: flex-start !important\n    }\n\n    .align-self-lg-end {\n        -ms-flex-item-align: end !important;\n        align-self: flex-end !important\n    }\n\n    .align-self-lg-center {\n        -ms-flex-item-align: center !important;\n        align-self: center !important\n    }\n\n    .align-self-lg-baseline {\n        -ms-flex-item-align: baseline !important;\n        align-self: baseline !important\n    }\n\n    .align-self-lg-stretch {\n        -ms-flex-item-align: stretch !important;\n        align-self: stretch !important\n    }\n}\n\n@media (min-width:1200px) {\n    .flex-xl-row {\n        -ms-flex-direction: row !important;\n        flex-direction: row !important\n    }\n\n    .flex-xl-column {\n        -ms-flex-direction: column !important;\n        flex-direction: column !important\n    }\n\n    .flex-xl-row-reverse {\n        -ms-flex-direction: row-reverse !important;\n        flex-direction: row-reverse !important\n    }\n\n    .flex-xl-column-reverse {\n        -ms-flex-direction: column-reverse !important;\n        flex-direction: column-reverse !important\n    }\n\n    .flex-xl-wrap {\n        -ms-flex-wrap: wrap !important;\n        flex-wrap: wrap !important\n    }\n\n    .flex-xl-nowrap {\n        -ms-flex-wrap: nowrap !important;\n        flex-wrap: nowrap !important\n    }\n\n    .flex-xl-wrap-reverse {\n        -ms-flex-wrap: wrap-reverse !important;\n        flex-wrap: wrap-reverse !important\n    }\n\n    .flex-xl-fill {\n        -ms-flex: 1 1 auto !important;\n        flex: 1 1 auto !important\n    }\n\n    .flex-xl-grow-0 {\n        -ms-flex-positive: 0 !important;\n        flex-grow: 0 !important\n    }\n\n    .flex-xl-grow-1 {\n        -ms-flex-positive: 1 !important;\n        flex-grow: 1 !important\n    }\n\n    .flex-xl-shrink-0 {\n        -ms-flex-negative: 0 !important;\n        flex-shrink: 0 !important\n    }\n\n    .flex-xl-shrink-1 {\n        -ms-flex-negative: 1 !important;\n        flex-shrink: 1 !important\n    }\n\n    .justify-content-xl-start {\n        -ms-flex-pack: start !important;\n        justify-content: flex-start !important\n    }\n\n    .justify-content-xl-end {\n        -ms-flex-pack: end !important;\n        justify-content: flex-end !important\n    }\n\n    .justify-content-xl-center {\n        -ms-flex-pack: center !important;\n        justify-content: center !important\n    }\n\n    .justify-content-xl-between {\n        -ms-flex-pack: justify !important;\n        justify-content: space-between !important\n    }\n\n    .justify-content-xl-around {\n        -ms-flex-pack: distribute !important;\n        justify-content: space-around !important\n    }\n\n    .align-items-xl-start {\n        -ms-flex-align: start !important;\n        align-items: flex-start !important\n    }\n\n    .align-items-xl-end {\n        -ms-flex-align: end !important;\n        align-items: flex-end !important\n    }\n\n    .align-items-xl-center {\n        -ms-flex-align: center !important;\n        align-items: center !important\n    }\n\n    .align-items-xl-baseline {\n        -ms-flex-align: baseline !important;\n        align-items: baseline !important\n    }\n\n    .align-items-xl-stretch {\n        -ms-flex-align: stretch !important;\n        align-items: stretch !important\n    }\n\n    .align-content-xl-start {\n        -ms-flex-line-pack: start !important;\n        align-content: flex-start !important\n    }\n\n    .align-content-xl-end {\n        -ms-flex-line-pack: end !important;\n        align-content: flex-end !important\n    }\n\n    .align-content-xl-center {\n        -ms-flex-line-pack: center !important;\n        align-content: center !important\n    }\n\n    .align-content-xl-between {\n        -ms-flex-line-pack: justify !important;\n        align-content: space-between !important\n    }\n\n    .align-content-xl-around {\n        -ms-flex-line-pack: distribute !important;\n        align-content: space-around !important\n    }\n\n    .align-content-xl-stretch {\n        -ms-flex-line-pack: stretch !important;\n        align-content: stretch !important\n    }\n\n    .align-self-xl-auto {\n        -ms-flex-item-align: auto !important;\n        align-self: auto !important\n    }\n\n    .align-self-xl-start {\n        -ms-flex-item-align: start !important;\n        align-self: flex-start !important\n    }\n\n    .align-self-xl-end {\n        -ms-flex-item-align: end !important;\n        align-self: flex-end !important\n    }\n\n    .align-self-xl-center {\n        -ms-flex-item-align: center !important;\n        align-self: center !important\n    }\n\n    .align-self-xl-baseline {\n        -ms-flex-item-align: baseline !important;\n        align-self: baseline !important\n    }\n\n    .align-self-xl-stretch {\n        -ms-flex-item-align: stretch !important;\n        align-self: stretch !important\n    }\n}\n\n.float-left {\n    float: left !important\n}\n\n.float-right {\n    float: right !important\n}\n\n.float-none {\n    float: none !important\n}\n\n@media (min-width:576px) {\n    .float-sm-left {\n        float: left !important\n    }\n\n    .float-sm-right {\n        float: right !important\n    }\n\n    .float-sm-none {\n        float: none !important\n    }\n}\n\n@media (min-width:768px) {\n    .float-md-left {\n        float: left !important\n    }\n\n    .float-md-right {\n        float: right !important\n    }\n\n    .float-md-none {\n        float: none !important\n    }\n}\n\n@media (min-width:992px) {\n    .float-lg-left {\n        float: left !important\n    }\n\n    .float-lg-right {\n        float: right !important\n    }\n\n    .float-lg-none {\n        float: none !important\n    }\n}\n\n@media (min-width:1200px) {\n    .float-xl-left {\n        float: left !important\n    }\n\n    .float-xl-right {\n        float: right !important\n    }\n\n    .float-xl-none {\n        float: none !important\n    }\n}\n\n.position-static {\n    position: static !important\n}\n\n.position-relative {\n    position: relative !important\n}\n\n.position-absolute {\n    position: absolute !important\n}\n\n.position-fixed {\n    position: fixed !important\n}\n\n.position-sticky {\n    position: -webkit-sticky !important;\n    position: sticky !important\n}\n\n.fixed-top {\n    top: 0;\n    right: 0;\n    left: 0;\n    z-index: 1030\n}\n\n.fixed-bottom {\n    position: fixed;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    z-index: 1030\n}\n\n@supports ((position:-webkit-sticky) or (position:sticky)) {\n    .sticky-top {\n        position: -webkit-sticky;\n        position: sticky;\n        top: 0;\n        z-index: 1020\n    }\n}\n\n.sr-only {\n    position: absolute;\n    width: 1px;\n    height: 1px;\n    padding: 0;\n    overflow: hidden;\n    clip: rect(0, 0, 0, 0);\n    white-space: nowrap;\n    border: 0\n}\n\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n    position: static;\n    width: auto;\n    height: auto;\n    overflow: visible;\n    clip: auto;\n    white-space: normal\n}\n\n.shadow-sm {\n    box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075) !important\n}\n\n.shadow {\n    box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15) !important\n}\n\n.shadow-lg {\n    box-shadow: 0 1rem 3rem rgba(0, 0, 0, .175) !important\n}\n\n.shadow-none {\n    box-shadow: none !important\n}\n\n.w-25 {\n    width: 25% !important\n}\n\n.w-50 {\n    width: 50% !important\n}\n\n.w-75 {\n    width: 75% !important\n}\n\n.w-100 {\n    width: 100% !important\n}\n\n.w-auto {\n    width: auto !important\n}\n\n.h-25 {\n    height: 25% !important\n}\n\n.h-50 {\n    height: 50% !important\n}\n\n.h-75 {\n    height: 75% !important\n}\n\n.h-100 {\n    height: 100% !important\n}\n\n.h-auto {\n    height: auto !important\n}\n\n.mw-100 {\n    max-width: 100% !important\n}\n\n.mh-100 {\n    max-height: 100% !important\n}\n\n.m-0 {\n    margin: 0 !important\n}\n\n.mt-0,\n.my-0 {\n    margin-top: 0 !important\n}\n\n.mr-0,\n.mx-0 {\n    margin-right: 0 !important\n}\n\n.mb-0,\n.my-0 {\n    margin-bottom: 0 !important\n}\n\n.ml-0,\n.mx-0 {\n    margin-left: 0 !important\n}\n\n.m-1 {\n    margin: .25rem !important\n}\n\n.mt-1,\n.my-1 {\n    margin-top: .25rem !important\n}\n\n.mr-1,\n.mx-1 {\n    margin-right: .25rem !important\n}\n\n.mb-1,\n.my-1 {\n    margin-bottom: .25rem !important\n}\n\n.ml-1,\n.mx-1 {\n    margin-left: .25rem !important\n}\n\n.m-2 {\n    margin: .5rem !important\n}\n\n.mt-2,\n.my-2 {\n    margin-top: .5rem !important\n}\n\n.mr-2,\n.mx-2 {\n    margin-right: .5rem !important\n}\n\n.mb-2,\n.my-2 {\n    margin-bottom: .5rem !important\n}\n\n.ml-2,\n.mx-2 {\n    margin-left: .5rem !important\n}\n\n.m-3 {\n    margin: 1rem !important\n}\n\n.mt-3,\n.my-3 {\n    margin-top: 1rem !important\n}\n\n.mr-3,\n.mx-3 {\n    margin-right: 1rem !important\n}\n\n.mb-3,\n.my-3 {\n    margin-bottom: 1rem !important\n}\n\n.ml-3,\n.mx-3 {\n    margin-left: 1rem !important\n}\n\n.m-4 {\n    margin: 1.5rem !important\n}\n\n.mt-4,\n.my-4 {\n    margin-top: 1.5rem !important\n}\n\n.mr-4,\n.mx-4 {\n    margin-right: 1.5rem !important\n}\n\n.mb-4,\n.my-4 {\n    margin-bottom: 1.5rem !important\n}\n\n.ml-4,\n.mx-4 {\n    margin-left: 1.5rem !important\n}\n\n.m-5 {\n    margin: 3rem !important\n}\n\n.mt-5,\n.my-5 {\n    margin-top: 3rem !important\n}\n\n.mr-5,\n.mx-5 {\n    margin-right: 3rem !important\n}\n\n.mb-5,\n.my-5 {\n    margin-bottom: 3rem !important\n}\n\n.ml-5,\n.mx-5 {\n    margin-left: 3rem !important\n}\n\n.p-0 {\n    padding: 0 !important\n}\n\n.pt-0,\n.py-0 {\n    padding-top: 0 !important\n}\n\n.pr-0,\n.px-0 {\n    padding-right: 0 !important\n}\n\n.pb-0,\n.py-0 {\n    padding-bottom: 0 !important\n}\n\n.pl-0,\n.px-0 {\n    padding-left: 0 !important\n}\n\n.p-1 {\n    padding: .25rem !important\n}\n\n.pt-1,\n.py-1 {\n    padding-top: .25rem !important\n}\n\n.pr-1,\n.px-1 {\n    padding-right: .25rem !important\n}\n\n.pb-1,\n.py-1 {\n    padding-bottom: .25rem !important\n}\n\n.pl-1,\n.px-1 {\n    padding-left: .25rem !important\n}\n\n.p-2 {\n    padding: .5rem !important\n}\n\n.pt-2,\n.py-2 {\n    padding-top: .5rem !important\n}\n\n.pr-2,\n.px-2 {\n    padding-right: .5rem !important\n}\n\n.pb-2,\n.py-2 {\n    padding-bottom: .5rem !important\n}\n\n.pl-2,\n.px-2 {\n    padding-left: .5rem !important\n}\n\n.p-3 {\n    padding: 1rem !important\n}\n\n.pt-3,\n.py-3 {\n    padding-top: 1rem !important\n}\n\n.pr-3,\n.px-3 {\n    padding-right: 1rem !important\n}\n\n.pb-3,\n.py-3 {\n    padding-bottom: 1rem !important\n}\n\n.pl-3,\n.px-3 {\n    padding-left: 1rem !important\n}\n\n.p-4 {\n    padding: 1.5rem !important\n}\n\n.pt-4,\n.py-4 {\n    padding-top: 1.5rem !important\n}\n\n.pr-4,\n.px-4 {\n    padding-right: 1.5rem !important\n}\n\n.pb-4,\n.py-4 {\n    padding-bottom: 1.5rem !important\n}\n\n.pl-4,\n.px-4 {\n    padding-left: 1.5rem !important\n}\n\n.p-5 {\n    padding: 3rem !important\n}\n\n.pt-5,\n.py-5 {\n    padding-top: 3rem !important\n}\n\n.pr-5,\n.px-5 {\n    padding-right: 4rem !important\n}\n\n.pb-5,\n.py-5 {\n    padding-bottom: 3rem !important\n}\n\n.pl-5,\n.px-5 {\n    padding-left: 3rem !important\n}\n\n.m-auto {\n    margin: auto !important\n}\n\n.mt-auto,\n.my-auto {\n    margin-top: auto !important\n}\n\n.mr-auto,\n.mx-auto {\n    margin-right: auto !important\n}\n\n.mb-auto,\n.my-auto {\n    margin-bottom: auto !important\n}\n\n.ml-auto,\n.mx-auto {\n    margin-left: auto !important\n}\n\n@media (min-width:576px) {\n    .m-sm-0 {\n        margin: 0 !important\n    }\n\n    .mt-sm-0,\n    .my-sm-0 {\n        margin-top: 0 !important\n    }\n\n    .mr-sm-0,\n    .mx-sm-0 {\n        margin-right: 0 !important\n    }\n\n    .mb-sm-0,\n    .my-sm-0 {\n        margin-bottom: 0 !important\n    }\n\n    .ml-sm-0,\n    .mx-sm-0 {\n        margin-left: 0 !important\n    }\n\n    .m-sm-1 {\n        margin: .25rem !important\n    }\n\n    .mt-sm-1,\n    .my-sm-1 {\n        margin-top: .25rem !important\n    }\n\n    .mr-sm-1,\n    .mx-sm-1 {\n        margin-right: .25rem !important\n    }\n\n    .mb-sm-1,\n    .my-sm-1 {\n        margin-bottom: .25rem !important\n    }\n\n    .ml-sm-1,\n    .mx-sm-1 {\n        margin-left: .25rem !important\n    }\n\n    .m-sm-2 {\n        margin: .5rem !important\n    }\n\n    .mt-sm-2,\n    .my-sm-2 {\n        margin-top: .5rem !important\n    }\n\n    .mr-sm-2,\n    .mx-sm-2 {\n        margin-right: .5rem !important\n    }\n\n    .mb-sm-2,\n    .my-sm-2 {\n        margin-bottom: .5rem !important\n    }\n\n    .ml-sm-2,\n    .mx-sm-2 {\n        margin-left: .5rem !important\n    }\n\n    .m-sm-3 {\n        margin: 1rem !important\n    }\n\n    .mt-sm-3,\n    .my-sm-3 {\n        margin-top: 1rem !important\n    }\n\n    .mr-sm-3,\n    .mx-sm-3 {\n        margin-right: 1rem !important\n    }\n\n    .mb-sm-3,\n    .my-sm-3 {\n        margin-bottom: 1rem !important\n    }\n\n    .ml-sm-3,\n    .mx-sm-3 {\n        margin-left: 1rem !important\n    }\n\n    .m-sm-4 {\n        margin: 1.5rem !important\n    }\n\n    .mt-sm-4,\n    .my-sm-4 {\n        margin-top: 1.5rem !important\n    }\n\n    .mr-sm-4,\n    .mx-sm-4 {\n        margin-right: 1.5rem !important\n    }\n\n    .mb-sm-4,\n    .my-sm-4 {\n        margin-bottom: 1.5rem !important\n    }\n\n    .ml-sm-4,\n    .mx-sm-4 {\n        margin-left: 1.5rem !important\n    }\n\n    .m-sm-5 {\n        margin: 3rem !important\n    }\n\n    .mt-sm-5,\n    .my-sm-5 {\n        margin-top: 3rem !important\n    }\n\n    .mr-sm-5,\n    .mx-sm-5 {\n        margin-right: 3rem !important\n    }\n\n    .mb-sm-5,\n    .my-sm-5 {\n        margin-bottom: 3rem !important\n    }\n\n    .ml-sm-5,\n    .mx-sm-5 {\n        margin-left: 3rem !important\n    }\n\n    .p-sm-0 {\n        padding: 0 !important\n    }\n\n    .pt-sm-0,\n    .py-sm-0 {\n        padding-top: 0 !important\n    }\n\n    .pr-sm-0,\n    .px-sm-0 {\n        padding-right: 0 !important\n    }\n\n    .pb-sm-0,\n    .py-sm-0 {\n        padding-bottom: 0 !important\n    }\n\n    .pl-sm-0,\n    .px-sm-0 {\n        padding-left: 0 !important\n    }\n\n    .p-sm-1 {\n        padding: .25rem !important\n    }\n\n    .pt-sm-1,\n    .py-sm-1 {\n        padding-top: .25rem !important\n    }\n\n    .pr-sm-1,\n    .px-sm-1 {\n        padding-right: .25rem !important\n    }\n\n    .pb-sm-1,\n    .py-sm-1 {\n        padding-bottom: .25rem !important\n    }\n\n    .pl-sm-1,\n    .px-sm-1 {\n        padding-left: .25rem !important\n    }\n\n    .p-sm-2 {\n        padding: .5rem !important\n    }\n\n    .pt-sm-2,\n    .py-sm-2 {\n        padding-top: .5rem !important\n    }\n\n    .pr-sm-2,\n    .px-sm-2 {\n        padding-right: .5rem !important\n    }\n\n    .pb-sm-2,\n    .py-sm-2 {\n        padding-bottom: .5rem !important\n    }\n\n    .pl-sm-2,\n    .px-sm-2 {\n        padding-left: .5rem !important\n    }\n\n    .p-sm-3 {\n        padding: 1rem !important\n    }\n\n    .pt-sm-3,\n    .py-sm-3 {\n        padding-top: 1rem !important\n    }\n\n    .pr-sm-3,\n    .px-sm-3 {\n        padding-right: 1rem !important\n    }\n\n    .pb-sm-3,\n    .py-sm-3 {\n        padding-bottom: 1rem !important\n    }\n\n    .pl-sm-3,\n    .px-sm-3 {\n        padding-left: 1rem !important\n    }\n\n    .p-sm-4 {\n        padding: 1.5rem !important\n    }\n\n    .pt-sm-4,\n    .py-sm-4 {\n        padding-top: 1.5rem !important\n    }\n\n    .pr-sm-4,\n    .px-sm-4 {\n        padding-right: 1.5rem !important\n    }\n\n    .pb-sm-4,\n    .py-sm-4 {\n        padding-bottom: 1.5rem !important\n    }\n\n    .pl-sm-4,\n    .px-sm-4 {\n        padding-left: 1.5rem !important\n    }\n\n    .p-sm-5 {\n        padding: 3rem !important\n    }\n\n    .pt-sm-5,\n    .py-sm-5 {\n        padding-top: 3rem !important\n    }\n\n    .pr-sm-5,\n    .px-sm-5 {\n        padding-right: 3rem !important\n    }\n\n    .pb-sm-5,\n    .py-sm-5 {\n        padding-bottom: 3rem !important\n    }\n\n    .pl-sm-5,\n    .px-sm-5 {\n        padding-left: 3rem !important\n    }\n\n    .m-sm-auto {\n        margin: auto !important\n    }\n\n    .mt-sm-auto,\n    .my-sm-auto {\n        margin-top: auto !important\n    }\n\n    .mr-sm-auto,\n    .mx-sm-auto {\n        margin-right: auto !important\n    }\n\n    .mb-sm-auto,\n    .my-sm-auto {\n        margin-bottom: auto !important\n    }\n\n    .ml-sm-auto,\n    .mx-sm-auto {\n        margin-left: auto !important\n    }\n}\n\n@media (min-width:768px) {\n    .m-md-0 {\n        margin: 0 !important\n    }\n\n    .mt-md-0,\n    .my-md-0 {\n        margin-top: 0 !important\n    }\n\n    .mr-md-0,\n    .mx-md-0 {\n        margin-right: 0 !important\n    }\n\n    .mb-md-0,\n    .my-md-0 {\n        margin-bottom: 0 !important\n    }\n\n    .ml-md-0,\n    .mx-md-0 {\n        margin-left: 0 !important\n    }\n\n    .m-md-1 {\n        margin: .25rem !important\n    }\n\n    .mt-md-1,\n    .my-md-1 {\n        margin-top: .25rem !important\n    }\n\n    .mr-md-1,\n    .mx-md-1 {\n        margin-right: .25rem !important\n    }\n\n    .mb-md-1,\n    .my-md-1 {\n        margin-bottom: .25rem !important\n    }\n\n    .ml-md-1,\n    .mx-md-1 {\n        margin-left: .25rem !important\n    }\n\n    .m-md-2 {\n        margin: .5rem !important\n    }\n\n    .mt-md-2,\n    .my-md-2 {\n        margin-top: .5rem !important\n    }\n\n    .mr-md-2,\n    .mx-md-2 {\n        margin-right: .5rem !important\n    }\n\n    .mb-md-2,\n    .my-md-2 {\n        margin-bottom: .5rem !important\n    }\n\n    .ml-md-2,\n    .mx-md-2 {\n        margin-left: .5rem !important\n    }\n\n    .m-md-3 {\n        margin: 1rem !important\n    }\n\n    .mt-md-3,\n    .my-md-3 {\n        margin-top: 1rem !important\n    }\n\n    .mr-md-3,\n    .mx-md-3 {\n        margin-right: 1rem !important\n    }\n\n    .mb-md-3,\n    .my-md-3 {\n        margin-bottom: 1rem !important\n    }\n\n    .ml-md-3,\n    .mx-md-3 {\n        margin-left: 1rem !important\n    }\n\n    .m-md-4 {\n        margin: 1.5rem !important\n    }\n\n    .mt-md-4,\n    .my-md-4 {\n        margin-top: 1.5rem !important\n    }\n\n    .mr-md-4,\n    .mx-md-4 {\n        margin-right: 1.5rem !important\n    }\n\n    .mb-md-4,\n    .my-md-4 {\n        margin-bottom: 1.5rem !important\n    }\n\n    .ml-md-4,\n    .mx-md-4 {\n        margin-left: 1.5rem !important\n    }\n\n    .m-md-5 {\n        margin: 3rem !important\n    }\n\n    .mt-md-5,\n    .my-md-5 {\n        margin-top: 3rem !important\n    }\n\n    .mr-md-5,\n    .mx-md-5 {\n        margin-right: 3rem !important\n    }\n\n    .mb-md-5,\n    .my-md-5 {\n        margin-bottom: 3rem !important\n    }\n\n    .ml-md-5,\n    .mx-md-5 {\n        margin-left: 3rem !important\n    }\n\n    .p-md-0 {\n        padding: 0 !important\n    }\n\n    .pt-md-0,\n    .py-md-0 {\n        padding-top: 0 !important\n    }\n\n    .pr-md-0,\n    .px-md-0 {\n        padding-right: 0 !important\n    }\n\n    .pb-md-0,\n    .py-md-0 {\n        padding-bottom: 0 !important\n    }\n\n    .pl-md-0,\n    .px-md-0 {\n        padding-left: 0 !important\n    }\n\n    .p-md-1 {\n        padding: .25rem !important\n    }\n\n    .pt-md-1,\n    .py-md-1 {\n        padding-top: .25rem !important\n    }\n\n    .pr-md-1,\n    .px-md-1 {\n        padding-right: .25rem !important\n    }\n\n    .pb-md-1,\n    .py-md-1 {\n        padding-bottom: .25rem !important\n    }\n\n    .pl-md-1,\n    .px-md-1 {\n        padding-left: .25rem !important\n    }\n\n    .p-md-2 {\n        padding: .5rem !important\n    }\n\n    .pt-md-2,\n    .py-md-2 {\n        padding-top: .5rem !important\n    }\n\n    .pr-md-2,\n    .px-md-2 {\n        padding-right: .5rem !important\n    }\n\n    .pb-md-2,\n    .py-md-2 {\n        padding-bottom: .5rem !important\n    }\n\n    .pl-md-2,\n    .px-md-2 {\n        padding-left: .5rem !important\n    }\n\n    .p-md-3 {\n        padding: 1rem !important\n    }\n\n    .pt-md-3,\n    .py-md-3 {\n        padding-top: 1rem !important\n    }\n\n    .pr-md-3,\n    .px-md-3 {\n        padding-right: 1rem !important\n    }\n\n    .pb-md-3,\n    .py-md-3 {\n        padding-bottom: 1rem !important\n    }\n\n    .pl-md-3,\n    .px-md-3 {\n        padding-left: 1rem !important\n    }\n\n    .p-md-4 {\n        padding: 1.5rem !important\n    }\n\n    .pt-md-4,\n    .py-md-4 {\n        padding-top: 1.5rem !important\n    }\n\n    .pr-md-4,\n    .px-md-4 {\n        padding-right: 1.5rem !important\n    }\n\n    .pb-md-4,\n    .py-md-4 {\n        padding-bottom: 1.5rem !important\n    }\n\n    .pl-md-4,\n    .px-md-4 {\n        padding-left: 1.5rem !important\n    }\n\n    .p-md-5 {\n        padding: 3rem !important\n    }\n\n    .pt-md-5,\n    .py-md-5 {\n        padding-top: 3rem !important\n    }\n\n    .pr-md-5,\n    .px-md-5 {\n        padding-right: 3rem !important\n    }\n\n    .pb-md-5,\n    .py-md-5 {\n        padding-bottom: 3rem !important\n    }\n\n    .pl-md-5,\n    .px-md-5 {\n        padding-left: 3rem !important\n    }\n\n    .m-md-auto {\n        margin: auto !important\n    }\n\n    .mt-md-auto,\n    .my-md-auto {\n        margin-top: auto !important\n    }\n\n    .mr-md-auto,\n    .mx-md-auto {\n        margin-right: auto !important\n    }\n\n    .mb-md-auto,\n    .my-md-auto {\n        margin-bottom: auto !important\n    }\n\n    .ml-md-auto,\n    .mx-md-auto {\n        margin-left: auto !important\n    }\n}\n\n@media (min-width:992px) {\n    .m-lg-0 {\n        margin: 0 !important\n    }\n\n    .mt-lg-0,\n    .my-lg-0 {\n        margin-top: 0 !important\n    }\n\n    .mr-lg-0,\n    .mx-lg-0 {\n        margin-right: 0 !important\n    }\n\n    .mb-lg-0,\n    .my-lg-0 {\n        margin-bottom: 0 !important\n    }\n\n    .ml-lg-0,\n    .mx-lg-0 {\n        margin-left: 0 !important\n    }\n\n    .m-lg-1 {\n        margin: .25rem !important\n    }\n\n    .mt-lg-1,\n    .my-lg-1 {\n        margin-top: .25rem !important\n    }\n\n    .mr-lg-1,\n    .mx-lg-1 {\n        margin-right: .25rem !important\n    }\n\n    .mb-lg-1,\n    .my-lg-1 {\n        margin-bottom: .25rem !important\n    }\n\n    .ml-lg-1,\n    .mx-lg-1 {\n        margin-left: .25rem !important\n    }\n\n    .m-lg-2 {\n        margin: .5rem !important\n    }\n\n    .mt-lg-2,\n    .my-lg-2 {\n        margin-top: .5rem !important\n    }\n\n    .mr-lg-2,\n    .mx-lg-2 {\n        margin-right: .5rem !important\n    }\n\n    .mb-lg-2,\n    .my-lg-2 {\n        margin-bottom: .5rem !important\n    }\n\n    .ml-lg-2,\n    .mx-lg-2 {\n        margin-left: .5rem !important\n    }\n\n    .m-lg-3 {\n        margin: 1rem !important\n    }\n\n    .mt-lg-3,\n    .my-lg-3 {\n        margin-top: 1rem !important\n    }\n\n    .mr-lg-3,\n    .mx-lg-3 {\n        margin-right: 1rem !important\n    }\n\n    .mb-lg-3,\n    .my-lg-3 {\n        margin-bottom: 1rem !important\n    }\n\n    .ml-lg-3,\n    .mx-lg-3 {\n        margin-left: 1rem !important\n    }\n\n    .m-lg-4 {\n        margin: 1.5rem !important\n    }\n\n    .mt-lg-4,\n    .my-lg-4 {\n        margin-top: 1.5rem !important\n    }\n\n    .mr-lg-4,\n    .mx-lg-4 {\n        margin-right: 1.5rem !important\n    }\n\n    .mb-lg-4,\n    .my-lg-4 {\n        margin-bottom: 1.5rem !important\n    }\n\n    .ml-lg-4,\n    .mx-lg-4 {\n        margin-left: 1.5rem !important\n    }\n\n    .m-lg-5 {\n        margin: 3rem !important\n    }\n\n    .mt-lg-5,\n    .my-lg-5 {\n        margin-top: 3rem !important\n    }\n\n    .mr-lg-5,\n    .mx-lg-5 {\n        margin-right: 3rem !important\n    }\n\n    .mb-lg-5,\n    .my-lg-5 {\n        margin-bottom: 3rem !important\n    }\n\n    .ml-lg-5,\n    .mx-lg-5 {\n        margin-left: 3rem !important\n    }\n\n    .p-lg-0 {\n        padding: 0 !important\n    }\n\n    .pt-lg-0,\n    .py-lg-0 {\n        padding-top: 0 !important\n    }\n\n    .pr-lg-0,\n    .px-lg-0 {\n        padding-right: 0 !important\n    }\n\n    .pb-lg-0,\n    .py-lg-0 {\n        padding-bottom: 0 !important\n    }\n\n    .pl-lg-0,\n    .px-lg-0 {\n        padding-left: 0 !important\n    }\n\n    .p-lg-1 {\n        padding: .25rem !important\n    }\n\n    .pt-lg-1,\n    .py-lg-1 {\n        padding-top: .25rem !important\n    }\n\n    .pr-lg-1,\n    .px-lg-1 {\n        padding-right: .25rem !important\n    }\n\n    .pb-lg-1,\n    .py-lg-1 {\n        padding-bottom: .25rem !important\n    }\n\n    .pl-lg-1,\n    .px-lg-1 {\n        padding-left: .25rem !important\n    }\n\n    .p-lg-2 {\n        padding: .5rem !important\n    }\n\n    .pt-lg-2,\n    .py-lg-2 {\n        padding-top: .5rem !important\n    }\n\n    .pr-lg-2,\n    .px-lg-2 {\n        padding-right: .5rem !important\n    }\n\n    .pb-lg-2,\n    .py-lg-2 {\n        padding-bottom: .5rem !important\n    }\n\n    .pl-lg-2,\n    .px-lg-2 {\n        padding-left: .5rem !important\n    }\n\n    .p-lg-3 {\n        padding: 1rem !important\n    }\n\n    .pt-lg-3,\n    .py-lg-3 {\n        padding-top: 1rem !important\n    }\n\n    .pr-lg-3,\n    .px-lg-3 {\n        padding-right: 1rem !important\n    }\n\n    .pb-lg-3,\n    .py-lg-3 {\n        padding-bottom: 1rem !important\n    }\n\n    .pl-lg-3,\n    .px-lg-3 {\n        padding-left: 1rem !important\n    }\n\n    .p-lg-4 {\n        padding: 1.5rem !important\n    }\n\n    .pt-lg-4,\n    .py-lg-4 {\n        padding-top: 1.5rem !important\n    }\n\n    .pr-lg-4,\n    .px-lg-4 {\n        padding-right: 1.5rem !important\n    }\n\n    .pb-lg-4,\n    .py-lg-4 {\n        padding-bottom: 1.5rem !important\n    }\n\n    .pl-lg-4,\n    .px-lg-4 {\n        padding-left: 1.5rem !important\n    }\n\n    .p-lg-5 {\n        padding: 3rem !important\n    }\n\n    .pt-lg-5,\n    .py-lg-5 {\n        padding-top: 3rem !important\n    }\n\n    .pr-lg-5,\n    .px-lg-5 {\n        padding-right: 3rem !important\n    }\n\n    .pb-lg-5,\n    .py-lg-5 {\n        padding-bottom: 3rem !important\n    }\n\n    .pl-lg-5,\n    .px-lg-5 {\n        padding-left: 3rem !important\n    }\n\n    .m-lg-auto {\n        margin: auto !important\n    }\n\n    .mt-lg-auto,\n    .my-lg-auto {\n        margin-top: auto !important\n    }\n\n    .mr-lg-auto,\n    .mx-lg-auto {\n        margin-right: auto !important\n    }\n\n    .mb-lg-auto,\n    .my-lg-auto {\n        margin-bottom: auto !important\n    }\n\n    .ml-lg-auto,\n    .mx-lg-auto {\n        margin-left: auto !important\n    }\n}\n\n@media (min-width:1200px) {\n    .m-xl-0 {\n        margin: 0 !important\n    }\n\n    .mt-xl-0,\n    .my-xl-0 {\n        margin-top: 0 !important\n    }\n\n    .mr-xl-0,\n    .mx-xl-0 {\n        margin-right: 0 !important\n    }\n\n    .mb-xl-0,\n    .my-xl-0 {\n        margin-bottom: 0 !important\n    }\n\n    .ml-xl-0,\n    .mx-xl-0 {\n        margin-left: 0 !important\n    }\n\n    .m-xl-1 {\n        margin: .25rem !important\n    }\n\n    .mt-xl-1,\n    .my-xl-1 {\n        margin-top: .25rem !important\n    }\n\n    .mr-xl-1,\n    .mx-xl-1 {\n        margin-right: .25rem !important\n    }\n\n    .mb-xl-1,\n    .my-xl-1 {\n        margin-bottom: .25rem !important\n    }\n\n    .ml-xl-1,\n    .mx-xl-1 {\n        margin-left: .25rem !important\n    }\n\n    .m-xl-2 {\n        margin: .5rem !important\n    }\n\n    .mt-xl-2,\n    .my-xl-2 {\n        margin-top: .5rem !important\n    }\n\n    .mr-xl-2,\n    .mx-xl-2 {\n        margin-right: .5rem !important\n    }\n\n    .mb-xl-2,\n    .my-xl-2 {\n        margin-bottom: .5rem !important\n    }\n\n    .ml-xl-2,\n    .mx-xl-2 {\n        margin-left: .5rem !important\n    }\n\n    .m-xl-3 {\n        margin: 1rem !important\n    }\n\n    .mt-xl-3,\n    .my-xl-3 {\n        margin-top: 1rem !important\n    }\n\n    .mr-xl-3,\n    .mx-xl-3 {\n        margin-right: 1rem !important\n    }\n\n    .mb-xl-3,\n    .my-xl-3 {\n        margin-bottom: 1rem !important\n    }\n\n    .ml-xl-3,\n    .mx-xl-3 {\n        margin-left: 1rem !important\n    }\n\n    .m-xl-4 {\n        margin: 1.5rem !important\n    }\n\n    .mt-xl-4,\n    .my-xl-4 {\n        margin-top: 1.5rem !important\n    }\n\n    .mr-xl-4,\n    .mx-xl-4 {\n        margin-right: 1.5rem !important\n    }\n\n    .mb-xl-4,\n    .my-xl-4 {\n        margin-bottom: 1.5rem !important\n    }\n\n    .ml-xl-4,\n    .mx-xl-4 {\n        margin-left: 1.5rem !important\n    }\n\n    .m-xl-5 {\n        margin: 3rem !important\n    }\n\n    .mt-xl-5,\n    .my-xl-5 {\n        margin-top: 3rem !important\n    }\n\n    .mr-xl-5,\n    .mx-xl-5 {\n        margin-right: 3rem !important\n    }\n\n    .mb-xl-5,\n    .my-xl-5 {\n        margin-bottom: 3rem !important\n    }\n\n    .ml-xl-5,\n    .mx-xl-5 {\n        margin-left: 3rem !important\n    }\n\n    .p-xl-0 {\n        padding: 0 !important\n    }\n\n    .pt-xl-0,\n    .py-xl-0 {\n        padding-top: 0 !important\n    }\n\n    .pr-xl-0,\n    .px-xl-0 {\n        padding-right: 0 !important\n    }\n\n    .pb-xl-0,\n    .py-xl-0 {\n        padding-bottom: 0 !important\n    }\n\n    .pl-xl-0,\n    .px-xl-0 {\n        padding-left: 0 !important\n    }\n\n    .p-xl-1 {\n        padding: .25rem !important\n    }\n\n    .pt-xl-1,\n    .py-xl-1 {\n        padding-top: .25rem !important\n    }\n\n    .pr-xl-1,\n    .px-xl-1 {\n        padding-right: .25rem !important\n    }\n\n    .pb-xl-1,\n    .py-xl-1 {\n        padding-bottom: .25rem !important\n    }\n\n    .pl-xl-1,\n    .px-xl-1 {\n        padding-left: .25rem !important\n    }\n\n    .p-xl-2 {\n        padding: .5rem !important\n    }\n\n    .pt-xl-2,\n    .py-xl-2 {\n        padding-top: .5rem !important\n    }\n\n    .pr-xl-2,\n    .px-xl-2 {\n        padding-right: .5rem !important\n    }\n\n    .pb-xl-2,\n    .py-xl-2 {\n        padding-bottom: .5rem !important\n    }\n\n    .pl-xl-2,\n    .px-xl-2 {\n        padding-left: .5rem !important\n    }\n\n    .p-xl-3 {\n        padding: 1rem !important\n    }\n\n    .pt-xl-3,\n    .py-xl-3 {\n        padding-top: 1rem !important\n    }\n\n    .pr-xl-3,\n    .px-xl-3 {\n        padding-right: 1rem !important\n    }\n\n    .pb-xl-3,\n    .py-xl-3 {\n        padding-bottom: 1rem !important\n    }\n\n    .pl-xl-3,\n    .px-xl-3 {\n        padding-left: 1rem !important\n    }\n\n    .p-xl-4 {\n        padding: 1.5rem !important\n    }\n\n    .pt-xl-4,\n    .py-xl-4 {\n        padding-top: 1.5rem !important\n    }\n\n    .pr-xl-4,\n    .px-xl-4 {\n        padding-right: 1.5rem !important\n    }\n\n    .pb-xl-4,\n    .py-xl-4 {\n        padding-bottom: 1.5rem !important\n    }\n\n    .pl-xl-4,\n    .px-xl-4 {\n        padding-left: 1.5rem !important\n    }\n\n    .p-xl-5 {\n        padding: 3rem !important\n    }\n\n    .pt-xl-5,\n    .py-xl-5 {\n        padding-top: 3rem !important\n    }\n\n    .pr-xl-5,\n    .px-xl-5 {\n        padding-right: 3rem !important\n    }\n\n    .pb-xl-5,\n    .py-xl-5 {\n        padding-bottom: 3rem !important\n    }\n\n    .pl-xl-5,\n    .px-xl-5 {\n        padding-left: 3rem !important\n    }\n\n    .m-xl-auto {\n        margin: auto !important\n    }\n\n    .mt-xl-auto,\n    .my-xl-auto {\n        margin-top: auto !important\n    }\n\n    .mr-xl-auto,\n    .mx-xl-auto {\n        margin-right: auto !important\n    }\n\n    .mb-xl-auto,\n    .my-xl-auto {\n        margin-bottom: auto !important\n    }\n\n    .ml-xl-auto,\n    .mx-xl-auto {\n        margin-left: auto !important\n    }\n}\n\n.text-monospace {\n    font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace\n}\n\n.text-justify {\n    text-align: justify !important\n}\n\n.text-nowrap {\n    white-space: nowrap !important\n}\n\n.text-truncate {\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap\n}\n\n.text-left {\n    text-align: left !important\n}\n\n.text-right {\n    text-align: right !important\n}\n\n.text-center {\n    text-align: center !important\n}\n\n@media (min-width:576px) {\n    .text-sm-left {\n        text-align: left !important\n    }\n\n    .text-sm-right {\n        text-align: right !important\n    }\n\n    .text-sm-center {\n        text-align: center !important\n    }\n}\n\n@media (min-width:768px) {\n    .text-md-left {\n        text-align: left !important\n    }\n\n    .text-md-right {\n        text-align: right !important\n    }\n\n    .text-md-center {\n        text-align: center !important\n    }\n}\n\n@media (min-width:992px) {\n    .text-lg-left {\n        text-align: left !important\n    }\n\n    .text-lg-right {\n        text-align: right !important\n    }\n\n    .text-lg-center {\n        text-align: center !important\n    }\n}\n\n@media (min-width:1200px) {\n    .text-xl-left {\n        text-align: left !important\n    }\n\n    .text-xl-right {\n        text-align: right !important\n    }\n\n    .text-xl-center {\n        text-align: center !important\n    }\n}\n\n.text-lowercase {\n    text-transform: lowercase !important\n}\n\n.text-uppercase {\n    text-transform: uppercase !important\n}\n\n.text-capitalize {\n    text-transform: capitalize !important\n}\n\n.font-weight-light {\n    font-weight: 300 !important\n}\n\n.font-weight-normal {\n    font-weight: 400 !important\n}\n\n.font-weight-bold {\n    font-weight: 700 !important\n}\n\n.font-italic {\n    font-style: italic !important\n}\n\n.text-white {\n    color: #fff !important\n}\n\n.text-primary {\n    color: #007bff !important\n}\n\na.text-primary:focus,\na.text-primary:hover {\n    color: #0062cc !important\n}\n\n.text-secondary {\n    color: #6c757d !important\n}\n\na.text-secondary:focus,\na.text-secondary:hover {\n    color: #545b62 !important\n}\n\n.text-success {\n    color: #28a745 !important\n}\n\na.text-success:focus,\na.text-success:hover {\n    color: #1e7e34 !important\n}\n\n.text-info {\n    color: #17a2b8 !important\n}\n\na.text-info:focus,\na.text-info:hover {\n    color: #117a8b !important\n}\n\n.text-warning {\n    color: #ffc107 !important\n}\n\na.text-warning:focus,\na.text-warning:hover {\n    color: #d39e00 !important\n}\n\n.text-danger {\n    color: #dc3545 !important\n}\n\na.text-danger:focus,\na.text-danger:hover {\n    color: #bd2130 !important\n}\n\n.text-light {\n    color: #f8f9fa !important\n}\n\na.text-light:focus,\na.text-light:hover {\n    color: #dae0e5 !important\n}\n\n.text-dark {\n    color: #343a40 !important\n}\n\na.text-dark:focus,\na.text-dark:hover {\n    color: #1d2124 !important\n}\n\n.text-body {\n    color: #212529 !important\n}\n\n.text-muted {\n    color: #6c757d !important\n}\n\n.text-black-50 {\n    color: rgba(0, 0, 0, .5) !important\n}\n\n.text-white-50 {\n    color: rgba(255, 255, 255, .5) !important\n}\n\n.text-hide {\n    font: 0/0 a;\n    color: transparent;\n    text-shadow: none;\n    background-color: transparent;\n    border: 0\n}\n\n.visible {\n    visibility: visible !important\n}\n\n.invisible {\n    visibility: hidden !important\n}\n\n@media print {\n\n    *,\n    ::after,\n    ::before {\n        text-shadow: none !important;\n        box-shadow: none !important\n    }\n\n    a:not(.btn) {\n        text-decoration: underline\n    }\n\n    abbr[title]::after {\n        content: \" (\" attr(title) \")\"\n    }\n\n    pre {\n        white-space: pre-wrap !important\n    }\n\n    blockquote,\n    pre {\n        border: 1px solid #adb5bd;\n        page-break-inside: avoid\n    }\n\n    thead {\n        display: table-header-group\n    }\n\n    img,\n    tr {\n        page-break-inside: avoid\n    }\n\n    h2,\n    h3,\n    p {\n        orphans: 3;\n        widows: 3\n    }\n\n    h2,\n    h3 {\n        page-break-after: avoid\n    }\n\n    @page {\n        size: a3\n    }\n\n    body {\n        min-width: 992px !important\n    }\n\n    .container {\n        min-width: 992px !important\n    }\n\n    .navbar {\n        display: none\n    }\n\n    .badge {\n        border: 1px solid #000\n    }\n\n    .table {\n        border-collapse: collapse !important\n    }\n\n    .table td,\n    .table th {\n        background-color: #fff !important\n    }\n\n    .table-bordered td,\n    .table-bordered th {\n        border: 1px solid #dee2e6 !important\n    }\n\n    .table-dark {\n        color: inherit\n    }\n\n    .table-dark tbody+tbody,\n    .table-dark td,\n    .table-dark th,\n    .table-dark thead th {\n        border-color: #dee2e6\n    }\n\n    .table .thead-dark th {\n        color: inherit;\n        border-color: #dee2e6\n    }\n}\n\n/*# sourceMappingURL=bootstrap.min.css.map */  \n    \n@media only screen and (min-width: 2160px) {\n  #showcase {\n    padding-bottom: 530px; }\n  #showcase .showcase-area {\n    width: 98%; }\n  #showcase .showcase-slider .screenshot-thumb p {\n    color: #fff;\n    font-size: 20px;\n    font-style: italic;\n    margin-bottom: 10px; }\n  #showcase .showcase-slider .screenshot-thumb .fancy-table {\n    padding-top: 10% !important; }\n  #showcase .showcase-slider .screenshot-thumb > .hover-content {\n    width: 89% !important;\n    height: 89% !important; }\n  .hero-area .overlay :nth-child(1) {\n    height: 294px !important; } }\n\n@media screen and (min-width: 1920px) {\n  .hero-area .contents {\n    padding: 280px 0 390px; }\n  .hero-area .overlay :nth-child(1) {\n    height: 250px; }\n  #showcase .showcase-slider .screenshot-thumb > .hover-content {\n    width: 85%; }\n  #showcase .showcase-slider .screenshot-thumb .fancy-table {\n    padding-top: 10%; } }\n\n@media (min-width: 768px) and (max-width: 1024px) {\n  .hero-area .contents h2 {\n    font-size: 38px; }\n  .navbar-expand-md .navbar-nav .nav-link {\n    padding: 12px 5px;\n    font-size: 13px;\n    margin-left: 15px; }\n  .hero-area .contents {\n    padding: 210px 0 280px; }\n  #business-plan .business-item-info h3 {\n    font-size: 28px; }\n  #business-plan .business-item-info p {\n    font-size: 13px;\n    margin-bottom: 20px; }\n  .section {\n    padding: 80px 0px; }\n  #business-plan {\n    padding-bottom: 80px; }\n  .feature-info {\n    width: 60%; }\n  #features .feature-item {\n    padding: 15px; }\n  #features .feature-item h4 {\n    margin-bottom: 10px; }\n  #showcase .gradient-bg {\n    padding: 80px 0px 60px 0px; }\n  #pricing {\n    padding-bottom: 80px; }\n  #testimonial #client-testimonial .content-inner p {\n    font-size: 18px;\n    color: #5e629c;\n    font-style: italic;\n    line-height: 35px; }\n  #team .single-team .team-social-icons {\n    bottom: 27%; }\n  #blog .blog-item-wrapper h3 {\n    font-size: 16px;\n    line-height: 23px; }\n  #footer-Content h3.block-title {\n    font-size: 16px; }\n  #footer-Content ul.menu li a {\n    font-size: 14px;\n    line-height: 31px; }\n  #footer-Content {\n    padding-top: 80px; }\n  #footer-Content .copyright {\n    margin-top: 80px; }\n  .hero-area .contents h2 {\n    color: #fff;\n    font-size: 40px;\n    font-weight: 600;\n    line-height: 60px;\n    margin-bottom: 20px; }\n  #testimonial .testimonial-area {\n    width: 98%; }\n  #showcase .showcase-slider .screenshot-thumb > .hover-content {\n    height: 80%;\n    width: 80%; }\n  #showcase .showcase-slider .screenshot-thumb .fancy-table {\n    padding-top: 10%; }\n  #footer-Content h3.block-title {\n    margin-bottom: 20px;\n    margin-top: 20px; } }\n\n@media (min-width: 768px) and (max-width: 991px) {\n  .hero-area .contents h2 {\n    color: #fff;\n    font-size: 40px !important; }\n  .navbar-expand-md .navbar-nav .nav-link {\n    padding: 12px 0px;\n    font-size: 13px;\n    margin-left: 12px; }\n  .hero-area .contents {\n    padding: 200px 0 0px; }\n  #features .feature-item p {\n    font-size: 14px;\n    display: block;\n    line-height: 25px; }\n  #pricing .pricing-table {\n    padding: 30px 15px; }\n  #pricing .pricing-table h1 span {\n    left: 10%; }\n  #team .single-team, .blog-item-wrapper, .services-item {\n    margin-bottom: 20px; }\n  .contact-img img {\n    max-width: 100%;\n    display: block;\n    margin: 0px auto; }\n  #footer-Content .footer-logo img {\n    padding-top: 0; }\n  #footer-Content .copyright p {\n    color: #2C6145;\n    font-size: 14px; }\n  .hero-area .intro-img {\n    padding: 100px 0 0px; }\n  .blog-hero-area .contents h2 {\n    font-size: 36px; }\n  .btn-singin {\n    background: #1679B7;\n    color: #fff;\n    padding: 10px 14px;\n    margin-left: 12px;\n    box-shadow: 0px 8px 9px 0px rgba(96, 94, 94, 0.17);\n    font-size: 11px; }\n  .btn-light-singin {\n    background: #1679B7;\n    color: #fff;\n    padding: 10px 14px;\n    margin-left: 12px;\n    box-shadow: 0px 8px 9px 0px rgba(96, 94, 94, 0.17);\n    font-size: 11px; }\n  .navbar-expand-md .navbar-nav .nav-link {\n    padding: 12px 0px;\n    font-size: 13px;\n    margin-left: 9px; }\n  .pt-70 {\n    padding-top: 20px; }\n  .showcase-area .pr-0, .px-0 {\n    padding-right: 15px !important; }\n  #showcase {\n    padding-bottom: 275px; }\n  #testimonial .testimonial-area {\n    width: 98%; } }\n\n@media only screen and (max-width: 767px) {\n  .bg-inverse {\n    background: #2C6145; }\n  .navbar-expand-md .navbar-brand, .navbar-expand-md .navbar-toggler {\n    margin: 6px 15px; }\n  .bg-inverse {\n    background: #2C6145; }\n  .navbar {\n    padding: 0; }\n  .navbar-brand img {\n    width: 100px; } }\n\n@media (min-width: 320px) and (max-width: 480px) {\n  .bg-inverse {\n    background: #2C6145; }\n  .navbar {\n    padding: 0; }\n  .navbar-brand img {\n    width: 100px; }\n  .navbar-expand-md .navbar-brand, .navbar-expand-md .navbar-toggler {\n    margin: 6px 15px; }\n  .btn-singin {\n    background: transparent;\n    color: #fff;\n    padding: 10px 23px;\n    margin-left: 0;\n    box-shadow: 0px 0px 0px 0px rgba(96, 94, 94, 0.17); }\n  .hero-area .contents h2 {\n    font-size: 20px;\n    line-height: 35px;\n    margin-bottom: 10px; }\n  .hero-area .contents {\n    padding: 200px 0 50px; }\n  .hero-area .contents p {\n    color: #fff;\n    font-size: 14px;\n    line-height: 26px; }\n  .hero-area .contents .btn {\n    margin-top: 30px;\n    margin-right: 4px;\n    text-transform: uppercase;\n    width: 125px;\n    height: 45px;\n    padding: 15px 14px;\n    font-size: 12px; }\n  .hero-area .contents .btn-border {\n    border: 1px solid #fff;\n    color: #fff;\n    -webkit-box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11), 0 1px 3px rgba(0, 0, 0, 0.08);\n    box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11), 0 1px 3px rgba(0, 0, 0, 0.08);\n    width: 122px;\n    height: 45px;\n    padding: 15px 15px; }\n  .hero-area .intro-img {\n    padding: 30px 0 0px; }\n  .section {\n    padding: 70px 0px; }\n  #services .services-item {\n    padding: 30px 15px;\n    margin-bottom: 15px; }\n  #business-plane .business-item-info h3 {\n    font-size: 25px; }\n  .section-header .section-title {\n    font-size: 25px; }\n  #services .services-item p {\n    font-size: 14px; }\n  #business-plane .business-item-info p {\n    font-size: 14px;\n    margin-bottom: 20px; }\n  .section-header .desc-text p {\n    font-size: 14px;\n    color: #5e629c;\n    line-height: 24px;\n    margin-bottom: 0; }\n  #features .feature-item {\n    padding: 10px; }\n  #features .feature-item .feature-icon {\n    margin-bottom: 20px; }\n  #features .feature-item p {\n    font-size: 15px;\n    display: block; }\n  .showcase-area .pr-0, .px-0 {\n    padding-right: 15px !important; }\n  #showcase {\n    padding-bottom: 250px; }\n  #pricing .pricing-table h1 span {\n    left: 4%; }\n  #pricing .pricing-table {\n    margin-bottom: 15px; }\n  #testimonial #client-testimonial {\n    padding: 30px 10px; }\n  #testimonial #client-testimonial .content-inner p {\n    font-size: 15px;\n    line-height: 22px; }\n  #testimonial #client-testimonial .author-info h5 {\n    color: #151948;\n    font-size: 15px; }\n  #testimonial #client-testimonial h5 span {\n    font-size: 13px;\n    color: #5e629c;\n    font-style: italic; }\n  #testimonial .testimonial-area {\n    position: inherit;\n    width: 100%;\n    z-index: 12;\n    top: 0;\n    margin: 0px auto; }\n  #testimonial {\n    margin-bottom: 0;\n    background-size: cover; }\n  #team .single-team {\n    margin-bottom: 15px; }\n  #team .single-team .team-social-icons {\n    bottom: 22%; }\n  #blog .blog-item-wrapper .blog-item-text {\n    padding: 20px 15px 15px 15px; }\n  #blog .blog-item-wrapper h3 {\n    font-size: 18px;\n    font-weight: 600;\n    line-height: 25px;\n    margin-bottom: 12px; }\n  #blog .blog-item-wrapper {\n    margin-bottom: 15px; }\n  #footer-Content .copyright p {\n    color: #2C6145;\n    font-size: 12px; }\n  #footer-Content ul.menu li a {\n    color: #e2e2e2;\n    font-size: 14px;\n    font-weight: 400;\n    line-height: 30px; }\n  #footer-Content h3.block-title {\n    color: #fff;\n    font-size: 18px;\n    font-weight: 600;\n    margin-bottom: 15px;\n    margin-top: 15px; }\n  #footer-Content .footer-logo img {\n    padding-top: 0; }\n  #footer-Content {\n    padding-top: 30px;\n    background: #2c3643; }\n  #footer-Content .footer-logo img {\n    padding-top: 0;\n    width: 40%; }\n  #blog .blog-item-wrapper .author {\n    border-top: 1px solid #ddd;\n    padding: 18px 10px 15px 10px; }\n  .owl-theme .owl-controls {\n    display: none !important; }\n  #business-plane {\n    padding-bottom: 40px; }\n  #showcase .showcase-area {\n    width: 90%; }\n  #light-featured .light-feature-item .light-feature-icon {\n    margin-bottom: 20px; }\n  #light-featured .right-feature-info h3 {\n    font-size: 25px;\n    line-height: 35px; }\n  #light-featured .light-feature-item .light-feature-info p {\n    font-size: 15px;\n    display: block; }\n  #download-app .download-info h3 {\n    font-size: 25px;\n    line-height: 38px; }\n  #download-app .download-info .downlaod-btn a.play-store {\n    width: 195px;\n    height: 65px;\n    line-height: 18px;\n    margin-right: 0;\n    margin-bottom: 20px; }\n  .download-statatics {\n    text-align: center;\n    margin-bottom: 15px; }\n  #client-talk .client-words {\n    padding: 20px;\n    margin-bottom: 15px; }\n  #footer-Content .copyright {\n    margin-top: 30px; }\n  .blog-hero-area .contents h2 {\n    color: #fff;\n    font-size: 25px; }\n  .blog-hero-area .contents {\n    padding: 100px 0 90px; }\n  #brand-area .brand-subtitle h5 {\n    font-size: 18px; }\n  #brand-area {\n    padding: 50px 0px 60px 0; }\n  #light-featured {\n    padding-bottom: 50px;\n    padding-top: 100px; }\n  #light-featured .light-feature-item .light-feature-info h4 {\n    font-size: 18px; }\n  #light-featured .right-feature-info h3 {\n    font-size: 20px;\n    line-height: 30px; }\n  #light-featured .right-feature-info p {\n    font-size: 15px; }\n  #showcase .showcase-slider .screenshot-thumb .fancy-table {\n    padding-top: 10%; }\n  #showcase .showcase-slider .screenshot-thumb > .hover-content {\n    height: 81%;\n    width: 80%; }\n  #footer-Content h3.block-title {\n    margin-bottom: 18px;\n    margin-top: 15px; }\n  .back-to-top {\n    display: none !important; } }\n\n@media (min-width: 375px) and (max-width: 667px) {\n  #showcase .showcase-slider .screenshot-thumb > .hover-content {\n    height: 83%;\n    width: 83%; }\n  #showcase .showcase-slider .screenshot-thumb .fancy-table {\n    padding-top: 10%; }\n  #pricing .pricing-table h1 span {\n    left: 16%; } }\n\n@media (min-width: 414px) and (max-width: 736px) {\n  #showcase .showcase-slider .screenshot-thumb .fancy-table {\n    padding-top: 10%; }\n  #showcase .showcase-slider .screenshot-thumb > .hover-content {\n    height: 85%;\n    width: 85%; }\n  #pricing .pricing-table h1 span {\n    left: 20%; } }\n\n@media only screen and (min-width: 992px) and (max-width: 1280px) {\n  .navbar-expand-md .navbar-nav .nav-link {\n    font-size: 15px;\n    padding: 8px 0px;\n    margin-left: 18px; }\n  .hero-area .contents h2 {\n    font-size: 38px; }\n  #light-featured .right-feature-info h3 {\n    font-size: 29px;\n    font-weight: 600;\n    margin-bottom: 20px;\n    line-height: 40px;\n    margin-top: 0; }\n  #light-featured .light-feature-item .light-feature-icon {\n    margin-bottom: 15px; }\n  #light-featured {\n    padding-bottom: 100px;\n    padding-top: 100px; }\n  .section {\n    padding: 100px 0px; }\n  .feature-info {\n    width: 80%; }\n  .feature-info {\n    width: 68%; }\n  #team .single-team .team-social-icons {\n    bottom: 27%; }\n  #blog .blog-item-wrapper .blog-item-text {\n    padding: 20px 15px 15px 15px; }\n  #blog .blog-item-wrapper h3 {\n    font-size: 18px; }\n  #blog .blog-item-wrapper a.read-more {\n    font-size: 12px; }\n  #footer-Content {\n    padding-top: 100px; }\n  #footer-Content .copyright {\n    margin-top: 100px; }\n  .hero-area .contents p {\n    color: #fff;\n    font-size: 16px;\n    line-height: 26px; }\n  .hero-area2 .contents p {\n    color: #fff;\n    font-size: 16px;\n    line-height: 26px; }\n  #business-plane .business-item-info h3 {\n    font-size: 29px; }\n  .showcase-area .pr-0, .px-0 {\n    padding-right: 15px !important; }\n  #showcase {\n    padding-bottom: 280px; }\n  #pricing .pricing-table h1 span {\n    left: 10%; }\n  #pricing2 .pricing-table h1 span {\n    left: 10%; }\n  #testimonial #client-testimonial .content-inner p {\n    font-size: 20px;\n    color: #5e629c;\n    font-style: italic;\n    line-height: 33px; } }\n\n/* \n * \tCore Owl Carousel CSS File\n *\tv1.3.3\n */\n\n/* clearfix */\n.owl-carousel .owl-wrapper:after {\n\tcontent: \".\";\n\tdisplay: block;\n\tclear: both;\n\tvisibility: hidden;\n\tline-height: 0;\n\theight: 0;\n}\n\n/* display none until init */\n.owl-carousel {\n\tdisplay: none;\n\tposition: relative;\n\twidth: 100%;\n\t-ms-touch-action: pan-y;\n}\n\n.owl-carousel .owl-wrapper {\n\tdisplay: none;\n\tposition: relative;\n\t-webkit-transform: translate3d(0px, 0px, 0px);\n}\n\n.owl-carousel .owl-wrapper-outer {\n\toverflow: hidden;\n\tposition: relative;\n\twidth: 100%;\n}\n\n.owl-carousel .owl-wrapper-outer.autoHeight {\n\t-webkit-transition: height 500ms ease-in-out;\n\t-moz-transition: height 500ms ease-in-out;\n\t-ms-transition: height 500ms ease-in-out;\n\t-o-transition: height 500ms ease-in-out;\n\ttransition: height 500ms ease-in-out;\n}\n\n.owl-carousel .owl-item {\n\tfloat: left;\n}\n\n.owl-controls .owl-page,\n.owl-controls .owl-buttons div {\n\tcursor: pointer;\n}\n\n.owl-controls {\n\t-webkit-user-select: none;\n\t-khtml-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\t-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n/* mouse grab icon */\n.grabbing {\n\tcursor: url(grabbing.png) 8 8, move;\n}\n\n/* fix */\n.owl-carousel .owl-wrapper,\n.owl-carousel .owl-item {\n\t-webkit-backface-visibility: hidden;\n\t-moz-backface-visibility: hidden;\n\t-ms-backface-visibility: hidden;\n\t-webkit-transform: translate3d(0, 0, 0);\n\t-moz-transform: translate3d(0, 0, 0);\n\t-ms-transform: translate3d(0, 0, 0);\n\tpadding: 0px 30px 0px 30px;\n}\n\n/* Feel free to change duration  */\n.animated {\n\t-webkit-animation-duration: 1000 ms;\n\tanimation-duration: 1000 ms;\n\t-webkit-animation-fill-mode: both;\n\tanimation-fill-mode: both;\n}\n\n/* .owl-animated-out - only for current item */\n/* This is very important class. Use z-index if you want move Out item above In item */\n.owl-animated-out {\n\tz-index: 1\n}\n\n/* .owl-animated-in - only for upcoming item\n/* This is very important class. Use z-index if you want move In item above Out item */\n.owl-animated-in {\n\tz-index: 0\n}\n\n/* .fadeOut is style taken from Animation.css and this is how it looks in owl.carousel.css:  */\n.fadeOut {\n\t-webkit-animation-name: fadeOut;\n\tanimation-name: fadeOut;\n}\n\n@-webkit-keyframes fadeOut {\n\t0% {\n\t\topacity: 1;\n\t}\n\n\t100% {\n\t\topacity: 0;\n\t}\n}\n\n@keyframes fadeOut {\n\t0% {\n\t\topacity: 1;\n\t}\n\n\t100% {\n\t\topacity: 0;\n\t}\n}\n\u003c/style>\n\n\u003c/head>\n\n\u003cbody>\n  \u003c!-- Header Section Start -->\n  \u003cheader id=\"home\" class=\"hero-area\">\n    \u003cdiv class=\"overlay\">\n    \u003c/div>\n    \u003cnav class=\"navbar navbar-expand-md bg-inverse fixed-top scrolling-navbar\">\n      \u003cdiv class=\"container\">\n        \u003ca href=\"https://developer.onetrust.com/onetrust\" class=\"navbar-brand\">\u003cimg width=\"200px\" src=\"https://files.readme.io/0459ab07c12f3bd23da65e2652e71cb7def368d1fa9a127aa83145dbe79f3dff-ot-logo-lockup-white.svg\" alt=\"\">\u003c/a>\n        \u003cbutton class=\"navbar-toggler\" type=\"button\" data-toggle=\"collapse\" data-target=\"#navbarCollapse\"\n          aria-controls=\"navbarCollapse\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n          \u003ci class=\"lni lni-menu\">\u003c/i>        \u003c/button>\n        \u003cdiv class=\"collapse navbar-collapse\" id=\"navbarCollapse\">\n          \u003cul class=\"navbar-nav mr-auto w-100 justify-content-end\">\n            \u003cli class=\"nav-item\">\n              \u003ca class=\"nav-link page-scroll\" href=\"https://developer.onetrust.com/onetrust/reference\">APIs\u003c/a>\n            \u003c/li>\n            \u003cli class=\"nav-item\">\n              \u003ca class=\"nav-link page-scroll\" href=\"https://developer.onetrust.com/onetrust/docs\">SDKs\u003c/a>\n            \u003c/li>\n            \u003cli class=\"nav-item\">\n              \u003ca class=\"nav-link page-scroll\" href=\"https://developer.onetrust.com/onetrust/recipes\">Recipes\u003c/a>\n            \u003c/li>\n            \u003cli class=\"nav-item\">\n              \u003ca class=\"nav-link page-scroll\" href=\"https://developer.onetrust.com/onetrust/changelog\">Changelog\u003c/a>\n            \u003c/li>\n            \u003cli class=\"nav-item\">\n              \u003ca class=\"nav-link page-scroll\" href=\"https://developer.onetrust.com/onetrust/page/partners\">Technology Partners\u003c/a>\n            \u003c/li>\n            \u003cli class=\"nav-item\">\n              \u003ca class=\"nav-link page-scroll\" href=\"https://my.onetrust.com/s\">myOneTrust\u003c/a>\n            \u003c/li>\n            \u003cli class=\"nav-item\">\n              \u003ca class=\"nav-link page-scroll\" href=\"https://my.onetrust.com/s/group/0F91Q000000hGyPSAU\">Developer\n                Forum\u003c/a>\n            \u003c/li>\n            \u003cli hidden class=\"nav-item\">\n              \u003ca class=\"btn btn-singin\" href=\"https://developer.onetrust.com/onetrust\">Log In\u003c/a>\n            \u003c/li>\n          \u003c/ul>\n        \u003c/div>\n      \u003c/div>\n    \u003c/nav>\n    \u003cdiv class=\"container\">\n      \u003cdiv class=\"row space-100\">\n        \u003cdiv class=\"col-lg-6 col-md-12 col-xs-12\">\n          \u003cdiv class=\"contents\">\n            \u003ch2 class=\"head-title\">Welcome to the OneTrust Developer Portal!\u003c/h2>\n            \u003cp>The OneTrust Developer Portal allows you to leverage APIs and SDKs to seamlessly integrate external\n              systems and streamline the flow of data with the OneTrust Platform.\u003c/p>\n          \u003c/div>\n        \u003c/div>\n        \u003cdiv class=\"col-lg-6 col-md-12 col-xs-12 p-0\">\n          \u003cdiv class=\"intro-img\">\n            \u003cimg src=\"https://files.readme.io/2ba63e7e6b9148487dd574ce2ba6710d4e5c71913dbe0a75c792e8b3bcd0bd01-ot-graphic-hero-dev-portal_1.png\" alt=\"Hero Image\">\n          \u003c/div>\n        \u003c/div>\n      \u003c/div>\n    \u003c/div>\n  \u003c/header>\n  \u003c!-- Header Section End -->\n\n\n  \u003c!-- Services Section Start -->\n  \u003csection id=\"services\" class=\"section\">\n    \u003cdiv class=\"container\">\n      \u003cdiv class=\"row\">\n        \u003c!-- Start Col -->\n        \u003cdiv class=\"col-lg-4 col-md-6 col-xs-12\">\n          \u003ca href=\"https://developer.onetrust.com/onetrust/reference\">\n            \u003cdiv class=\"services-item text-center\">\n              \u003cdiv class=\"icon\">\n                \u003ci class=\"lni lni-code\">\u003c/i>\n              \u003c/div>\n              \u003ch4>API Reference\u003c/h4>\n              \u003cp>Explore APIs that you can use to integrate seamlessly into the OneTrust platform.\u003c/p>\n            \u003c/div>\n          \u003c/a>\n        \u003c/div>\n        \u003c!-- End Col -->\n        \u003c!-- Start Col -->\n        \u003cdiv class=\"col-lg-4 col-md-6 col-xs-12\">\n          \u003ca href=\"https://developer.onetrust.com/onetrust/docs\">\n            \u003cdiv class=\"services-item text-center\">\n              \u003cdiv class=\"icon\">\n                \u003ci class=\"lni lni-book\">\u003c/i>\n              \u003c/div>\n              \u003ch4>SDK Reference\u003c/h4>\n              \u003cp>Discover what you can do with the SDKs and review resources to help you get started.\u003c/p>\n            \u003c/div>\n          \u003c/a>\n        \u003c/div>\n        \u003c!-- End Col -->\n        \u003c!-- Start Col -->\n        \u003cdiv class=\"col-lg-4 col-md-6 col-xs-12\">\n          \u003ca href=\"https://developer.onetrust.com/onetrust/page/partners\">\n            \u003cdiv class=\"services-item text-center\">\n              \u003cdiv class=\"icon\">\n                \u003ci class=\"lni lni-handshake\">\u003c/i>\n              \u003c/div>\n              \u003ch4>Technology Partners\u003c/h4>\n              \u003cp>Learn what it takes to build third-party integrations with OneTrust using these guidelines.\n              \u003c/p>\n            \u003c/div>\n          \u003c/a>\n        \u003c/div>\n        \u003c!-- End Col -->\n\n      \u003c/div>\n    \u003c/div>\n  \u003c/section>\n  \u003c!-- Services Section End -->\n\n  \n\n  \u003c!-- Business Plan Section Start -->\n  \u003csection id=\"business-plan\">\n    \u003cdiv class=\"container\">\n\n      \u003cdiv class=\"row\">\n        \u003c!-- Start Col -->\n        \u003cdiv id=\"business-block\" class=\"col-lg-6 col-md-12 pl-0 pt-70 pr-5\">\n          \u003cdiv class=\"business-item-img\">\n            \u003cimg width=\"360px\" src=\"https://files.readme.io/f63aa7d-business-img.png\" class=\"img-fluid\" alt=\"\" align=\"right\">\n          \u003c/div>\n        \u003c/div>\n        \u003c!-- End Col -->\n        \u003c!-- Start Col -->\n        \u003cdiv class=\"col-lg-6 col-md-12 pl-4\">\n          \u003cdiv class=\"business-item-info\">\n            \u003ch3>Join the Discussion\u003c/h3>\n            \u003cp>Discuss use cases, best practices, and more with other OneTrust users and the OneTrust product team. Our\n              support team is happy to answer any questions, concerns, or feedback from you.\u003c/p>\n\n            \u003ca class=\"btn btn-common\"\n              href=\"https://my.onetrust.com/s/group/0F91Q000000hGyPSAU/developer-experience\">Developer Forum\u003c/a>\n\n          \u003c/div>\n\n        \u003c/div>\n        \u003c!-- End Col -->\n\n      \u003c/div>\n    \u003c/div>\n  \u003c/section>\n  \u003c!-- Business Plan Section End -->\n\n  \u003c!-- Go To Top Link -->\n  \u003ca href=\"#\" class=\"back-to-top\">\n\t\t\u003ci class=\"lni lni-chevron-up\">\u003c/i>\n  \u003c/a>\n\n  \u003c!-- Preloader -->\n  \u003cdiv id=\"preloader\">\n    \u003cdiv class=\"loader\" id=\"loader-1\">\u003c/div>\n  \u003c/div>\n  \u003c!-- End Preloader -->\n\n  \u003c!-- jQuery first, then Tether, then Bootstrap JS. -->\n\u003cscript src=\"https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js\" integrity=\"sha512-AFwxAkWdvxRd9qhYYp1qbeRZj6/iTNmJ2GFwcxsMOzwwTaRwz2a/2TX225Ebcj3whXte1WGQb38cXE5j7ZQw3g==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\">\u003c/script>\n\u003cscript src=\"https://cdnjs.cloudflare.com/ajax/libs/popper.js/2.9.3/umd/popper.min.js\" integrity=\"sha512-XLo6bQe08irJObCc86rFEKQdcFYbGGIHVXcfMsxpbvF8ompmd1SNJjqVY5hmjQ01Ts0UmmSQGfqpt3fGjm6pGA==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\">\u003c/script>\n\u003cscript src=\"https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/js/bootstrap.min.js\" integrity=\"sha512-I5TkutApDjnWuX+smLIPZNhw+LhTd8WrQhdCKsxCFRSvhFx2km8ZfEpNIhF9nq04msHhOkE8BMOBj5QE07yhMA==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\">\u003c/script>\n\u003cscript src=\"https://cdnjs.cloudflare.com/ajax/libs/jquery-one-page-nav/3.0.0/jquery.nav.min.js\" integrity=\"sha512-I1SRWCuHnqVwlUXfm2TNMDduALHE1LfFpbQtFPY2z33Jy0iJAEXBDgrRrBLbpVChGclfCB0Hfy0F8wLVJtIVPQ==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\">\u003c/script>  \u003cscript src=\"js/scrolling-nav.js\">\u003c/script>\n\u003cscript src=\"https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js\" integrity=\"sha512-ahmSZKApTDNd3gVuqL5TQ3MBTj8tL5p2tYV05Xxzcfu6/ecvt1A0j6tfudSGBVuteSoTRMqMljbfdU0g2eDNUA==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\">\u003c/script>\n\u003cscript src=\"https://cdnjs.cloudflare.com/ajax/libs/nivo-lightbox/1.3.1/nivo-lightbox.js\" integrity=\"sha512-eNM4Nomn/MdR/V836OVpXr9jLhs3U/qUoVF6GCvrplLxnreXdURDvYnrSSvLJn/455ffeEQf8ZuSTzSnOxVGvQ==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\">\u003c/script>\n\u003cscript src=\"https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/jquery.magnific-popup.min.js\" integrity=\"sha512-IsNh5E3eYy3tr/JiX2Yx4vsCujtkhwl7SLqgnwLNgf04Hrt9BT9SXlLlZlWx+OK4ndzAoALhsMNcCmkggjZB1w==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\">\u003c/script>\n\u003cscript>\n  //jQuery to collapse the navbar on scroll\n$(window).scroll(function() {\n    if ($(\".navbar\").offset().top > 50) {\n        $(\".navbar-fixed-top\").addClass(\"top-nav-collapse\");\n    } else {\n        $(\".navbar-fixed-top\").removeClass(\"top-nav-collapse\");\n    }\n});\n\n//jQuery for page scrolling feature - requires jQuery Easing plugin\n$(function() {\n\n    $('a.page-scroll[href*=\"#\"]:not([href=\"#\"])').on('click', function () {\n        if (location.pathname.replace(/^\\//, '') == this.pathname.replace(/^\\//, '') && location.hostname == this.hostname) {\n            var target = $(this.hash);\n            target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');\n            if (target.length) {\n                $('html, body').animate({\n                    scrollTop: (target.offset().top -80)\n                }, 1500, \"easeInOutExpo\");\n                return false;\n            }\n        }\n    });\n\n});\n  \n/*\n *  jQuery OwlCarousel v1.3.3\n *\n *  Copyright (c) 2013 Bartosz Wojciechowski\n *  http://www.owlgraphic.com/owlcarousel/\n *\n *  Licensed under MIT\n *\n */\n\n/*JS Lint helpers: */\n/*global dragMove: false, dragEnd: false, $, jQuery, alert, window, document */\n/*jslint nomen: true, continue:true */\n\nif (typeof Object.create !== \"function\") {\n    Object.create = function (obj) {\n        function F() {}\n        F.prototype = obj;\n        return new F();\n    };\n}\n(function ($, window, document) {\n\n    var Carousel = {\n        init : function (options, el) {\n            var base = this;\n\n            base.$elem = $(el);\n            base.options = $.extend({}, $.fn.owlCarousel.options, base.$elem.data(), options);\n\n            base.userOptions = options;\n            base.loadContent();\n        },\n\n        loadContent : function () {\n            var base = this, url;\n\n            function getData(data) {\n                var i, content = \"\";\n                if (typeof base.options.jsonSuccess === \"function\") {\n                    base.options.jsonSuccess.apply(this, [data]);\n                } else {\n                    for (i in data.owl) {\n                        if (data.owl.hasOwnProperty(i)) {\n                            content += data.owl[i].item;\n                        }\n                    }\n                    base.$elem.html(content);\n                }\n                base.logIn();\n            }\n\n            if (typeof base.options.beforeInit === \"function\") {\n                base.options.beforeInit.apply(this, [base.$elem]);\n            }\n\n            if (typeof base.options.jsonPath === \"string\") {\n                url = base.options.jsonPath;\n                $.getJSON(url, getData);\n            } else {\n                base.logIn();\n            }\n        },\n\n        logIn : function () {\n            var base = this;\n\n            base.$elem.data(\"owl-originalStyles\", base.$elem.attr(\"style\"));\n            base.$elem.data(\"owl-originalClasses\", base.$elem.attr(\"class\"));\n\n            base.$elem.css({opacity: 0});\n            base.orignalItems = base.options.items;\n            base.checkBrowser();\n            base.wrapperWidth = 0;\n            base.checkVisible = null;\n            base.setVars();\n        },\n\n        setVars : function () {\n            var base = this;\n            if (base.$elem.children().length === 0) {return false; }\n            base.baseClass();\n            base.eventTypes();\n            base.$userItems = base.$elem.children();\n            base.itemsAmount = base.$userItems.length;\n            base.wrapItems();\n            base.$owlItems = base.$elem.find(\".owl-item\");\n            base.$owlWrapper = base.$elem.find(\".owl-wrapper\");\n            base.playDirection = \"next\";\n            base.prevItem = 0;\n            base.prevArr = [0];\n            base.currentItem = 0;\n            base.customEvents();\n            base.onStartup();\n        },\n\n        onStartup : function () {\n            var base = this;\n            base.updateItems();\n            base.calculateAll();\n            base.buildControls();\n            base.updateControls();\n            base.response();\n            base.moveEvents();\n            base.stopOnHover();\n            base.owlStatus();\n\n            if (base.options.transitionStyle !== false) {\n                base.transitionTypes(base.options.transitionStyle);\n            }\n            if (base.options.autoPlay === true) {\n                base.options.autoPlay = 5000;\n            }\n            base.play();\n\n            base.$elem.find(\".owl-wrapper\").css(\"display\", \"block\");\n\n            if (!base.$elem.is(\":visible\")) {\n                base.watchVisibility();\n            } else {\n                base.$elem.css(\"opacity\", 1);\n            }\n            base.onstartup = false;\n            base.eachMoveUpdate();\n            if (typeof base.options.afterInit === \"function\") {\n                base.options.afterInit.apply(this, [base.$elem]);\n            }\n        },\n\n        eachMoveUpdate : function () {\n            var base = this;\n\n            if (base.options.lazyLoad === true) {\n                base.lazyLoad();\n            }\n            if (base.options.autoHeight === true) {\n                base.autoHeight();\n            }\n            base.onVisibleItems();\n\n            if (typeof base.options.afterAction === \"function\") {\n                base.options.afterAction.apply(this, [base.$elem]);\n            }\n        },\n\n        updateVars : function () {\n            var base = this;\n            if (typeof base.options.beforeUpdate === \"function\") {\n                base.options.beforeUpdate.apply(this, [base.$elem]);\n            }\n            base.watchVisibility();\n            base.updateItems();\n            base.calculateAll();\n            base.updatePosition();\n            base.updateControls();\n            base.eachMoveUpdate();\n            if (typeof base.options.afterUpdate === \"function\") {\n                base.options.afterUpdate.apply(this, [base.$elem]);\n            }\n        },\n\n        reload : function () {\n            var base = this;\n            window.setTimeout(function () {\n                base.updateVars();\n            }, 0);\n        },\n\n        watchVisibility : function () {\n            var base = this;\n\n            if (base.$elem.is(\":visible\") === false) {\n                base.$elem.css({opacity: 0});\n                window.clearInterval(base.autoPlayInterval);\n                window.clearInterval(base.checkVisible);\n            } else {\n                return false;\n            }\n            base.checkVisible = window.setInterval(function () {\n                if (base.$elem.is(\":visible\")) {\n                    base.reload();\n                    base.$elem.animate({opacity: 1}, 200);\n                    window.clearInterval(base.checkVisible);\n                }\n            }, 500);\n        },\n\n        wrapItems : function () {\n            var base = this;\n            base.$userItems.wrapAll(\"\u003cdiv class=\\\"owl-wrapper\\\">\").wrap(\"\u003cdiv class=\\\"owl-item\\\">\u003c/div>\");\n            base.$elem.find(\".owl-wrapper\").wrap(\"\u003cdiv class=\\\"owl-wrapper-outer\\\">\");\n            base.wrapperOuter = base.$elem.find(\".owl-wrapper-outer\");\n            base.$elem.css(\"display\", \"block\");\n        },\n\n        baseClass : function () {\n            var base = this,\n                hasBaseClass = base.$elem.hasClass(base.options.baseClass),\n                hasThemeClass = base.$elem.hasClass(base.options.theme);\n\n            if (!hasBaseClass) {\n                base.$elem.addClass(base.options.baseClass);\n            }\n\n            if (!hasThemeClass) {\n                base.$elem.addClass(base.options.theme);\n            }\n        },\n\n        updateItems : function () {\n            var base = this, width, i;\n\n            if (base.options.responsive === false) {\n                return false;\n            }\n            if (base.options.singleItem === true) {\n                base.options.items = base.orignalItems = 1;\n                base.options.itemsCustom = false;\n                base.options.itemsDesktop = false;\n                base.options.itemsDesktopSmall = false;\n                base.options.itemsTablet = false;\n                base.options.itemsTabletSmall = false;\n                base.options.itemsMobile = false;\n                return false;\n            }\n\n            width = $(base.options.responsiveBaseWidth).width();\n\n            if (width > (base.options.itemsDesktop[0] || base.orignalItems)) {\n                base.options.items = base.orignalItems;\n            }\n            if (base.options.itemsCustom !== false) {\n                //Reorder array by screen size\n                base.options.itemsCustom.sort(function (a, b) {return a[0] - b[0]; });\n\n                for (i = 0; i \u003c base.options.itemsCustom.length; i += 1) {\n                    if (base.options.itemsCustom[i][0] \u003c= width) {\n                        base.options.items = base.options.itemsCustom[i][1];\n                    }\n                }\n\n            } else {\n\n                if (width \u003c= base.options.itemsDesktop[0] && base.options.itemsDesktop !== false) {\n                    base.options.items = base.options.itemsDesktop[1];\n                }\n\n                if (width \u003c= base.options.itemsDesktopSmall[0] && base.options.itemsDesktopSmall !== false) {\n                    base.options.items = base.options.itemsDesktopSmall[1];\n                }\n\n                if (width \u003c= base.options.itemsTablet[0] && base.options.itemsTablet !== false) {\n                    base.options.items = base.options.itemsTablet[1];\n                }\n\n                if (width \u003c= base.options.itemsTabletSmall[0] && base.options.itemsTabletSmall !== false) {\n                    base.options.items = base.options.itemsTabletSmall[1];\n                }\n\n                if (width \u003c= base.options.itemsMobile[0] && base.options.itemsMobile !== false) {\n                    base.options.items = base.options.itemsMobile[1];\n                }\n            }\n\n            //if number of items is less than declared\n            if (base.options.items > base.itemsAmount && base.options.itemsScaleUp === true) {\n                base.options.items = base.itemsAmount;\n            }\n        },\n\n        response : function () {\n            var base = this,\n                smallDelay,\n                lastWindowWidth;\n\n            if (base.options.responsive !== true) {\n                return false;\n            }\n            lastWindowWidth = $(window).width();\n\n            base.resizer = function () {\n                if ($(window).width() !== lastWindowWidth) {\n                    if (base.options.autoPlay !== false) {\n                        window.clearInterval(base.autoPlayInterval);\n                    }\n                    window.clearTimeout(smallDelay);\n                    smallDelay = window.setTimeout(function () {\n                        lastWindowWidth = $(window).width();\n                        base.updateVars();\n                    }, base.options.responsiveRefreshRate);\n                }\n            };\n            $(window).resize(base.resizer);\n        },\n\n        updatePosition : function () {\n            var base = this;\n            base.jumpTo(base.currentItem);\n            if (base.options.autoPlay !== false) {\n                base.checkAp();\n            }\n        },\n\n        appendItemsSizes : function () {\n            var base = this,\n                roundPages = 0,\n                lastItem = base.itemsAmount - base.options.items;\n\n            base.$owlItems.each(function (index) {\n                var $this = $(this);\n                $this\n                    .css({\"width\": base.itemWidth})\n                    .data(\"owl-item\", Number(index));\n\n                if (index % base.options.items === 0 || index === lastItem) {\n                    if (!(index > lastItem)) {\n                        roundPages += 1;\n                    }\n                }\n                $this.data(\"owl-roundPages\", roundPages);\n            });\n        },\n\n        appendWrapperSizes : function () {\n            var base = this,\n                width = base.$owlItems.length * base.itemWidth;\n\n            base.$owlWrapper.css({\n                \"width\": width * 2,\n                \"left\": 0\n            });\n            base.appendItemsSizes();\n        },\n\n        calculateAll : function () {\n            var base = this;\n            base.calculateWidth();\n            base.appendWrapperSizes();\n            base.loops();\n            base.max();\n        },\n\n        calculateWidth : function () {\n            var base = this;\n            base.itemWidth = Math.round(base.$elem.width() / base.options.items);\n        },\n\n        max : function () {\n            var base = this,\n                maximum = ((base.itemsAmount * base.itemWidth) - base.options.items * base.itemWidth) * -1;\n            if (base.options.items > base.itemsAmount) {\n                base.maximumItem = 0;\n                maximum = 0;\n                base.maximumPixels = 0;\n            } else {\n                base.maximumItem = base.itemsAmount - base.options.items;\n                base.maximumPixels = maximum;\n            }\n            return maximum;\n        },\n\n        min : function () {\n            return 0;\n        },\n\n        loops : function () {\n            var base = this,\n                prev = 0,\n                elWidth = 0,\n                i,\n                item,\n                roundPageNum;\n\n            base.positionsInArray = [0];\n            base.pagesInArray = [];\n\n            for (i = 0; i \u003c base.itemsAmount; i += 1) {\n                elWidth += base.itemWidth;\n                base.positionsInArray.push(-elWidth);\n\n                if (base.options.scrollPerPage === true) {\n                    item = $(base.$owlItems[i]);\n                    roundPageNum = item.data(\"owl-roundPages\");\n                    if (roundPageNum !== prev) {\n                        base.pagesInArray[prev] = base.positionsInArray[i];\n                        prev = roundPageNum;\n                    }\n                }\n            }\n        },\n\n        buildControls : function () {\n            var base = this;\n            if (base.options.navigation === true || base.options.pagination === true) {\n                base.owlControls = $(\"\u003cdiv class=\\\"owl-controls\\\"/>\").toggleClass(\"clickable\", !base.browser.isTouch).appendTo(base.$elem);\n            }\n            if (base.options.pagination === true) {\n                base.buildPagination();\n            }\n            if (base.options.navigation === true) {\n                base.buildButtons();\n            }\n        },\n\n        buildButtons : function () {\n            var base = this,\n                buttonsWrapper = $(\"\u003cdiv class=\\\"owl-buttons\\\"/>\");\n            base.owlControls.append(buttonsWrapper);\n\n            base.buttonPrev = $(\"\u003cdiv/>\", {\n                \"class\" : \"owl-prev\",\n                \"html\" : base.options.navigationText[0] || \"\"\n            });\n\n            base.buttonNext = $(\"\u003cdiv/>\", {\n                \"class\" : \"owl-next\",\n                \"html\" : base.options.navigationText[1] || \"\"\n            });\n\n            buttonsWrapper\n                .append(base.buttonPrev)\n                .append(base.buttonNext);\n\n            buttonsWrapper.on(\"touchstart.owlControls mousedown.owlControls\", \"div[class^=\\\"owl\\\"]\", function (event) {\n                event.preventDefault();\n            });\n\n            buttonsWrapper.on(\"touchend.owlControls mouseup.owlControls\", \"div[class^=\\\"owl\\\"]\", function (event) {\n                event.preventDefault();\n                if ($(this).hasClass(\"owl-next\")) {\n                    base.next();\n                } else {\n                    base.prev();\n                }\n            });\n        },\n\n        buildPagination : function () {\n            var base = this;\n\n            base.paginationWrapper = $(\"\u003cdiv class=\\\"owl-pagination\\\"/>\");\n            base.owlControls.append(base.paginationWrapper);\n\n            base.paginationWrapper.on(\"touchend.owlControls mouseup.owlControls\", \".owl-page\", function (event) {\n                event.preventDefault();\n                if (Number($(this).data(\"owl-page\")) !== base.currentItem) {\n                    base.goTo(Number($(this).data(\"owl-page\")), true);\n                }\n            });\n        },\n\n        updatePagination : function () {\n            var base = this,\n                counter,\n                lastPage,\n                lastItem,\n                i,\n                paginationButton,\n                paginationButtonInner;\n\n            if (base.options.pagination === false) {\n                return false;\n            }\n\n            base.paginationWrapper.html(\"\");\n\n            counter = 0;\n            lastPage = base.itemsAmount - base.itemsAmount % base.options.items;\n\n            for (i = 0; i \u003c base.itemsAmount; i += 1) {\n                if (i % base.options.items === 0) {\n                    counter += 1;\n                    if (lastPage === i) {\n                        lastItem = base.itemsAmount - base.options.items;\n                    }\n                    paginationButton = $(\"\u003cdiv/>\", {\n                        \"class\" : \"owl-page\"\n                    });\n                    paginationButtonInner = $(\"\u003cspan>\u003c/span>\", {\n                        \"text\": base.options.paginationNumbers === true ? counter : \"\",\n                        \"class\": base.options.paginationNumbers === true ? \"owl-numbers\" : \"\"\n                    });\n                    paginationButton.append(paginationButtonInner);\n\n                    paginationButton.data(\"owl-page\", lastPage === i ? lastItem : i);\n                    paginationButton.data(\"owl-roundPages\", counter);\n\n                    base.paginationWrapper.append(paginationButton);\n                }\n            }\n            base.checkPagination();\n        },\n        checkPagination : function () {\n            var base = this;\n            if (base.options.pagination === false) {\n                return false;\n            }\n            base.paginationWrapper.find(\".owl-page\").each(function () {\n                if ($(this).data(\"owl-roundPages\") === $(base.$owlItems[base.currentItem]).data(\"owl-roundPages\")) {\n                    base.paginationWrapper\n                        .find(\".owl-page\")\n                        .removeClass(\"active\");\n                    $(this).addClass(\"active\");\n                }\n            });\n        },\n\n        checkNavigation : function () {\n            var base = this;\n\n            if (base.options.navigation === false) {\n                return false;\n            }\n            if (base.options.rewindNav === false) {\n                if (base.currentItem === 0 && base.maximumItem === 0) {\n                    base.buttonPrev.addClass(\"disabled\");\n                    base.buttonNext.addClass(\"disabled\");\n                } else if (base.currentItem === 0 && base.maximumItem !== 0) {\n                    base.buttonPrev.addClass(\"disabled\");\n                    base.buttonNext.removeClass(\"disabled\");\n                } else if (base.currentItem === base.maximumItem) {\n                    base.buttonPrev.removeClass(\"disabled\");\n                    base.buttonNext.addClass(\"disabled\");\n                } else if (base.currentItem !== 0 && base.currentItem !== base.maximumItem) {\n                    base.buttonPrev.removeClass(\"disabled\");\n                    base.buttonNext.removeClass(\"disabled\");\n                }\n            }\n        },\n\n        updateControls : function () {\n            var base = this;\n            base.updatePagination();\n            base.checkNavigation();\n            if (base.owlControls) {\n                if (base.options.items >= base.itemsAmount) {\n                    base.owlControls.hide();\n                } else {\n                    base.owlControls.show();\n                }\n            }\n        },\n\n        destroyControls : function () {\n            var base = this;\n            if (base.owlControls) {\n                base.owlControls.remove();\n            }\n        },\n\n        next : function (speed) {\n            var base = this;\n\n            if (base.isTransition) {\n                return false;\n            }\n\n            base.currentItem += base.options.scrollPerPage === true ? base.options.items : 1;\n            if (base.currentItem > base.maximumItem + (base.options.scrollPerPage === true ? (base.options.items - 1) : 0)) {\n                if (base.options.rewindNav === true) {\n                    base.currentItem = 0;\n                    speed = \"rewind\";\n                } else {\n                    base.currentItem = base.maximumItem;\n                    return false;\n                }\n            }\n            base.goTo(base.currentItem, speed);\n        },\n\n        prev : function (speed) {\n            var base = this;\n\n            if (base.isTransition) {\n                return false;\n            }\n\n            if (base.options.scrollPerPage === true && base.currentItem > 0 && base.currentItem \u003c base.options.items) {\n                base.currentItem = 0;\n            } else {\n                base.currentItem -= base.options.scrollPerPage === true ? base.options.items : 1;\n            }\n            if (base.currentItem \u003c 0) {\n                if (base.options.rewindNav === true) {\n                    base.currentItem = base.maximumItem;\n                    speed = \"rewind\";\n                } else {\n                    base.currentItem = 0;\n                    return false;\n                }\n            }\n            base.goTo(base.currentItem, speed);\n        },\n\n        goTo : function (position, speed, drag) {\n            var base = this,\n                goToPixel;\n\n            if (base.isTransition) {\n                return false;\n            }\n            if (typeof base.options.beforeMove === \"function\") {\n                base.options.beforeMove.apply(this, [base.$elem]);\n            }\n            if (position >= base.maximumItem) {\n                position = base.maximumItem;\n            } else if (position \u003c= 0) {\n                position = 0;\n            }\n\n            base.currentItem = base.owl.currentItem = position;\n            if (base.options.transitionStyle !== false && drag !== \"drag\" && base.options.items === 1 && base.browser.support3d === true) {\n                base.swapSpeed(0);\n                if (base.browser.support3d === true) {\n                    base.transition3d(base.positionsInArray[position]);\n                } else {\n                    base.css2slide(base.positionsInArray[position], 1);\n                }\n                base.afterGo();\n                base.singleItemTransition();\n                return false;\n            }\n            goToPixel = base.positionsInArray[position];\n\n            if (base.browser.support3d === true) {\n                base.isCss3Finish = false;\n\n                if (speed === true) {\n                    base.swapSpeed(\"paginationSpeed\");\n                    window.setTimeout(function () {\n                        base.isCss3Finish = true;\n                    }, base.options.paginationSpeed);\n\n                } else if (speed === \"rewind\") {\n                    base.swapSpeed(base.options.rewindSpeed);\n                    window.setTimeout(function () {\n                        base.isCss3Finish = true;\n                    }, base.options.rewindSpeed);\n\n                } else {\n                    base.swapSpeed(\"slideSpeed\");\n                    window.setTimeout(function () {\n                        base.isCss3Finish = true;\n                    }, base.options.slideSpeed);\n                }\n                base.transition3d(goToPixel);\n            } else {\n                if (speed === true) {\n                    base.css2slide(goToPixel, base.options.paginationSpeed);\n                } else if (speed === \"rewind\") {\n                    base.css2slide(goToPixel, base.options.rewindSpeed);\n                } else {\n                    base.css2slide(goToPixel, base.options.slideSpeed);\n                }\n            }\n            base.afterGo();\n        },\n\n        jumpTo : function (position) {\n            var base = this;\n            if (typeof base.options.beforeMove === \"function\") {\n                base.options.beforeMove.apply(this, [base.$elem]);\n            }\n            if (position >= base.maximumItem || position === -1) {\n                position = base.maximumItem;\n            } else if (position \u003c= 0) {\n                position = 0;\n            }\n            base.swapSpeed(0);\n            if (base.browser.support3d === true) {\n                base.transition3d(base.positionsInArray[position]);\n            } else {\n                base.css2slide(base.positionsInArray[position], 1);\n            }\n            base.currentItem = base.owl.currentItem = position;\n            base.afterGo();\n        },\n\n        afterGo : function () {\n            var base = this;\n\n            base.prevArr.push(base.currentItem);\n            base.prevItem = base.owl.prevItem = base.prevArr[base.prevArr.length - 2];\n            base.prevArr.shift(0);\n\n            if (base.prevItem !== base.currentItem) {\n                base.checkPagination();\n                base.checkNavigation();\n                base.eachMoveUpdate();\n\n                if (base.options.autoPlay !== false) {\n                    base.checkAp();\n                }\n            }\n            if (typeof base.options.afterMove === \"function\" && base.prevItem !== base.currentItem) {\n                base.options.afterMove.apply(this, [base.$elem]);\n            }\n        },\n\n        stop : function () {\n            var base = this;\n            base.apStatus = \"stop\";\n            window.clearInterval(base.autoPlayInterval);\n        },\n\n        checkAp : function () {\n            var base = this;\n            if (base.apStatus !== \"stop\") {\n                base.play();\n            }\n        },\n\n        play : function () {\n            var base = this;\n            base.apStatus = \"play\";\n            if (base.options.autoPlay === false) {\n                return false;\n            }\n            window.clearInterval(base.autoPlayInterval);\n            base.autoPlayInterval = window.setInterval(function () {\n                base.next(true);\n            }, base.options.autoPlay);\n        },\n\n        swapSpeed : function (action) {\n            var base = this;\n            if (action === \"slideSpeed\") {\n                base.$owlWrapper.css(base.addCssSpeed(base.options.slideSpeed));\n            } else if (action === \"paginationSpeed\") {\n                base.$owlWrapper.css(base.addCssSpeed(base.options.paginationSpeed));\n            } else if (typeof action !== \"string\") {\n                base.$owlWrapper.css(base.addCssSpeed(action));\n            }\n        },\n\n        addCssSpeed : function (speed) {\n            return {\n                \"-webkit-transition\": \"all \" + speed + \"ms ease\",\n                \"-moz-transition\": \"all \" + speed + \"ms ease\",\n                \"-o-transition\": \"all \" + speed + \"ms ease\",\n                \"transition\": \"all \" + speed + \"ms ease\"\n            };\n        },\n\n        removeTransition : function () {\n            return {\n                \"-webkit-transition\": \"\",\n                \"-moz-transition\": \"\",\n                \"-o-transition\": \"\",\n                \"transition\": \"\"\n            };\n        },\n\n        doTranslate : function (pixels) {\n            return {\n                \"-webkit-transform\": \"translate3d(\" + pixels + \"px, 0px, 0px)\",\n                \"-moz-transform\": \"translate3d(\" + pixels + \"px, 0px, 0px)\",\n                \"-o-transform\": \"translate3d(\" + pixels + \"px, 0px, 0px)\",\n                \"-ms-transform\": \"translate3d(\" + pixels + \"px, 0px, 0px)\",\n                \"transform\": \"translate3d(\" + pixels + \"px, 0px,0px)\"\n            };\n        },\n\n        transition3d : function (value) {\n            var base = this;\n            base.$owlWrapper.css(base.doTranslate(value));\n        },\n\n        css2move : function (value) {\n            var base = this;\n            base.$owlWrapper.css({\"left\" : value});\n        },\n\n        css2slide : function (value, speed) {\n            var base = this;\n\n            base.isCssFinish = false;\n            base.$owlWrapper.stop(true, true).animate({\n                \"left\" : value\n            }, {\n                duration : speed || base.options.slideSpeed,\n                complete : function () {\n                    base.isCssFinish = true;\n                }\n            });\n        },\n\n        checkBrowser : function () {\n            var base = this,\n                translate3D = \"translate3d(0px, 0px, 0px)\",\n                tempElem = document.createElement(\"div\"),\n                regex,\n                asSupport,\n                support3d,\n                isTouch;\n\n            tempElem.style.cssText = \"  -moz-transform:\" + translate3D +\n                                  \"; -ms-transform:\"     + translate3D +\n                                  \"; -o-transform:\"      + translate3D +\n                                  \"; -webkit-transform:\" + translate3D +\n                                  \"; transform:\"         + translate3D;\n            regex = /translate3d\\(0px, 0px, 0px\\)/g;\n            asSupport = tempElem.style.cssText.match(regex);\n            support3d = (asSupport !== null && asSupport.length === 1);\n\n            isTouch = \"ontouchstart\" in window || window.navigator.msMaxTouchPoints;\n\n            base.browser = {\n                \"support3d\" : support3d,\n                \"isTouch\" : isTouch\n            };\n        },\n\n        moveEvents : function () {\n            var base = this;\n            if (base.options.mouseDrag !== false || base.options.touchDrag !== false) {\n                base.gestures();\n                base.disabledEvents();\n            }\n        },\n\n        eventTypes : function () {\n            var base = this,\n                types = [\"s\", \"e\", \"x\"];\n\n            base.ev_types = {};\n\n            if (base.options.mouseDrag === true && base.options.touchDrag === true) {\n                types = [\n                    \"touchstart.owl mousedown.owl\",\n                    \"touchmove.owl mousemove.owl\",\n                    \"touchend.owl touchcancel.owl mouseup.owl\"\n                ];\n            } else if (base.options.mouseDrag === false && base.options.touchDrag === true) {\n                types = [\n                    \"touchstart.owl\",\n                    \"touchmove.owl\",\n                    \"touchend.owl touchcancel.owl\"\n                ];\n            } else if (base.options.mouseDrag === true && base.options.touchDrag === false) {\n                types = [\n                    \"mousedown.owl\",\n                    \"mousemove.owl\",\n                    \"mouseup.owl\"\n                ];\n            }\n\n            base.ev_types.start = types[0];\n            base.ev_types.move = types[1];\n            base.ev_types.end = types[2];\n        },\n\n        disabledEvents :  function () {\n            var base = this;\n            base.$elem.on(\"dragstart.owl\", function (event) { event.preventDefault(); });\n            base.$elem.on(\"mousedown.disableTextSelect\", function (e) {\n                return $(e.target).is('input, textarea, select, option');\n            });\n        },\n\n        gestures : function () {\n            /*jslint unparam: true*/\n            var base = this,\n                locals = {\n                    offsetX : 0,\n                    offsetY : 0,\n                    baseElWidth : 0,\n                    relativePos : 0,\n                    position: null,\n                    minSwipe : null,\n                    maxSwipe: null,\n                    sliding : null,\n                    dargging: null,\n                    targetElement : null\n                };\n\n            base.isCssFinish = true;\n\n            function getTouches(event) {\n                if (event.touches !== undefined) {\n                    return {\n                        x : event.touches[0].pageX,\n                        y : event.touches[0].pageY\n                    };\n                }\n\n                if (event.touches === undefined) {\n                    if (event.pageX !== undefined) {\n                        return {\n                            x : event.pageX,\n                            y : event.pageY\n                        };\n                    }\n                    if (event.pageX === undefined) {\n                        return {\n                            x : event.clientX,\n                            y : event.clientY\n                        };\n                    }\n                }\n            }\n\n            function swapEvents(type) {\n                if (type === \"on\") {\n                    $(document).on(base.ev_types.move, dragMove);\n                    $(document).on(base.ev_types.end, dragEnd);\n                } else if (type === \"off\") {\n                    $(document).off(base.ev_types.move);\n                    $(document).off(base.ev_types.end);\n                }\n            }\n\n            function dragStart(event) {\n                var ev = event.originalEvent || event || window.event,\n                    position;\n\n                if (ev.which === 3) {\n                    return false;\n                }\n                if (base.itemsAmount \u003c= base.options.items) {\n                    return;\n                }\n                if (base.isCssFinish === false && !base.options.dragBeforeAnimFinish) {\n                    return false;\n                }\n                if (base.isCss3Finish === false && !base.options.dragBeforeAnimFinish) {\n                    return false;\n                }\n\n                if (base.options.autoPlay !== false) {\n                    window.clearInterval(base.autoPlayInterval);\n                }\n\n                if (base.browser.isTouch !== true && !base.$owlWrapper.hasClass(\"grabbing\")) {\n                    base.$owlWrapper.addClass(\"grabbing\");\n                }\n\n                base.newPosX = 0;\n                base.newRelativeX = 0;\n\n                $(this).css(base.removeTransition());\n\n                position = $(this).position();\n                locals.relativePos = position.left;\n\n                locals.offsetX = getTouches(ev).x - position.left;\n                locals.offsetY = getTouches(ev).y - position.top;\n\n                swapEvents(\"on\");\n\n                locals.sliding = false;\n                locals.targetElement = ev.target || ev.srcElement;\n            }\n\n            function dragMove(event) {\n                var ev = event.originalEvent || event || window.event,\n                    minSwipe,\n                    maxSwipe;\n\n                base.newPosX = getTouches(ev).x - locals.offsetX;\n                base.newPosY = getTouches(ev).y - locals.offsetY;\n                base.newRelativeX = base.newPosX - locals.relativePos;\n\n                if (typeof base.options.startDragging === \"function\" && locals.dragging !== true && base.newRelativeX !== 0) {\n                    locals.dragging = true;\n                    base.options.startDragging.apply(base, [base.$elem]);\n                }\n\n                if ((base.newRelativeX > 8 || base.newRelativeX \u003c -8) && (base.browser.isTouch === true)) {\n                    if (ev.preventDefault !== undefined) {\n                        ev.preventDefault();\n                    } else {\n                        ev.returnValue = false;\n                    }\n                    locals.sliding = true;\n                }\n\n                if ((base.newPosY > 10 || base.newPosY \u003c -10) && locals.sliding === false) {\n                    $(document).off(\"touchmove.owl\");\n                }\n\n                minSwipe = function () {\n                    return base.newRelativeX / 5;\n                };\n\n                maxSwipe = function () {\n                    return base.maximumPixels + base.newRelativeX / 5;\n                };\n\n                base.newPosX = Math.max(Math.min(base.newPosX, minSwipe()), maxSwipe());\n                if (base.browser.support3d === true) {\n                    base.transition3d(base.newPosX);\n                } else {\n                    base.css2move(base.newPosX);\n                }\n            }\n\n            function dragEnd(event) {\n                var ev = event.originalEvent || event || window.event,\n                    newPosition,\n                    handlers,\n                    owlStopEvent;\n\n                ev.target = ev.target || ev.srcElement;\n\n                locals.dragging = false;\n\n                if (base.browser.isTouch !== true) {\n                    base.$owlWrapper.removeClass(\"grabbing\");\n                }\n\n                if (base.newRelativeX \u003c 0) {\n                    base.dragDirection = base.owl.dragDirection = \"left\";\n                } else {\n                    base.dragDirection = base.owl.dragDirection = \"right\";\n                }\n\n                if (base.newRelativeX !== 0) {\n                    newPosition = base.getNewPosition();\n                    base.goTo(newPosition, false, \"drag\");\n                    if (locals.targetElement === ev.target && base.browser.isTouch !== true) {\n                        $(ev.target).on(\"click.disable\", function (ev) {\n                            ev.stopImmediatePropagation();\n                            ev.stopPropagation();\n                            ev.preventDefault();\n                            $(ev.target).off(\"click.disable\");\n                        });\n                        handlers = $._data(ev.target, \"events\").click;\n                        owlStopEvent = handlers.pop();\n                        handlers.splice(0, 0, owlStopEvent);\n                    }\n                }\n                swapEvents(\"off\");\n            }\n            base.$elem.on(base.ev_types.start, \".owl-wrapper\", dragStart);\n        },\n\n        getNewPosition : function () {\n            var base = this,\n                newPosition = base.closestItem();\n\n            if (newPosition > base.maximumItem) {\n                base.currentItem = base.maximumItem;\n                newPosition  = base.maximumItem;\n            } else if (base.newPosX >= 0) {\n                newPosition = 0;\n                base.currentItem = 0;\n            }\n            return newPosition;\n        },\n        closestItem : function () {\n            var base = this,\n                array = base.options.scrollPerPage === true ? base.pagesInArray : base.positionsInArray,\n                goal = base.newPosX,\n                closest = null;\n\n            $.each(array, function (i, v) {\n                if (goal - (base.itemWidth / 20) > array[i + 1] && goal - (base.itemWidth / 20) \u003c v && base.moveDirection() === \"left\") {\n                    closest = v;\n                    if (base.options.scrollPerPage === true) {\n                        base.currentItem = $.inArray(closest, base.positionsInArray);\n                    } else {\n                        base.currentItem = i;\n                    }\n                } else if (goal + (base.itemWidth / 20) \u003c v && goal + (base.itemWidth / 20) > (array[i + 1] || array[i] - base.itemWidth) && base.moveDirection() === \"right\") {\n                    if (base.options.scrollPerPage === true) {\n                        closest = array[i + 1] || array[array.length - 1];\n                        base.currentItem = $.inArray(closest, base.positionsInArray);\n                    } else {\n                        closest = array[i + 1];\n                        base.currentItem = i + 1;\n                    }\n                }\n            });\n            return base.currentItem;\n        },\n\n        moveDirection : function () {\n            var base = this,\n                direction;\n            if (base.newRelativeX \u003c 0) {\n                direction = \"right\";\n                base.playDirection = \"next\";\n            } else {\n                direction = \"left\";\n                base.playDirection = \"prev\";\n            }\n            return direction;\n        },\n\n        customEvents : function () {\n            /*jslint unparam: true*/\n            var base = this;\n            base.$elem.on(\"owl.next\", function () {\n                base.next();\n            });\n            base.$elem.on(\"owl.prev\", function () {\n                base.prev();\n            });\n            base.$elem.on(\"owl.play\", function (event, speed) {\n                base.options.autoPlay = speed;\n                base.play();\n                base.hoverStatus = \"play\";\n            });\n            base.$elem.on(\"owl.stop\", function () {\n                base.stop();\n                base.hoverStatus = \"stop\";\n            });\n            base.$elem.on(\"owl.goTo\", function (event, item) {\n                base.goTo(item);\n            });\n            base.$elem.on(\"owl.jumpTo\", function (event, item) {\n                base.jumpTo(item);\n            });\n        },\n\n        stopOnHover : function () {\n            var base = this;\n            if (base.options.stopOnHover === true && base.browser.isTouch !== true && base.options.autoPlay !== false) {\n                base.$elem.on(\"mouseover\", function () {\n                    base.stop();\n                });\n                base.$elem.on(\"mouseout\", function () {\n                    if (base.hoverStatus !== \"stop\") {\n                        base.play();\n                    }\n                });\n            }\n        },\n\n        lazyLoad : function () {\n            var base = this,\n                i,\n                $item,\n                itemNumber,\n                $lazyImg,\n                follow;\n\n            if (base.options.lazyLoad === false) {\n                return false;\n            }\n            for (i = 0; i \u003c base.itemsAmount; i += 1) {\n                $item = $(base.$owlItems[i]);\n\n                if ($item.data(\"owl-loaded\") === \"loaded\") {\n                    continue;\n                }\n\n                itemNumber = $item.data(\"owl-item\");\n                $lazyImg = $item.find(\".lazyOwl\");\n\n                if (typeof $lazyImg.data(\"src\") !== \"string\") {\n                    $item.data(\"owl-loaded\", \"loaded\");\n                    continue;\n                }\n                if ($item.data(\"owl-loaded\") === undefined) {\n                    $lazyImg.hide();\n                    $item.addClass(\"loading\").data(\"owl-loaded\", \"checked\");\n                }\n                if (base.options.lazyFollow === true) {\n                    follow = itemNumber >= base.currentItem;\n                } else {\n                    follow = true;\n                }\n                if (follow && itemNumber \u003c base.currentItem + base.options.items && $lazyImg.length) {\n                    base.lazyPreload($item, $lazyImg);\n                }\n            }\n        },\n\n        lazyPreload : function ($item, $lazyImg) {\n            var base = this,\n                iterations = 0,\n                isBackgroundImg;\n\n            if ($lazyImg.prop(\"tagName\") === \"DIV\") {\n                $lazyImg.css(\"background-image\", \"url(\" + $lazyImg.data(\"src\") + \")\");\n                isBackgroundImg = true;\n            } else {\n                $lazyImg[0].src = $lazyImg.data(\"src\");\n            }\n\n            function showImage() {\n                $item.data(\"owl-loaded\", \"loaded\").removeClass(\"loading\");\n                $lazyImg.removeAttr(\"data-src\");\n                if (base.options.lazyEffect === \"fade\") {\n                    $lazyImg.fadeIn(400);\n                } else {\n                    $lazyImg.show();\n                }\n                if (typeof base.options.afterLazyLoad === \"function\") {\n                    base.options.afterLazyLoad.apply(this, [base.$elem]);\n                }\n            }\n\n            function checkLazyImage() {\n                iterations += 1;\n                if (base.completeImg($lazyImg.get(0)) || isBackgroundImg === true) {\n                    showImage();\n                } else if (iterations \u003c= 100) {//if image loads in less than 10 seconds \n                    window.setTimeout(checkLazyImage, 100);\n                } else {\n                    showImage();\n                }\n            }\n\n            checkLazyImage();\n        },\n\n        autoHeight : function () {\n            var base = this,\n                $currentimg = $(base.$owlItems[base.currentItem]).find(\"img\"),\n                iterations;\n\n            function addHeight() {\n                var $currentItem = $(base.$owlItems[base.currentItem]).height();\n                base.wrapperOuter.css(\"height\", $currentItem + \"px\");\n                if (!base.wrapperOuter.hasClass(\"autoHeight\")) {\n                    window.setTimeout(function () {\n                        base.wrapperOuter.addClass(\"autoHeight\");\n                    }, 0);\n                }\n            }\n\n            function checkImage() {\n                iterations += 1;\n                if (base.completeImg($currentimg.get(0))) {\n                    addHeight();\n                } else if (iterations \u003c= 100) { //if image loads in less than 10 seconds \n                    window.setTimeout(checkImage, 100);\n                } else {\n                    base.wrapperOuter.css(\"height\", \"\"); //Else remove height attribute\n                }\n            }\n\n            if ($currentimg.get(0) !== undefined) {\n                iterations = 0;\n                checkImage();\n            } else {\n                addHeight();\n            }\n        },\n\n        completeImg : function (img) {\n            var naturalWidthType;\n\n            if (!img.complete) {\n                return false;\n            }\n            naturalWidthType = typeof img.naturalWidth;\n            if (naturalWidthType !== \"undefined\" && img.naturalWidth === 0) {\n                return false;\n            }\n            return true;\n        },\n\n        onVisibleItems : function () {\n            var base = this,\n                i;\n\n            if (base.options.addClassActive === true) {\n                base.$owlItems.removeClass(\"active\");\n            }\n            base.visibleItems = [];\n            for (i = base.currentItem; i \u003c base.currentItem + base.options.items; i += 1) {\n                base.visibleItems.push(i);\n\n                if (base.options.addClassActive === true) {\n                    $(base.$owlItems[i]).addClass(\"active\");\n                }\n            }\n            base.owl.visibleItems = base.visibleItems;\n        },\n\n        transitionTypes : function (className) {\n            var base = this;\n            //Currently available: \"fade\", \"backSlide\", \"goDown\", \"fadeUp\"\n            base.outClass = \"owl-\" + className + \"-out\";\n            base.inClass = \"owl-\" + className + \"-in\";\n        },\n\n        singleItemTransition : function () {\n            var base = this,\n                outClass = base.outClass,\n                inClass = base.inClass,\n                $currentItem = base.$owlItems.eq(base.currentItem),\n                $prevItem = base.$owlItems.eq(base.prevItem),\n                prevPos = Math.abs(base.positionsInArray[base.currentItem]) + base.positionsInArray[base.prevItem],\n                origin = Math.abs(base.positionsInArray[base.currentItem]) + base.itemWidth / 2,\n                animEnd = 'webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend';\n\n            base.isTransition = true;\n\n            base.$owlWrapper\n                .addClass('owl-origin')\n                .css({\n                    \"-webkit-transform-origin\" : origin + \"px\",\n                    \"-moz-perspective-origin\" : origin + \"px\",\n                    \"perspective-origin\" : origin + \"px\"\n                });\n            function transStyles(prevPos) {\n                return {\n                    \"position\" : \"relative\",\n                    \"left\" : prevPos + \"px\"\n                };\n            }\n\n            $prevItem\n                .css(transStyles(prevPos, 10))\n                .addClass(outClass)\n                .on(animEnd, function () {\n                    base.endPrev = true;\n                    $prevItem.off(animEnd);\n                    base.clearTransStyle($prevItem, outClass);\n                });\n\n            $currentItem\n                .addClass(inClass)\n                .on(animEnd, function () {\n                    base.endCurrent = true;\n                    $currentItem.off(animEnd);\n                    base.clearTransStyle($currentItem, inClass);\n                });\n        },\n\n        clearTransStyle : function (item, classToRemove) {\n            var base = this;\n            item.css({\n                \"position\" : \"\",\n                \"left\" : \"\"\n            }).removeClass(classToRemove);\n\n            if (base.endPrev && base.endCurrent) {\n                base.$owlWrapper.removeClass('owl-origin');\n                base.endPrev = false;\n                base.endCurrent = false;\n                base.isTransition = false;\n            }\n        },\n\n        owlStatus : function () {\n            var base = this;\n            base.owl = {\n                \"userOptions\"   : base.userOptions,\n                \"baseElement\"   : base.$elem,\n                \"userItems\"     : base.$userItems,\n                \"owlItems\"      : base.$owlItems,\n                \"currentItem\"   : base.currentItem,\n                \"prevItem\"      : base.prevItem,\n                \"visibleItems\"  : base.visibleItems,\n                \"isTouch\"       : base.browser.isTouch,\n                \"browser\"       : base.browser,\n                \"dragDirection\" : base.dragDirection\n            };\n        },\n\n        clearEvents : function () {\n            var base = this;\n            base.$elem.off(\".owl owl mousedown.disableTextSelect\");\n            $(document).off(\".owl owl\");\n            $(window).off(\"resize\", base.resizer);\n        },\n\n        unWrap : function () {\n            var base = this;\n            if (base.$elem.children().length !== 0) {\n                base.$owlWrapper.unwrap();\n                base.$userItems.unwrap().unwrap();\n                if (base.owlControls) {\n                    base.owlControls.remove();\n                }\n            }\n            base.clearEvents();\n            base.$elem\n                .attr(\"style\", base.$elem.data(\"owl-originalStyles\") || \"\")\n                .attr(\"class\", base.$elem.data(\"owl-originalClasses\"));\n        },\n\n        destroy : function () {\n            var base = this;\n            base.stop();\n            window.clearInterval(base.checkVisible);\n            base.unWrap();\n            base.$elem.removeData();\n        },\n\n        reinit : function (newOptions) {\n            var base = this,\n                options = $.extend({}, base.userOptions, newOptions);\n            base.unWrap();\n            base.init(options, base.$elem);\n        },\n\n        addItem : function (htmlString, targetPosition) {\n            var base = this,\n                position;\n\n            if (!htmlString) {return false; }\n\n            if (base.$elem.children().length === 0) {\n                base.$elem.append(htmlString);\n                base.setVars();\n                return false;\n            }\n            base.unWrap();\n            if (targetPosition === undefined || targetPosition === -1) {\n                position = -1;\n            } else {\n                position = targetPosition;\n            }\n            if (position >= base.$userItems.length || position === -1) {\n                base.$userItems.eq(-1).after(htmlString);\n            } else {\n                base.$userItems.eq(position).before(htmlString);\n            }\n\n            base.setVars();\n        },\n\n        removeItem : function (targetPosition) {\n            var base = this,\n                position;\n\n            if (base.$elem.children().length === 0) {\n                return false;\n            }\n            if (targetPosition === undefined || targetPosition === -1) {\n                position = -1;\n            } else {\n                position = targetPosition;\n            }\n\n            base.unWrap();\n            base.$userItems.eq(position).remove();\n            base.setVars();\n        }\n\n    };\n\n    $.fn.owlCarousel = function (options) {\n        return this.each(function () {\n            if ($(this).data(\"owl-init\") === true) {\n                return false;\n            }\n            $(this).data(\"owl-init\", true);\n            var carousel = Object.create(Carousel);\n            carousel.init(options, this);\n            $.data(this, \"owlCarousel\", carousel);\n        });\n    };\n\n    $.fn.owlCarousel.options = {\n\n        items : 3,\n        itemsCustom : false,\n        itemsDesktop : [1199, 4],\n        itemsDesktopSmall : [979, 3],\n        itemsTablet : [768, 2],\n        itemsTabletSmall : false,\n        itemsMobile : [479, 1],\n        singleItem : false,\n        itemsScaleUp : true,\n\n        slideSpeed : 200,\n        paginationSpeed : 800,\n        rewindSpeed : 1000,\n\n        autoPlay : false,\n        stopOnHover : false,\n\n        navigation : false,\n        navigationText : [\"prev\", \"next\"],\n        rewindNav : true,\n        scrollPerPage : false,\n\n        pagination : true,\n        paginationNumbers : false,\n\n        responsive : true,\n        responsiveRefreshRate : 200,\n        responsiveBaseWidth : document.body,\n\n        baseClass : \"owl-carousel\",\n        theme : \"owl-theme\",\n\n        lazyLoad : false,\n        lazyFollow : true,\n        lazyEffect : \"fade\",\n\n        autoHeight : false,\n\n        jsonPath : false,\n        jsonSuccess : false,\n\n        dragBeforeAnimFinish : true,\n        mouseDrag : true,\n        touchDrag : true,\n\n        addClassActive : false,\n        transitionStyle : false,\n\n        beforeUpdate : false,\n        afterUpdate : false,\n        beforeInit : false,\n        afterInit : false,\n        beforeMove : false,\n        afterMove : false,\n        afterAction : false,\n        startDragging : false,\n        afterLazyLoad: false\n    };\n}(jQuery, window, document));\n  \n(function($) {\n  \n  \"use strict\";\n  \n  /* Page Loader active\n  ========================================================*/\n  $('#preloader').fadeOut();\n\n  /* Testimonials Carousel \n  ========================================================*/\n  var owl = $(\"#client-testimonial\");\n    owl.owlCarousel({\n      navigation: true,\n      pagination: false,\n      slideSpeed: 1000,\n      stopOnHover: true,\n      autoPlay: true,\n      items: 1,\n      animateIn: 'fadeIn',\n      animateOut: 'fadeOut',\n      addClassActive: true,\n      itemsDesktop : [1199,1],\n      itemsDesktopSmall : [980,1],\n      itemsTablet: [768,1],\n      itemsTablet: [767,1],\n      itemsTabletSmall: [480,1],\n      itemsMobile : [479,1],\n    });   \n    $('#client-testimonial').find('.owl-prev').html('\u003ci class=\"lni-chevron-left\">\u003c/i>');\n    $('#client-testimonial').find('.owl-next').html('\u003ci class=\"lni-chevron-right\">\u003c/i>');\n\n\n    /* showcase Slider\n    =============================*/\n     var owl = $(\".showcase-slider\");\n      owl.owlCarousel({\n        navigation: false,\n        pagination: true,\n        slideSpeed: 1000,\n        margin:10,\n        stopOnHover: true,\n        autoPlay: true,\n        items: 5,\n        itemsDesktopSmall: [1024, 3],\n        itemsTablet: [600, 1],\n        itemsMobile: [479, 1]\n      });\n\n\n\n  /* \n   Sticky Nav\n   ========================================================================== */\n    $(window).on('scroll', function() {\n        if ($(window).scrollTop() > 100) {\n            $('.header-top-area').addClass('menu-bg');\n        } else {\n            $('.header-top-area').removeClass('menu-bg');\n        }\n    });\n\n  /* \n VIDEO POP-UP\n ========================================================================== */\n  $('.video-popup').magnificPopup({\n      disableOn: 700,\n      type: 'iframe',\n      mainClass: 'mfp-fade',\n      removalDelay: 160,\n      preloader: false,\n      fixedContentPos: false,\n  });\n\n  /* \n   Back Top Link\n   ========================================================================== */\n    var offset = 200;\n    var duration = 500;\n    $(window).scroll(function() {\n      if ($(this).scrollTop() > offset) {\n        $('.back-to-top').fadeIn(400);\n      } else {\n        $('.back-to-top').fadeOut(400);\n      }\n    });\n\n    $('.back-to-top').on('click',function(event) {\n      event.preventDefault();\n      $('html, body').animate({\n        scrollTop: 0\n      }, 600);\n      return false;\n    })\n\n  /* \n   One Page Navigation\n   ========================================================================== */\n\n\n    $(window).on('load', function() {\n       \n        $('body').scrollspy({\n            target: '.navbar-collapse',\n            offset: 195\n        });\n\n        $(window).on('scroll', function() {\n            if ($(window).scrollTop() > 100) {\n                $('.fixed-top').addClass('menu-bg');\n            } else {\n                $('.fixed-top').removeClass('menu-bg');\n            }\n        });\n\n    });\n\n  /* Auto Close Responsive Navbar on Click\n  ========================================================*/\n  function close_toggle() {\n      if ($(window).width() \u003c= 768) {\n          $('.navbar-collapse a').on('click', function () {\n              $('.navbar-collapse').collapse('hide');\n          });\n      }\n      else {\n          $('.navbar .navbar-inverse a').off('click');\n      }\n  }\n  close_toggle();\n  $(window).resize(close_toggle);\n\n  /* Nivo Lightbox\n  ========================================================*/   \n   $('.lightbox').nivoLightbox({\n    effect: 'fadeScale',\n    keyboardNav: true,\n  });\n\n}(jQuery));\n\n\u003c/script>\n\u003c/body>\n\u003cstyle>html {display:block;}\u003c/style>","redirect":""},"referenceSimpleMode":true,"referenceLayout":"row","link_logo_to_url":false,"theme":"solid","overlay":"triangles","landing":true,"sticky":false,"hide_logo":true,"childrenAsPills":false,"subheaderStyle":"links","splitReferenceDocs":false,"showMetricsInReference":true,"logo":["https://files.readme.io/c152045-small-OT-logo-white-transparent-1200px.png","OT-logo-white-transparent-1200px.png",453,80,"#ffffff","https://files.readme.io/d1053d9-OT-logo-white-transparent-1200px.png"],"loginLogo":["https://files.readme.io/b1f6eaa-small-OT-logo-green-transparent-1200px.png","b1f6eaa-small-OT-logo-green-transparent-1200px.png",1200,212,"#54a45c","https://files.readme.io/05d5136-OT-logo-green-transparent-1200px.png","66a1186c410f5e004a7a1929"],"logo_white":[],"logo_white_use":false,"favicon":["https://files.readme.io/2cedc59-OT-favicon.ico","OT-favicon.ico",32,32,"#000000"],"stylesheet":"","stylesheet_hub2":"/* Changing Font to Open Sans */\n\n.App {\n  --font-family: 'Open Sans', sans-serif;\n}\n\n/* Hide the Deprecated Tag in API Reference */\nspan.APIMethod_deprecated {\n    display: none !important;\n}\n.reference-redesign .Sidebar-link_deprecated-icon1TLWr7KfHfCp {\n    left: 2px!important;\n    position: absolute;\n}\n\n/* Fix for Dark Mode Code Syntax */\n[data-color-mode=dark] .App .rm-SuggestedEdits, \n[data-color-mode=dark] .App .rm-SuggestionDiff, \n[data-color-mode=dark] .App .rm-Guides, \n[data-color-mode=dark] .App .rm-Recipes, \n[data-color-mode=dark] .App .rm-Recipes-modal, \n[data-color-mode=dark] .App .rm-ReferenceMain, \n[data-color-mode=dark] .App .rm-Changelog, \n[data-color-mode=dark] .App .rm-Discuss, \n[data-color-mode=dark] .App .rm-CustomPage {\n    --md-code-background: var(--gray20)!important;\n    --md-code-tabs: var(--gray15)!important;\n\n}\n\n\n/* Apply styles to code elements within a \u003cpre> tag when data-color-mode is dark */\n[data-color-mode=\"dark\"] .markdown-body pre code.rdmd-code.theme-light {\n    background: var(--gray20)!important; /* Example style */\n}\n\n/* Apply styles to code elements within a \u003cpre> tag based on prefers-color-scheme: dark and data-color-mode=\"system\" */\n@media (prefers-color-scheme: dark) {\n  [data-color-mode=\"system\"] .markdown-body pre code.rdmd-code.theme-light {\n    background: var(--gray20)!important; /* Example style */\n  }\n}\n\n@media (prefers-color-scheme: dark) {\n[data-color-mode=\"system\"] .App .rm-SuggestedEdits, \n  [data-color-mode=\"system\"] .App .rm-SuggestionDiff, \n  [data-color-mode=\"system\"] .App .rm-Guides, \n  [data-color-mode=\"system\"] .App .rm-Recipes, \n  [data-color-mode=\"system\"] .App .rm-Recipes-modal, \n  [data-color-mode=\"system\"] .App .rm-ReferenceMain, \n  [data-color-mode=\"system\"] .App .rm-Changelog, \n  [data-color-mode=\"system\"] .App .rm-Discuss, \n  [data-color-mode=\"system\"] .App .rm-CustomPage {\n    --md-code-background: var(--gray20)!important;\n    --md-code-tabs: var(--gray15)!important;\n\n  }\n}\n\n@media (prefers-color-scheme: dark) {\n  [data-color-mode=\"system\"] .markdown-body code {\n    background-color: #242e34!important;\n  }\n}\n\n/*API Reference Pages - move all custom markdown above body params, etc. */\n.rm-ReferenceMain .rm-Article {\n    display: flex;\n    flex-direction: column-reverse;\n    justify-content: flex-end;\n}\n\nheader[class*=\"headline-container\"] { /*updated selector by ReadMe 6/19/2024*/\n order:3;\n}\n\n.rm-ReferenceMain .markdown-body {\n  margin-top: 10px;\n  order: 2;\n}\n.Reference-section{\n order:1;\n}\n\nheader.APISectionHeader3LN_-QIR0m7x.rm-APISectionHeader{\n    order: -1;\n}\n\n.APIResponseSchemaPicker2ehjUsNOSwdc.rm-APIResponseSchemaPicker{\n    order: -2;\n}\n\n[class^=\"Footer-desktop\"] {\n  order:-3;\n}\n\n\n/* Theme for API Info Block - Page */ \n\n.callout[theme=🗒] {\n  --emoji: unset;\n  --icon: \"\\f249\"; /* copied from FontAwesome */\n  --icon-color: #50af51;\n  --border: var(--icon-color) !important;\n}\n\n.callout[theme=🗒️] {\n  --emoji: unset;\n  --icon: \"\\f249\"; /* copied from FontAwesome */\n  --icon-color: #50af51;\n  --border: var(--icon-color) !important;\n}\n\n\n/* Overflowing recipe response code examples fix */\n[class^=\"TutorialStep-Body\"] pre>code.rdmd-code.lang-json.theme-light {\n    max-height: 43vh;\n}\n\n\n\n/* Changes HR element to a white line */\nhr {\n    border: solid rgba(255, 255, 255) !important;\n    border-width: 1px 0 0 !important;\n}\n\n/* Try It Code Snippet to Show Both Scroll Bars */\n.rm-PlaygroundRequest .CodeSnippet {\n    overflow: auto !important;\n}\n\n/* Dark Mode Configs \n.darkmode--activated .darkmode-background {\n background-color: #000;\n}\n.darkmode--activated p, .darkmode--activated li , .darkmode--activated h1  {\n color: #fff;\n}*/\n\n\n.LandingWrap16kRMSdr5J8g{--gap: 3em;--edge: var(--markdown-edge, #dfe2e5);-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:nowrap column;flex-flow:nowrap column;grid-gap:var(--gap);margin:0 auto;max-width:100%;padding:var(--gap) calc(var(--gap)/2);width:1000px}.LandingBlock3PM-HyBxby3X{display:grid;grid-auto-columns:1fr;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.LandingBlock-link_viewAllX8PdNqsaoOrY{margin-top:5px;opacity:.6}.LandingBlock-link_viewAllX8PdNqsaoOrY:hover,.LandingBlock-link_viewAllX8PdNqsaoOrY:active,.LandingBlock-link_viewAllX8PdNqsaoOrY:focus{opacity:1}.LandingBlock_align\\=right5brkzb7uF2uO{text-align:right}.LandingBlock_align\\=center12RqtJarcIcH{text-align:center}.LandingBlock_align\\=leftG1r7ROyW_AGB{text-align:left}.LandingBlock3PM-HyBxby3X a:not(:hover){text-decoration:none}.LandingBlock3PM-HyBxby3X hr{border-color:var(--edge)}.LandingBlock3PM-HyBxby3X ul{padding:0;list-style:none}.LandingBlock3PM-HyBxby3X .heading{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.LandingBlock-Three2lm6yBrv1MlV{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;grid-gap:var(--gap)}.LandingBlock-Three2lm6yBrv1MlV>*{-webkit-box-flex:0;-ms-flex:0 33.33%;flex:0 33.33%}.LandingBlock-Docs1N0x68Z0Yw2J,.LandingBlock-Links38HRtdeemVvp{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:wrap row;flex-flow:wrap row;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;grid-gap:var(--gap)}.LandingBlock-Docs1N0x68Z0Yw2J a,.LandingBlock-Links38HRtdeemVvp a{color:var(--graphite)}.LandingBlock-Docs1N0x68Z0Yw2J a:hover,.LandingBlock-Docs1N0x68Z0Yw2J a:focus,.LandingBlock-Links38HRtdeemVvp a:hover,.LandingBlock-Links38HRtdeemVvp a:focus{color:var(--color-link-primary)}.LandingBlock-Docs1N0x68Z0Yw2J li,.LandingBlock-Links38HRtdeemVvp li{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.LandingBlock-Docs1N0x68Z0Yw2J h3,.LandingBlock-Links38HRtdeemVvp h3{color:var(--LandingPage-heading-color,inherit);padding-bottom:.2em;border-bottom:1px solid var(--edge)}.LandingBlock-Docs1N0x68Z0Yw2J>*,.LandingBlock-Links38HRtdeemVvp>*{-webkit-box-flex:1;-ms-flex:1 calc(33% - var(--gap));flex:1 calc(33% - var(--gap));max-width:33%}.LandingBlock-TextMedia2eohAoAZBn4h{display:-webkit-box;display:-ms-flexbox;display:flex;grid-gap:var(--gap)}.LandingBlock-TextMedia_reverse2UDtbGaKixp1>:last-child{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.LandingBlock-TextMedia2eohAoAZBn4h>*{-webkit-box-flex:1;-ms-flex:1 calc(50% - var(--gap));flex:1 calc(50% - var(--gap));max-width:50%}.LandingBlock-TextMedia2eohAoAZBn4h:last-child img:only-child{margin-bottom:calc(-1 * var(--gap))}.LandingBlock-TextMedia-media2NFhDb7Wi36K{-webkit-box-flex:1;-ms-flex:1 0 50%;flex:1 0 50%;max-width:50%;text-align:initial}.LandingBlock-TextMedia-media2NFhDb7Wi36K.markdown-body pre{margin-bottom:0!important}.LandingBlock-TextMedia-media2NFhDb7Wi36K:is(img){max-width:50%;max-height:42vh;-o-object-fit:contain;object-fit:contain}.LandingBlock-TextMedia-media2NFhDb7Wi36K:only-child{max-width:100%;max-height:unset;margin:0 auto}.LandingBlock-TextMedia-media2NFhDb7Wi36K:not(img){max-width:60%!important;width:100%}@media(min-width:768px){.LandingBlock-Links38HRtdeemVvp{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.LandingBlock-Links38HRtdeemVvp>*{margin:0}.LandingBlock-Docs1N0x68Z0Yw2J>:last-child:nth-child(3n-1){margin-right:calc(32.8% + (var(--gap)/2))}.LandingBlock-Docs1N0x68Z0Yw2J>:last-child:nth-child(3n-2){margin-right:calc((32.8% + (var(--gap)/2)) * 2)}}@media(max-width:768px){.LandingBlockWrap14DcwE_zdFiG{--gap: 1.5em;width:100%;padding:var(--gap);-webkit-box-sizing:border-box;box-sizing:border-box}.LandingBlock3PM-HyBxby3X{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:nowrap column;flex-flow:nowrap column}.LandingBlock-Docs1N0x68Z0Yw2J,.LandingBlock-Links38HRtdeemVvp{display:grid;grid-template-columns:repeat(2,1fr)}.LandingBlock-Docs1N0x68Z0Yw2J>*,.LandingBlock-Links38HRtdeemVvp>*{max-width:unset}.LandingBlock-TextMedia2eohAoAZBn4h>*{max-width:unset}.LandingBlock-TextMedia-media2NFhDb7Wi36K{max-width:100%!important}.LandingBlock-TextMedia-media2NFhDb7Wi36K:not(img){max-width:unset!important;width:100%}}@media(max-width:480px){.LandingBlock-Docs1N0x68Z0Yw2J,.LandingBlock-Links38HRtdeemVvp{grid-template-columns:1fr}}.rm-LandingPage{--LandingPage-heading-color: var(--color-primary)}\n#ssr-main header .LandingPageHeader-title16RMwPkp2O2W {\n    color: #fff;\n    font-family: var(--font-family);\n    font-size: 2em;\n    margin-bottom: 15px;\n    font-weight: var(--font-weight-bold);\n}\n\n#hub-subheader-parent {\n    height: 0px;\n}\n\nheader#hub-header #header-top #header-nav-left li a, header#hub-header #header-top #header-nav-right li a {\n    color: #fff;\n    text-decoration: none;\n}\n\n\n\n\n.hub-container, .container {\n    max-width: 1440px;\n    margin: auto;\n    width: 100%;\n    position: relative;\n}\n/*Dark mode landing page text color*/\n[data-color-mode=dark] [class^=\"LandingBlock\"] .markdown-body h2 {\n    color: white;\n}\n[data-color-mode=dark] [class^=\"LandingBlock\"] .markdown-body p {\n    color: white !important;\n}\n[data-color-mode=dark] [class^=\"LandingBlock\"] .markdown-body a {\n    color: lightgray;\n}\n\n\n/*code snippet background color change in callouts*/\n.callout .theme-light span.cm-s-neo {\n    background: #f0f0f0;\n}\n[data-color-mode=dark] .callout .theme-light span.cm-s-neo {\n    background: #242e34;\n}\n@media (prefers-color-scheme: dark) {\n  [data-color-mode=\"system\"] .callout .theme-light span.cm-s-neo {\n    background: #242e34;\n}\n}\n\n/* OneTrust Footer Styles - Prefixed with ot-footer- to avoid conflicts */\n\n/* Base footer element */\n.ot-footer {\n    font-family: \"Open Sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n}\n\n/* Typography utilities */\n.ot-footer h1,\n.ot-footer h2,\n.ot-footer h3,\n.ot-footer h4,\n.ot-footer h5,\n.ot-footer h6 {\n    margin: 0 0 8px;\n}\n\n.ot-footer-font-weight-thin {\n    font-weight: 200;\n}\n\n.ot-footer-font-weight-light {\n    font-weight: 300;\n}\n\n.ot-footer-text-color--white {\n    color: white;\n}\n\n.ot-footer-body-1 {\n    font-size: 24px;\n    line-height: 28px;\n}\n\n.ot-footer-flex-direction {\n    flex-direction: column;\n}\n\n.ot-footer-height-38 {\n    line-height: 38px;\n}\n\n/* Padding utilities */\n.ot-footer-padding-right-32 {\n    padding-right: 32px;\n}\n\n.ot-footer-padding-right-64 {\n    padding-right: 64px;\n}\n\n.ot-footer-padding-left-64 {\n    padding-left: 64px;\n}\n\n.ot-footer-padding-left-40 {\n    padding-left: 40px;\n}\n\n.ot-footer-padding-bottom-16 {\n    padding-bottom: 16px;\n}\n\n/* Separator styles */\n.ot-footer-separator {\n    display: flex;\n}\n\n.ot-footer-separator__spacing--large {\n    margin-bottom: 24px;\n    margin-top: 24px;\n}\n\n.ot-footer-separator__spacing--small {\n    margin-bottom: 8px;\n    margin-top: 8px;\n}\n\n.ot-footer-separator__spacing--medium {\n    margin-bottom: 16px;\n    margin-top: 16px;\n}\n\n.ot-footer-separator__horizontal-rule {\n    border: none;\n    height: 1px;\n}\n\n/* Container styles */\n.ot-footer-container {\n    background-color: #101614;\n    position: relative;\n    z-index: 1;\n}\n\n.ot-footer-content {\n    margin: 0 auto;\n    max-width: 1440px;\n    width: 100%;\n}\n\n/* Links section */\n.ot-footer-links {\n    display: grid;\n    gap: 0;\n    width: 100%;\n    grid-template-columns: repeat(2, 50%);\n}\n\n.ot-footer-links p {\n    font-size: 14px;\n    line-height: 20px;\n}\n\n.ot-footer-links-block {\n    -webkit-box-align: start;\n    -ms-flex-align: start;\n    align-items: start;\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n}\n\n.ot-footer-links-block .ot-footer-font-weight-thin {\n    font-size: 24px;\n    line-height: 28px;\n    margin-bottom: 24px;\n    margin-right: 32px;\n    width: 187px;\n}\n\n.ot-footer-links-block ul {\n    margin-right: 32px;\n    max-width: 296px;\n}\n\n.ot-footer-links-block a {\n    text-decoration: none;\n    font-size: 14px;\n    line-height: 20px;\n}\n\n/* Footer text */\n.ot-footer-text {\n    font-size: 14px;\n    font-weight: 300;\n    line-height: 20px;\n}\n\n/* List styles */\n.ot-footer-list {\n    list-style: none;\n    padding: 0;\n    margin: 0;\n}\n\n.ot-footer-list__item {\n    margin-bottom: 8px;\n}\n\n.ot-footer-list__item-link {\n    text-decoration: none;\n    transition: color 0.2s ease;\n}\n\n.ot-footer-list__item-link:hover {\n    color: rgb(108, 192, 74) !important;\n    text-decoration: none !important;\n}\n\n.ot-footer-list__item-title {\n    font-size: 14px;\n    line-height: 20px;\n}\n\n@media (min-width: 882px) {\n    .ot-footer-list {\n        margin-bottom: 80px;\n    }\n}\n\n/* Privacy container */\n.ot-footer-privacy-container {\n    position: relative;\n}\n\n.ot-footer-privacy-container::before {\n    display: block;\n    background: linear-gradient(270deg,\n            #479dbb,\n            #479dbb 16.666%,\n            #499da8 33.332%,\n            #4c9e96 49.998%,\n            #4d9e85 66.664%,\n            #51a071 83.33%,\n            #559e5e);\n    content: \"\";\n    height: 4px;\n    left: 0;\n    position: relative;\n    top: 0;\n    width: 100%;\n}\n\n.ot-footer-privacy {\n    background-color: #346e4a;\n}\n\n.ot-footer-privacy .ot-footer-body-text {\n    font-size: 24px;\n    line-height: 28px;\n}\n\n.ot-footer-title__text {\n    font-size: 40px;\n    line-height: 48px;\n    font-weight: 300;\n}\n\n/* Responsive styles - Tablet */\n@media (max-width: 768px) {\n    .ot-footer-padding-left-64,\n    .ot-footer-padding-left-40 {\n        padding-left: 22px;\n    }\n\n    .ot-footer-padding-right-64,\n    .ot-footer-padding-right-40 {\n        padding-right: 22px;\n    }\n\n    .ot-footer-separator__spacing--large {\n        margin-top: 14px;\n        margin-bottom: 14px;\n    }\n\n    .ot-footer-links {\n        gap: 20px;\n    }\n\n    .ot-footer-links_content {\n        display: flex;\n        flex-direction: column;\n        gap: 20px;\n    }\n\n    .ot-footer-links-block {\n        flex-direction: column;\n    }\n\n    .ot-footer-links-block h3 {\n        width: auto;\n        margin-bottom: 10px;\n        margin-right: 0;\n    }\n\n    .ot-footer-links-block ul {\n        margin-right: 0;\n        max-width: initial;\n    }\n\n    .ot-footer-links-block.ot-footer-flex-direction.ot-footer-padding-right-32 {\n        padding-right: 0;\n    }\n\n    .ot-footer-links-block.ot-footer-flex-direction + .ot-footer-links-block.ot-footer-flex-direction {\n        margin-top: 20px;\n    }\n\n    .ot-footer-privacy {\n        padding-right: 22px;\n    }\n\n    .ot-footer-privacy.ot-footer-padding-bottom-16 {\n        padding-bottom: 36px;\n    }\n\n    .ot-footer-privacy h2 {\n        font-size: 34px;\n        line-height: normal;\n    }\n}\n\n/* Responsive styles - Mobile */\n@media (max-width: 512px) {\n    .ot-footer-links {\n        grid-template-columns: repeat(1, 100%);\n    }\n}","stylesheet_hub3":"","javascript":"","javascript_hub2":"// START hides pages tab from search  \n (function hidePagesTab() {\n    const hide = (root = document) => {\n      root.querySelectorAll('.Tabs-listItem[aria-label=\"Pages\"]').forEach(el => {\n        el.style.display = 'none';\n      });\n    };\n\n    // Initial try (covers already-rendered nodes)\n    hide();\n\n    // Observe future changes\n    const observer = new MutationObserver(mutations => {\n      for (const m of mutations) {\n        // Check new nodes and attribute changes\n        if (m.type === 'childList') {\n          m.addedNodes.forEach(node => {\n            if (node.nodeType === 1) {\n              if (node.matches?.('.Tabs-listItem[aria-label=\"Pages\"]')) {\n                node.style.display = 'none';\n              }\n              // Also scan descendants in case a container was added\n              hide(node);\n            }\n          });\n        } else if (m.type === 'attributes') {\n          const target = m.target;\n          if (target.matches?.('.Tabs-listItem[aria-label=\"Pages\"]')) {\n            target.style.display = 'none';\n          }\n        }\n      }\n    });\n\n    // Pick the narrowest stable container if possible\n    const tablist = document.querySelector('.Tabs[role=\"tablist\"], .Tabs.Tabs-list, .Tabs');\n    observer.observe(tablist || document.body, {\n      childList: true,\n      subtree: true,\n      attributes: true,\n      attributeFilter: ['class', 'style', 'aria-label'] // keep it efficient\n    });\n   })();\n// END hides pages tab from search  \n\n\n\n// Check if the current path matches the target path\nif (window.location.pathname === \"/onetrust/page/partners\") {\n   document.getElementById(\"checklist-steps\").insertAdjacentHTML('afterbegin', `\n          \u003cdiv class=\"checklist-progress_inner__step\">\n            \u003clabel for=\"step-1\">Sign Up\u003c/label>\n          \u003c/div>\n          \u003cdiv class=\"checklist-progress_inner__step\">\n            \u003clabel for=\"step-2\">System Info\u003c/label>\n          \u003c/div>\n          \u003cdiv class=\"checklist-progress_inner__step\">\n            \u003clabel for=\"step-3\">Integration Details\u003c/label>\n          \u003c/div>\n          \u003cdiv class=\"checklist-progress_inner__step\">\n            \u003clabel for=\"step-4\">Publishing\u003c/label>\n          \u003c/div>\n          \u003cdiv class=\"checklist-progress_inner__step\">\n            \u003clabel for=\"step-5\">Resources\u003c/label>\n          \u003c/div>\n            `); \n   document.getElementById(\"checklist-container\").insertAdjacentHTML('beforeend', `\n  \t\t\u003ca class=\"btn btn-light-checklist\" href=\"javascript:void(0);\" onclick=\"showModal()\">Jump into the Detailed Requirements\u003c/a>\n\t\t\t`);\n  document.getElementById(\"checklist-radios\").outerHTML = `\n                \u003cinput checked=\"checked\" id=\"step-1\" name=\"step\" type=\"radio\">\n                \u003cinput id=\"step-2\" name=\"step\" type=\"radio\">\n                \u003cinput id=\"step-3\" name=\"step\" type=\"radio\">\n                \u003cinput id=\"step-4\" name=\"step\" type=\"radio\">\n                \u003cinput id=\"step-5\" name=\"step\" type=\"radio\">\n            `;\ndocument.querySelectorAll('.step-navigation').forEach(element => {\n            element.innerHTML = `\n                \u003cbutton id=\"prev-button\" onclick=\"moveStep(-1)\">\u003cspan>&#9664;\u003c/span>\u003c/button>\n          \t\t\t\u003cbutton id=\"next-button\" onclick=\"moveStep(1)\">\u003cspan>&#9654;\u003c/span>\u003c/button>\n            `;\n        });  \n    // Function to load a script and call a callback once it's loaded\n    function loadScript(src, callback) {\n        var script = document.createElement('script');\n        script.src = src;\n        script.crossOrigin = \"anonymous\";\n        script.referrerPolicy = \"no-referrer\";\n        script.onload = callback;\n        document.head.appendChild(script);\n    }\n\n    // Function to load a stylesheet\n    function loadStylesheet(href) {\n        var link = document.createElement('link');\n        link.href = href;\n        link.rel = \"stylesheet\";\n        link.crossOrigin = \"anonymous\";\n        link.referrerPolicy = \"no-referrer\";\n        document.head.appendChild(link);\n    }\n    // Load stylesheets\n    const stylesheets = [\n        \"https://cdnjs.cloudflare.com/ajax/libs/bootstrap/4.5.3/css/bootstrap.min.css\",\n        \"https://cdn.lineicons.com/4.0/lineicons.css\",\n        \"https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.min.css\",\n        \"https://cdnjs.cloudflare.com/ajax/libs/nivo-lightbox/1.3.1/nivo-lightbox.css\",\n        \"https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.theme.default.css\",\n        \"https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/magnific-popup.css\"\n    ];\n\n    stylesheets.forEach(loadStylesheet);\n\n    // Load jQuery first, then other scripts, and finally the scroll function\n    loadScript(\"https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js\", function () {\n        const scripts = [\n            \"https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.7.1/modernizr.min.js\",\n            \"https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/js/bootstrap.min.js\",\n            \"https://cdnjs.cloudflare.com/ajax/libs/stickyNavbar.js/1.3.5/jquery.stickyNavbar.min.js\",\n            \"https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js\",\n            \"https://cdnjs.cloudflare.com/ajax/libs/popper.js/2.9.3/umd/popper.min.js\",\n            \"https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js\",\n            \"https://cdnjs.cloudflare.com/ajax/libs/nivo-lightbox/1.3.1/nivo-lightbox.js\",\n            \"https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/jquery.magnific-popup.min.js\",\n            'https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.10/vue.min.js'\n        ];\n\n        scripts.forEach(function (src, index) {\n            loadScript(src, index === scripts.length - 1);\n        });\n    });\n\n\n\n\n    /*! modernizr 3.7.1 (Custom Build) | MIT *\n    * https://modernizr.com/download/?-cssanimations-csscolumns-customelements-flexbox-history-picture-pointerevents-postmessage-sizes-srcset-webgl-websockets-webworkers-addtest-domprefixes-hasevent-mq-prefixedcssvalue-prefixes-setclasses-testallprops-testprop-teststyles !*/\n    !function (e, t, n) { function r(e, t) { return typeof e === t } function o(e) { var t = b.className, n = Modernizr._config.classPrefix || \"\"; if (S && (t = t.baseVal), Modernizr._config.enableJSClass) { var r = new RegExp(\"(^|\\\\s)\" + n + \"no-js(\\\\s|$)\"); t = t.replace(r, \"$1\" + n + \"js$2\") } Modernizr._config.enableClasses && (e.length > 0 && (t += \" \" + n + e.join(\" \" + n)), S ? b.className.baseVal = t : b.className = t) } function i(e, t) { if (\"object\" == typeof e) for (var n in e) E(e, n) && i(n, e[n]); else { e = e.toLowerCase(); var r = e.split(\".\"), s = Modernizr[r[0]]; if (2 === r.length && (s = s[r[1]]), void 0 !== s) return Modernizr; t = \"function\" == typeof t ? t() : t, 1 === r.length ? Modernizr[r[0]] = t : (!Modernizr[r[0]] || Modernizr[r[0]] instanceof Boolean || (Modernizr[r[0]] = new Boolean(Modernizr[r[0]])), Modernizr[r[0]][r[1]] = t), o([(t && !1 !== t ? \"\" : \"no-\") + r.join(\"-\")]), Modernizr._trigger(e, t) } return Modernizr } function s() { return \"function\" != typeof t.createElement ? t.createElement(arguments[0]) : S ? t.createElementNS.call(t, \"http://www.w3.org/2000/svg\", arguments[0]) : t.createElement.apply(t, arguments) } function a() { var e = t.body; return e || (e = s(S ? \"svg\" : \"body\"), e.fake = !0), e } function l(e, n, r, o) { var i, l, u, f, c = \"modernizr\", d = s(\"div\"), p = a(); if (parseInt(r, 10)) for (; r--;)u = s(\"div\"), u.id = o ? o[r] : c + (r + 1), d.appendChild(u); return i = s(\"style\"), i.type = \"text/css\", i.id = \"s\" + c, (p.fake ? p : d).appendChild(i), p.appendChild(d), i.styleSheet ? i.styleSheet.cssText = e : i.appendChild(t.createTextNode(e)), d.id = c, p.fake && (p.style.background = \"\", p.style.overflow = \"hidden\", f = b.style.overflow, b.style.overflow = \"hidden\", b.appendChild(p)), l = n(d, e), p.fake ? (p.parentNode.removeChild(p), b.style.overflow = f, b.offsetHeight) : d.parentNode.removeChild(d), !!l } function u(e, t) { return !!~(\"\" + e).indexOf(t) } function f(e) { return e.replace(/([A-Z])/g, function (e, t) { return \"-\" + t.toLowerCase() }).replace(/^ms-/, \"-ms-\") } function c(t, n, r) { var o; if (\"getComputedStyle\" in e) { o = getComputedStyle.call(e, t, n); var i = e.console; if (null !== o) r && (o = o.getPropertyValue(r)); else if (i) { var s = i.error ? \"error\" : \"log\"; i[s].call(i, \"getComputedStyle returning null, its possible modernizr test results are inaccurate\") } } else o = !n && t.currentStyle && t.currentStyle[r]; return o } function d(t, r) { var o = t.length; if (\"CSS\" in e && \"supports\" in e.CSS) { for (; o--;)if (e.CSS.supports(f(t[o]), r)) return !0; return !1 } if (\"CSSSupportsRule\" in e) { for (var i = []; o--;)i.push(\"(\" + f(t[o]) + \":\" + r + \")\"); return i = i.join(\" or \"), l(\"@supports (\" + i + \") { #modernizr { position: absolute; } }\", function (e) { return \"absolute\" === c(e, null, \"position\") }) } return n } function p(e) { return e.replace(/([a-z])-([a-z])/g, function (e, t, n) { return t + n.toUpperCase() }).replace(/^-/, \"\") } function m(e, t, o, i) { function a() { f && (delete L.style, delete L.modElem) } if (i = !r(i, \"undefined\") && i, !r(o, \"undefined\")) { var l = d(e, o); if (!r(l, \"undefined\")) return l } for (var f, c, m, h, v, A = [\"modernizr\", \"tspan\", \"samp\"]; !L.style && A.length;)f = !0, L.modElem = s(A.shift()), L.style = L.modElem.style; for (m = e.length, c = 0; c \u003c m; c++)if (h = e[c], v = L.style[h], u(h, \"-\") && (h = p(h)), L.style[h] !== n) { if (i || r(o, \"undefined\")) return a(), \"pfx\" !== t || h; try { L.style[h] = o } catch (e) { } if (L.style[h] !== v) return a(), \"pfx\" !== t || h } return a(), !1 } function h(e, t) { return function () { return e.apply(t, arguments) } } function v(e, t, n) { var o; for (var i in e) if (e[i] in t) return !1 === n ? e[i] : (o = t[e[i]], r(o, \"function\") ? h(o, n || t) : o); return !1 } function A(e, t, n, o, i) { var s = e.charAt(0).toUpperCase() + e.slice(1), a = (e + \" \" + z.join(s + \" \") + s).split(\" \"); return r(t, \"string\") || r(t, \"undefined\") ? m(a, t, o, i) : (a = (e + \" \" + x.join(s + \" \") + s).split(\" \"), v(a, t, n)) } function g(e, t, r) { return A(e, n, n, t, r) } var y = [], w = { _version: \"3.7.1\", _config: { classPrefix: \"\", enableClasses: !0, enableJSClass: !0, usePrefixes: !0 }, _q: [], on: function (e, t) { var n = this; setTimeout(function () { t(n[e]) }, 0) }, addTest: function (e, t, n) { y.push({ name: e, fn: t, options: n }) }, addAsyncTest: function (e) { y.push({ name: null, fn: e }) } }, Modernizr = function () { }; Modernizr.prototype = w, Modernizr = new Modernizr; var C = [], b = t.documentElement, S = \"svg\" === b.nodeName.toLowerCase(), _ = \"Moz O ms Webkit\", x = w._config.usePrefixes ? _.toLowerCase().split(\" \") : []; w._domPrefixes = x; var T = w._config.usePrefixes ? \" -webkit- -moz- -o- -ms- \".split(\" \") : [\"\", \"\"]; w._prefixes = T; var E; !function () { var e = {}.hasOwnProperty; E = r(e, \"undefined\") || r(e.call, \"undefined\") ? function (e, t) { return t in e && r(e.constructor.prototype[t], \"undefined\") } : function (t, n) { return e.call(t, n) } }(), w._l = {}, w.on = function (e, t) { this._l[e] || (this._l[e] = []), this._l[e].push(t), Modernizr.hasOwnProperty(e) && setTimeout(function () { Modernizr._trigger(e, Modernizr[e]) }, 0) }, w._trigger = function (e, t) { if (this._l[e]) { var n = this._l[e]; setTimeout(function () { var e; for (e = 0; e \u003c n.length; e++)(0, n[e])(t) }, 0), delete this._l[e] } }, Modernizr._q.push(function () { w.addTest = i }); var P = function () { function e(e, r) { var o; return !!e && (r && \"string\" != typeof r || (r = s(r || \"div\")), e = \"on\" + e, o = e in r, !o && t && (r.setAttribute || (r = s(\"div\")), r.setAttribute(e, \"\"), o = \"function\" == typeof r[e], r[e] !== n && (r[e] = n), r.removeAttribute(e)), o) } var t = !(\"onblur\" in b); return e }(); w.hasEvent = P; var k = function () { var t = e.matchMedia || e.msMatchMedia; return t ? function (e) { var n = t(e); return n && n.matches || !1 } : function (t) { var n = !1; return l(\"@media \" + t + \" { #modernizr { position: absolute; } }\", function (t) { n = \"absolute\" === (e.getComputedStyle ? e.getComputedStyle(t, null) : t.currentStyle).position }), n } }(); w.mq = k; var B = function (e, t) { var n = !1, r = s(\"div\"), o = r.style; if (e in o) { var i = x.length; for (o[e] = t, n = o[e]; i-- && !n;)o[e] = \"-\" + x[i] + \"-\" + t, n = o[e] } return \"\" === n && (n = !1), n }; w.prefixedCSSValue = B; var z = w._config.usePrefixes ? _.split(\" \") : []; w._cssomPrefixes = z; var O = { elem: s(\"modernizr\") }; Modernizr._q.push(function () { delete O.elem }); var L = { style: O.elem.style }; Modernizr._q.unshift(function () { delete L.style }), w.testAllProps = A, w.testAllProps = g; w.testProp = function (e, t, r) { return m([e], n, t, r) }, w.testStyles = l; Modernizr.addTest(\"customelements\", \"customElements\" in e), Modernizr.addTest(\"history\", function () { var t = navigator.userAgent; return (-1 === t.indexOf(\"Android 2.\") && -1 === t.indexOf(\"Android 4.0\") || -1 === t.indexOf(\"Mobile Safari\") || -1 !== t.indexOf(\"Chrome\") || -1 !== t.indexOf(\"Windows Phone\") || \"file:\" === location.protocol) && (e.history && \"pushState\" in e.history) }), Modernizr.addTest(\"pointerevents\", function () { var e = !1, t = x.length; for (e = Modernizr.hasEvent(\"pointerdown\"); t-- && !e;)P(x[t] + \"pointerdown\") && (e = !0); return e }); var N = new Boolean(\"postMessage\" in e); N.structuredclones = !0; try { e.postMessage({ toString: function () { N.structuredclones = !1 } }, \"*\") } catch (e) { } Modernizr.addTest(\"postmessage\", N), Modernizr.addTest(\"webgl\", function () { return \"WebGLRenderingContext\" in e }); var R = !1; try { R = \"WebSocket\" in e && 2 === e.WebSocket.CLOSING } catch (e) { } Modernizr.addTest(\"websockets\", R), Modernizr.addTest(\"cssanimations\", g(\"animationName\", \"a\", !0)), function () { Modernizr.addTest(\"csscolumns\", function () { var e = !1, t = g(\"columnCount\"); try { e = !!t, e && (e = new Boolean(e)) } catch (e) { } return e }); for (var e, t, n = [\"Width\", \"Span\", \"Fill\", \"Gap\", \"Rule\", \"RuleColor\", \"RuleStyle\", \"RuleWidth\", \"BreakBefore\", \"BreakAfter\", \"BreakInside\"], r = 0; r \u003c n.length; r++)e = n[r].toLowerCase(), t = g(\"column\" + n[r]), \"breakbefore\" !== e && \"breakafter\" !== e && \"breakinside\" !== e || (t = t || g(n[r])), Modernizr.addTest(\"csscolumns.\" + e, t) }(), Modernizr.addTest(\"flexbox\", g(\"flexBasis\", \"1px\", !0)), Modernizr.addTest(\"picture\", \"HTMLPictureElement\" in e), Modernizr.addAsyncTest(function () { var e, t, n, r = s(\"img\"), o = \"sizes\" in r; !o && \"srcset\" in r ? (t = \"data:image/gif;base64,R0lGODlhAgABAPAAAP///wAAACH5BAAAAAAALAAAAAACAAEAAAICBAoAOw==\", e = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\", n = function () { i(\"sizes\", 2 === r.width) }, r.onload = n, r.onerror = n, r.setAttribute(\"sizes\", \"9px\"), r.srcset = e + \" 1w,\" + t + \" 8w\", r.src = e) : i(\"sizes\", o) }), Modernizr.addTest(\"srcset\", \"srcset\" in s(\"img\")), Modernizr.addTest(\"webworkers\", \"Worker\" in e), function () { var e, t, n, o, i, s, a; for (var l in y) if (y.hasOwnProperty(l)) { if (e = [], t = y[l], t.name && (e.push(t.name.toLowerCase()), t.options && t.options.aliases && t.options.aliases.length)) for (n = 0; n \u003c t.options.aliases.length; n++)e.push(t.options.aliases[n].toLowerCase()); for (o = r(t.fn, \"function\") ? t.fn() : t.fn, i = 0; i \u003c e.length; i++)s = e[i], a = s.split(\".\"), 1 === a.length ? Modernizr[a[0]] = o : (!Modernizr[a[0]] || Modernizr[a[0]] instanceof Boolean || (Modernizr[a[0]] = new Boolean(Modernizr[a[0]])), Modernizr[a[0]][a[1]] = o), C.push((o ? \"\" : \"no-\") + a.join(\"-\")) } }(), o(C), delete w.addTest, delete w.addAsyncTest; for (var j = 0; j \u003c Modernizr._q.length; j++)Modernizr._q[j](); e.Modernizr = Modernizr }(window, document);\n    (function ($) {\n\n        \"use strict\";\n\n\n        /* Screens Shot Slider\n        =============================*/\n        var owl = $(\".touch-slider\");\n        owl.owlCarousel({\n            center: true,\n            navigation: false,\n            pagination: true,\n            slideSpeed: 1000,\n            stopOnHover: true,\n            autoPlay: true,\n            touchDrag: true,\n            responsive: {\n                0: {\n                    items: 1\n                },\n\n                480: {\n                    items: 2\n                },\n\n                768: {\n                    items: 3\n                },\n\n                992: {\n                    items: 4\n                },\n\n                1199: {\n                    items: 5\n                }\n            },\n            items: 5,\n            itemsDesktopSmall: [1024, 3],\n            itemsTablet: [600, 1],\n            itemsMobile: [479, 1]\n        });\n\n\n        // for menu scroll \n        $('.page-scroll').click(function () {\n            var hash = this.hash;\n            var position = $(hash).offset().top - 60;\n            $('html').animate({\n                scrollTop: position\n            }, 900);\n        });\n\n\n        /* \n         One Page Navigation & wow js\n         ========================================================================== */\n\n        $(window).on('load', function () {\n\n            $('body').scrollspy({\n                target: '.navbar-collapse',\n                offset: 195\n            });\n\n            $(window).on('scroll', function () {\n                if ($(window).scrollTop() > 100) {\n                    $('.fixed-top').addClass('menu-bg');\n                } else {\n                    $('.fixed-top').removeClass('menu-bg');\n                }\n            });\n\n        });\n\n        /* Auto Close Responsive Navbar on Click\n        ========================================================*/\n        function close_toggle() {\n            if ($(window).width() \u003c= 768) {\n                $('.navbar-collapse a').on('click', function () {\n                    $('.navbar-collapse').collapse('hide');\n                });\n            }\n            else {\n                $('.navbar .navbar-inverse a').off('click');\n            }\n        }\n        close_toggle();\n        $(window).resize(close_toggle);\n\n        /* Nivo Lightbox\n        ========================================================*/\n        $('.lightbox').nivoLightbox({\n            effect: 'fadeScale',\n            keyboardNav: true,\n        });\n\n    });\n\n    /*\n     * jQuery One Page Nav Plugin\n     * http://github.com/davist11/jQuery-One-Page-Nav\n     *\n     * Copyright (c) 2010 Trevor Davis (http://trevordavis.net)\n     * Dual licensed under the MIT and GPL licenses.\n     * Uses the same license as jQuery, see:\n     * http://jquery.org/license\n     *\n     * @version 3.0.0\n     *\n     * Example usage:\n     * $('#nav').onePageNav({\n     *   currentClass: 'current',\n     *   changeHash: false,\n     *   scrollSpeed: 750\n     * });\n     */\n\n    (function ($, window, document, undefined) {\n\n        // our plugin constructor\n        var OnePageNav = function (elem, options) {\n            this.elem = elem;\n            this.$elem = $(elem);\n            this.options = options;\n            this.metadata = this.$elem.data('plugin-options');\n            this.$win = $(window);\n            this.sections = {};\n            this.didScroll = false;\n            this.$doc = $(document);\n            this.docHeight = this.$doc.height();\n        };\n\n        // the plugin prototype\n        OnePageNav.prototype = {\n            defaults: {\n                navItems: 'a',\n                currentClass: 'current',\n                changeHash: false,\n                easing: 'swing',\n                filter: '',\n                scrollSpeed: 750,\n                scrollThreshold: 0.5,\n                begin: false,\n                end: false,\n                scrollChange: false\n            },\n\n            init: function () {\n                // Introduce defaults that can be extended either\n                // globally or using an object literal.\n                this.config = $.extend({}, this.defaults, this.options, this.metadata);\n\n                this.$nav = this.$elem.find(this.config.navItems);\n\n                //Filter any links out of the nav\n                if (this.config.filter !== '') {\n                    this.$nav = this.$nav.filter(this.config.filter);\n                }\n\n                //Handle clicks on the nav\n                this.$nav.on('click.onePageNav', $.proxy(this.handleClick, this));\n\n                //Get the section positions\n                this.getPositions();\n\n                //Handle scroll changes\n                this.bindInterval();\n\n                //Update the positions on resize too\n                this.$win.on('resize.onePageNav', $.proxy(this.getPositions, this));\n\n                return this;\n            },\n\n            adjustNav: function (self, $parent) {\n                self.$elem.find('.' + self.config.currentClass).removeClass(self.config.currentClass);\n                $parent.addClass(self.config.currentClass);\n            },\n\n            bindInterval: function () {\n                var self = this;\n                var docHeight;\n\n                self.$win.on('scroll.onePageNav', function () {\n                    self.didScroll = true;\n                });\n\n                self.t = setInterval(function () {\n                    docHeight = self.$doc.height();\n\n                    //If it was scrolled\n                    if (self.didScroll) {\n                        self.didScroll = false;\n                        self.scrollChange();\n                    }\n\n                    //If the document height changes\n                    if (docHeight !== self.docHeight) {\n                        self.docHeight = docHeight;\n                        self.getPositions();\n                    }\n                }, 250);\n            },\n\n            getHash: function ($link) {\n                return $link.attr('href').split('#')[1];\n            },\n\n            getPositions: function () {\n                var self = this;\n                var linkHref;\n                var topPos;\n                var $target;\n\n                self.$nav.each(function () {\n                    linkHref = self.getHash($(this));\n                    $target = $('#' + linkHref);\n\n                    if ($target.length) {\n                        topPos = $target.offset().top;\n                        self.sections[linkHref] = Math.round(topPos);\n                    }\n                });\n            },\n\n            getSection: function (windowPos) {\n                var returnValue = null;\n                var windowHeight = Math.round(this.$win.height() * this.config.scrollThreshold);\n\n                for (var section in this.sections) {\n                    if ((this.sections[section] - windowHeight) \u003c windowPos) {\n                        returnValue = section;\n                    }\n                }\n\n                return returnValue;\n            },\n\n            handleClick: function (e) {\n                var self = this;\n                var $link = $(e.currentTarget);\n                var $parent = $link.parent();\n                var newLoc = '#' + self.getHash($link);\n\n                if (!$parent.hasClass(self.config.currentClass)) {\n                    //Start callback\n                    if (self.config.begin) {\n                        self.config.begin();\n                    }\n\n                    //Change the highlighted nav item\n                    self.adjustNav(self, $parent);\n\n                    //Removing the auto-adjust on scroll\n                    self.unbindInterval();\n\n                    //Scroll to the correct position\n                    self.scrollTo(newLoc, function () {\n                        //Do we need to change the hash?\n                        if (self.config.changeHash) {\n                            window.location.hash = newLoc;\n                        }\n\n                        //Add the auto-adjust on scroll back in\n                        self.bindInterval();\n\n                        //End callback\n                        if (self.config.end) {\n                            self.config.end();\n                        }\n                    });\n                }\n\n                e.preventDefault();\n            },\n\n            scrollChange: function () {\n                var windowTop = this.$win.scrollTop();\n                var position = this.getSection(windowTop);\n                var $parent;\n\n                //If the position is set\n                if (position !== null) {\n                    $parent = this.$elem.find('a[href$=\"#' + position + '\"]').parent();\n\n                    //If it's not already the current section\n                    if (!$parent.hasClass(this.config.currentClass)) {\n                        //Change the highlighted nav item\n                        this.adjustNav(this, $parent);\n\n                        //If there is a scrollChange callback\n                        if (this.config.scrollChange) {\n                            this.config.scrollChange($parent);\n                        }\n                    }\n                }\n            },\n\n            scrollTo: function (target, callback) {\n                var offset = $(target).offset().top;\n\n                $('html, body').animate({\n                    scrollTop: offset\n                }, this.config.scrollSpeed, this.config.easing, callback);\n            },\n\n            unbindInterval: function () {\n                clearInterval(this.t);\n                this.$win.unbind('scroll.onePageNav');\n            }\n        };\n      \n      \n\n        OnePageNav.defaults = OnePageNav.prototype.defaults;\n\n        $.fn.onePageNav = function (options) {\n            return this.each(function () {\n                new OnePageNav(this, options).init();\n            });\n        };\n\n    });\n\n\n    //jQuery to collapse the navbar on scroll\n    window.addEventListener('scroll', function () {\n        if (window.pageYOffset > 50) {\n            $(\".navbar-fixed-top\").addClass(\"top-nav-collapse\");\n        } else {\n            $(\".navbar-fixed-top\").removeClass(\"top-nav-collapse\");\n        }\n    });\n    //jQuery for page scrolling feature - requires jQuery Easing plugin\n    $(function () {\n\n        $('a.page-scroll[href*=\"#\"]:not([href=\"#\"])').on('click', function () {\n            if (location.pathname.replace(/^\\//, '') == this.pathname.replace(/^\\//, '') && location.hostname == this.hostname) {\n                var target = $(this.hash);\n                target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');\n                if (target.length) {\n                    $('html, body').animate({\n                        scrollTop: (target.offset().top - 80)\n                    }, 1500, \"easeInOutExpo\");\n                    return false;\n                }\n            }\n        });\n\n    });\n  // sticky menu \n$(window).on('scroll', function (event) {\n    var scroll = $(window).scrollTop();\n    if (scroll \u003c 20) {\n        $(\".navbar-area\").removeClass(\"sticky menu-bg\");\n    } else {\n        $(\".navbar-area\").addClass(\"sticky menu-bg\");\n    }\n    //===== Section Menu Active\n    var scrollLink = $('.page-scroll');\n    var scrollbarLocation = $(this).scrollTop();\n    scrollLink.each(function () {\n        var sectionOffset = $(this.hash).offset().top - 73;\n        if (sectionOffset \u003c= scrollbarLocation) {\n            $(this).parent().addClass('active');\n            $(this).parent().siblings().removeClass('active');\n        }\n    });\n});\n\n\n//checklist modal \n  function showModal() {\n        \n    document.getElementById(\"checklist-modal\").style.display = \"block\";\n    \n  }\n\n  function closeModal() {\n    document.getElementById(\"checklist-modal\").style.display = \"none\";\n  }\n\n  window.onclick = function (event) {\n    var modal = document.getElementById(\"checklist-modal\");\n    if (event.target == modal) {\n      modal.style.display = \"none\";\n    }\n  }\n\n//===== close navbar-collapse when a  clicked\n\n$(\".navbar-nav a\").on('click', function () {\n    $(\".navbar-collapse\").removeClass(\"show\");\n});\n\n$(\".navbar-toggler\").on('click', function () {\n    $(this).toggleClass(\"active\");\n});\n\n$(\".navbar-nav a\").on('click', function () {\n    $(\".navbar-toggler\").removeClass('active');\n}); \n\n            const steps = document.querySelectorAll('input[name=\"step\"]');\n            let currentStep = 0;\n\n            function updateButtons() {\n                const buttons = document.getElementsByTagName('button');\n                for (let button of buttons) {\n                    if (button.id === 'prev-button') {\n                        button.disabled = currentStep === 0;\n                    } else if (button.id === 'next-button') {\n                      if(currentStep === steps.length - 1){\n                      button.outerHTML = '\u003cbutton id=\"next-button\" onclick=\"closeModal()\">\u003cspan>Finish\u003c/span>\u003c/button>';\n                      }else{\n                        button.outerHTML = '\u003cbutton id=\"next-button\" onclick=\"moveStep(1)\">\u003cspan>&#9654;\u003c/span>\u003c/button>'\n                      }\n                       \n                    }\n                }\n            }\n\n            function moveStep(direction) {\n                steps[currentStep].checked = false;\n                currentStep += direction;\n                steps[currentStep].checked = true;\n                updateButtons();\n            }\n\n            // Initial button state\n            updateButtons();\n}","html_promo":"","html_body":"","html_footer":"\u003cfooter class=\"ot-footer\" aria-hidden=\"false\">\n  \u003cdiv class=\"ot-footer-container ot-footer-text-color--white\">\n    \u003cdiv class=\"ot-footer-content ot-footer-padding-right-64 ot-footer-padding-left-64\">\n      \u003cdiv class=\"ot-footer-separator\">\n        \u003chr class=\"ot-footer-separator__horizontal-rule ot-footer-separator__spacing--large\">\n      \u003c/div>\n      \u003cdiv class=\"ot-footer-separator\">\n        \u003chr class=\"ot-footer-separator__horizontal-rule ot-footer-separator__spacing--large\">\n      \u003c/div>\n      \u003cdiv class=\"ot-footer-links\">\n        \u003cdiv class=\"ot-footer-links_content\">\n          \u003cdiv class=\"ot-footer-links-block\">\n            \u003cdiv class=\"ot-footer-font-weight-thin\">Getting Started\u003c/div>\n            \u003cul class=\"ot-footer-list\">\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://developer.onetrust.com/onetrust/reference/quick-start-guide\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Quick Start Guide: APIs\u003c/span>\u003c/a>\u003c/li>\n                    \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://developer.onetrust.com/onetrust/docs/onetrust-sdk-reference\">\u003cspan\n                    class=\"ot-footer-list__item-title\">SDK Reference\u003c/span>\u003c/a>\u003c/li>\n                    \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://developer.onetrust.com/onetrust/recipes\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Recipes\u003c/span>\u003c/a>\u003c/li>\n                    \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://developer.onetrust.com/onetrust/changelog\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Changelog\u003c/span>\u003c/a>\u003c/li>\n                    \n            \u003c/ul>\n          \u003c/div>\n          \u003cdiv class=\"ot-footer-links-block\">\n            \u003cdiv class=\"ot-footer-font-weight-thin\">Knowledge Base\u003c/div>\n            \u003cul class=\"ot-footer-list\">\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/topiccatalog\">\u003cspan class=\"ot-footer-list__item-title\">Articles\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/documents\">\u003cspan class=\"ot-footer-list__item-title\">Documents\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/group/0F91Q000000hGyPSAU\">\u003cspan class=\"ot-footer-list__item-title\">Developer Forum\u003c/span>\u003c/a>\u003c/li>\n            \u003c/ul>\n          \u003c/div>\n          \u003cdiv class=\"ot-footer-links-block\">\n            \u003cdiv class=\"ot-footer-font-weight-thin\">Help Options\u003c/div>\n            \u003cul class=\"ot-footer-list\">\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/contactsupport\">\u003cspan class=\"ot-footer-list__item-title\">Help\n                    Options\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/case/Case/Default\">\u003cspan class=\"ot-footer-list__item-title\">View My\n                    Cases\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/system-status\">\u003cspan class=\"ot-footer-list__item-title\">System\n                    Status\u003c/span>\u003c/a>\u003c/li>\n            \u003c/ul>\n          \u003c/div>\n        \u003c/div>\n        \u003cdiv class=\"ot-footer-links_content\">\n          \u003cdiv class=\"ot-footer-links-block\">\n            \u003cdiv class=\"ot-footer-font-weight-thin\">OneTrust Seasonal Releases\u003c/div>\n            \u003cul class=\"ot-footer-list\">\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/article/UUID-6acbde09-4c77-1494-98b0-43aac83196ff\">\u003cspan\n                    class=\"ot-footer-list__item-title\">OneTrust\n                    Seasonal Releases\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/release-notes\">\u003cspan class=\"ot-footer-list__item-title\">Release\n                    Notes\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/article/UUID-20d037bc-96c1-e6f2-28ea-2c892a25483e\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Release\n                    Videos\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/article/Scheduled-Maintenance\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Scheduled\n                    Maintenace\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/https://podcast.onetrust.com/\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Talks Tech\n                    Podcast\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/article/UUID-8ee8e008-2561-dd9e-73c7-cd5d21af75bf\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Known Defect\n                    Database\u003c/span>\u003c/a>\u003c/li>\n            \u003c/ul>\n          \u003c/div>\n          \u003cdiv class=\"ot-footer-links-block\">\n            \u003cdiv class=\"ot-footer-font-weight-thin\">Consumer Resources\u003c/div>\n            \u003cul class=\"ot-footer-list\">\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/customer-resources\">\u003cspan class=\"ot-footer-list__item-title\">Consumer\n                    Resources\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://ideas.onetrust.com/\">\u003cspan class=\"ot-footer-list__item-title\">Idea\n                    Exchange\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://www.onetrust.com/news/\">\u003cspan class=\"ot-footer-list__item-title\">OneTrust\n                    News\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://developer.onetrust.com/onetrust/docs/taking-a-onetrust-hands-on-lab\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Hands-On\n                    Labs\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://www.onetrust.com/partners/\">\u003cspan class=\"ot-footer-list__item-title\">OneTrust\n                    Partner List\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://www.onetrust.com/resources/?resource-type=webinar\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Product\n                    Webinars\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://www.onetrust.com/certifications/\">\u003cspan class=\"ot-footer-list__item-title\">Training\n                    &amp; Certifications\u003c/span>\u003c/a>\u003c/li>\n            \u003c/ul>\n          \u003c/div>\n        \u003c/div>\n      \u003c/div>\n      \u003cdiv class=\"ot-footer-separator\">\n        \u003chr class=\"ot-footer-separator__horizontal-rule ot-footer-separator__spacing--large\">\n      \u003c/div>\n      \u003cdiv class=\"ot-footer-separator\">\n        \u003chr class=\"ot-footer-separator__horizontal-rule ot-footer-separator__spacing--large\">\n      \u003c/div>\n      \u003cdiv class=\"ot-footer-privacy-container\">\n        \u003cdiv class=\"ot-footer-privacy ot-footer-padding-left-40 ot-footer-padding-bottom-16\">\n          \u003cdiv class=\"ot-footer-separator\">\n            \u003chr class=\"ot-footer-separator__horizontal-rule ot-footer-separator__spacing--medium\">\n          \u003c/div>\n          \u003cdiv>\n            \u003ch2 class=\"ot-footer-title__text\">Privacy Matters\u003c/h2>\n            \u003ch4>\u003cspan class=\"ot-footer-body-1 ot-footer-font-weight-light ot-footer-height-38\">Our privacy center makes\n                it easy to see how\u003cbr>we collect and use your information.\u003c/span>\u003c/h4>\n          \u003c/div>\n          \u003cdiv class=\"ot-footer-separator\">\n            \u003chr class=\"ot-footer-separator__horizontal-rule ot-footer-separator__spacing--small\">\n          \u003c/div>\n          \u003cdiv class=\"ot-footer-links\">\n            \u003cdiv class=\"ot-footer-links-block ot-footer-flex-direction ot-footer-padding-right-32\">\n              \u003cdiv class=\"ot-footer-font-weight-light\">Your privacy\u003c/div>\n              \u003cp>\u003cspan class=\"ot-footer-font-weight-light\">When we\n                  collect your personal information, we always inform you of your rights\n                  and make it easy for you to exercise them. Where possible, we also let\n                  you manage your preferences about how much information you choose to\n                  share with us, or our partners.\u003c/span>\u003c/p>\n              \u003cdiv class=\"ot-footer-separator\">\n                \u003chr class=\"ot-footer-separator__horizontal-rule ot-footer-separator__spacing--small\">\n              \u003c/div>\n              \u003cp>\u003cspan class=\"ot-footer-text\">© 2026\n                  OneTrust, LLC. All Rights Reserved.\u003c/span>\u003c/p>\n            \u003c/div>\n            \u003cdiv class=\"ot-footer-links-block\">\n              \u003cdiv class=\"ot-footer-links-block ot-footer-flex-direction\">\n                \u003cdiv class=\"ot-footer-font-weight-thin\">Privacy Overview\u003c/div>\n                \u003cul class=\"ot-footer-list\">\n                  \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                      href=\"https://www.onetrust.com/privacy/\">\u003cspan class=\"ot-footer-list__item-title\">Privacy\n                        Overview\u003c/span>\u003c/a>\u003c/li>\n                  \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                      href=\"https://www.onetrust.com/privacy-notice/\">\u003cspan class=\"ot-footer-list__item-title\">Privacy\n                        Notice\u003c/span>\u003c/a>\u003c/li>\n                  \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                      href=\"https://www.onetrust.com/cookie-policy/\">\u003cspan class=\"ot-footer-list__item-title\">Cookie\n                        Notice\u003c/span>\u003c/a>\u003c/li>\n                  \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                      href=\"https://developer.onetrust.com/onetrust/page/cookie-list\">\u003cspan\n                        class=\"ot-footer-list__item-title\">Cookie List\u003c/span>\u003c/a>\u003c/li>\n                \u003c/ul>\n              \u003c/div>\n              \u003cdiv class=\"ot-footer-links-block ot-footer-flex-direction\">\n                \u003cdiv class=\"ot-footer-font-weight-thin\">Exercise Your Rights\u003c/div>\n                \u003cul class=\"ot-footer-list\">\n                  \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                      href=\"https://privacyportal-cdn.onetrust.com/dsarwebform/37bcc497-a196-48f1-a08b-e897b5a77859/08a01c64-41fd-4b4e-9d42-cde44371a422.html\">\u003cspan\n                        class=\"ot-footer-list__item-title\">Exercise Your Rights\u003c/span>\u003c/a>\u003c/li>\n                  \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                      href=\"https://trustcenter-privacy.my.onetrust.com/ui/#/preferences/multipage/login/2013df68-fd2a-4de0-89ff-973214c626b1\">\u003cspan\n                        class=\"ot-footer-list__item-title\">Manage Your Comunication\u003c/span>\u003c/a>\u003c/li>\n                  \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                      href=\"https://trustcenter-privacy.my.onetrust.com/ui/#/preferences/multipage/login/2013df68-fd2a-4de0-89ff-973214c626b1\">\u003cspan\n                        class=\"ot-footer-list__item-title\">Prefereces\u003c/span>\u003c/a>\u003c/li>\n                \u003c/ul>\n              \u003c/div>\n            \u003c/div>\n          \u003c/div>\n        \u003c/div>\n      \u003c/div>\n    \u003c/div>\n  \u003c/div>\n\u003c/footer>","html_head":"\u003c!--\u003cmeta http-equiv=\"Content-Security-Policy\" content=\"block-all-mixed-content ; default-src 'self'; script-src 'self' 'report-sample' 'unsafe-inline' 'unsafe-eval' geolocation.onetrust.com privacyportal.onetrust.com cdn.cookielaw.org cdn.readme.io github.com unpkg.com cdn.onetrust.com *.wistia.com *.wistia.net *.litix.io cdnjs.cloudflare.com *.onetrust.com; style-src 'self' 'unsafe-inline' fonts.gstatic.com fonts.googleapis.com cdn.lineicons.com cdnjs.cloudflare.com cdn.readme.io unpkg.com fast.wistia.com *.onetrust.com; object-src 'none'; frame-src 'self' cdn.embedly.com fast.wistia.com fast.wistia.net *.onetrust.com; child-src 'self' *.wistia.com *.onetrust.com; img-src 'self' data: blob: cdn.cookielaw.org *.pstmn.io files.readme.io unpkg.com img.shields.io *.onetrust.com *.wistia.com *.wistia.net embedwistia-a.akamaihd.net *.onetrust.com; font-src 'self' data: cdnjs.cloudflare.com fonts.gstatic.com fonts.googleapis.com cdn.lineicons.com cdn.readme.io unpkg.com *.wistia.com *.onetrust.com; connect-src 'self' geolocation.onetrust.com privacyportal.onetrust.com cdn.cookielaw.org *.onetrust.com try.readme.io *.ingest.sentry.io *.algolianet.com *.algolia.net *.algolia.io *.wistia.com *.wistia.net embedwistia-a.akamaihd.net embed-e.wistia.com *.litix.io; manifest-src 'self'; base-uri 'self'; form-action 'self'; media-src 'self' *.wistia.net *.wistia.com embedwistia-a.akamaihd.net; worker-src 'self';\">-->\n\u003cmeta http-equiv=\"Content-Security-Policy\" content=\"block-all-mixed-content; default-src 'self'; script-src 'self' 'report-sample' 'unsafe-inline' 'unsafe-eval' geolocation.onetrust.com privacyportal.onetrust.com cdn.cookielaw.org cdn.readme.io github.com unpkg.com cdn.onetrust.com *.wistia.com *.wistia.net *.litix.io cdnjs.cloudflare.com *.onetrust.com; style-src 'self' 'unsafe-inline' fonts.gstatic.com fonts.googleapis.com cdn.lineicons.com cdnjs.cloudflare.com cdn.readme.io unpkg.com fast.wistia.com *.onetrust.com; object-src 'none'; frame-src 'self' *.readme.com *.readme.io cdn.embedly.com fast.wistia.com fast.wistia.net *.onetrust.com; child-src 'self' *.wistia.com *.onetrust.com; img-src 'self' data: blob: cdn.cookielaw.org *.pstmn.io files.readme.io unpkg.com img.shields.io *.onetrust.com *.wistia.com *.wistia.net embedwistia-a.akamaihd.net *.onetrust.com; font-src 'self' data: cdnjs.cloudflare.com fonts.gstatic.com fonts.googleapis.com cdn.lineicons.com cdn.readme.io unpkg.com *.wistia.com *.onetrust.com; connect-src 'self' geolocation.onetrust.com privacyportal.onetrust.com cdn.cookielaw.org *.onetrust.com *.readme.io *.readme.com *.ingest.sentry.io *.algolianet.com *.algolia.net *.algolia.io *.wistia.com *.wistia.net embedwistia-a.akamaihd.net embed-e.wistia.com *.litix.io; manifest-src 'self'; base-uri 'self'; form-action 'self'; media-src 'self' *.wistia.net *.wistia.com embedwistia-a.akamaihd.net *.readme.io; worker-src 'self'; frame-ancestors 'self' cdn.readme.io *.readme.io *.readme.com *.onetrust.com;\">\n\u003c!-- OneTrust Cookies Consent Notice start for developer.onetrust.com -->\n\u003cscript src=\"https://cdn.cookielaw.org/consent/018f9b70-7823-7874-9581-b4ecf0e526a2/otSDKStub.js\"  type=\"text/javascript\" charset=\"UTF-8\" data-domain-script=\"018f9b70-7823-7874-9581-b4ecf0e526a2\" >\u003c/script>\n\u003cscript type=\"text/javascript\">\nfunction OptanonWrapper() { }\n\u003c/script>\n\u003c!-- OneTrust Cookies Consent Notice end for developer.onetrust.com -->\n\u003clink href=\"https://fonts.googleapis.com/css?family=Open+Sans\" rel=\"stylesheet\">\n\u003clink rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Rubik:400,400i,500\">\n\u003clink rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Poppins:400,500,600\">\n\u003clink href=\"https://cdn.lineicons.com/4.0/lineicons.css\" rel=\"stylesheet\" />\n\u003c!-- Google Site Verication -->\n\u003cmeta name=\"google-site-verification\" content=\"uKX18lBpCRTZkC5CvXhQfZ4NFHBxaWgJmrJNopgj6KA\" />","html_footer_meta":"","html_hidelinks":false,"showVersion":true,"hideTableOfContents":false,"nextStepsLabel":"","promos":[],"colorScheme":"system","logo_large":false,"changelog":{"layoutExpanded":false,"showAuthor":true,"showExactDate":false},"allowApiExplorerJsonEditor":false,"ai_dropdown":"disabled","ai_options":{"chatgpt":"enabled","claude":"enabled","clipboard":"enabled","copilot":"enabled","perplexity":"enabled","view_as_markdown":"enabled","ask_ai":"disabled","mcp":{"command":"enabled","config":"enabled","cursor":"enabled","vscode":"enabled"}},"showPageIcons":true,"layout":{"full_width":false,"style":"classic"},"methodBadgeStyle":"classic","showBreadcrumbs":false,"showMethodInSidebar":true,"collapsibleCategories":false,"oneOfLayout":"dropdown"},"child":{"_id":"620d23a442d78f05786a49c4","accessRules":{"branch_merge":{"admin":true,"editor":false},"branch_approve":{"admin":true,"editor":false}},"ai":{"chat":{"knowledge":{"custom_knowledge":null,"use_project_knowledge":false},"models":[]},"discovery":{"enabled":true,"content_signal":{"ai_train":false,"search":false,"ai_input":false},"link_headers":true,"markdown_negotiation":true,"agent_hint_banner":true,"api_catalog":true,"agent_skills_index":true,"mcp_server_card":true,"webmcp":true,"oauth":{"type":"none","issuer_url":"","authorization_servers":[],"resource_identifier":"","scopes_supported":[]}}},"appearance":{"rdmd":{"callouts":{"useIconFont":false},"theme":{"background":"","border":"","markdownEdge":"","markdownFont":"","markdownFontSize":"","markdownLineHeight":"","markdownRadius":"","markdownText":"","markdownTitle":"","markdownTitleFont":"","mdCodeBackground":"","mdCodeFont":"","mdCodeRadius":"","mdCodeTabs":"","mdCodeText":"","tableEdges":"","tableHead":"","tableHeadText":"","tableRow":"","tableStripe":"","tableText":"","text":"","title":""}},"main_body":{"type":"links"},"colors":{"highlight":"","main":"#000000","main_alt":"#2C6145","header_text":"","body_highlight":"#2C6145","custom_login_link_color":"","body_highlight_dark":""},"typography":{"headline":"Open+Sans:400:sans-serif","body":"Open+Sans:400:sans-serif","typekit":false,"tk_key":"","tk_headline":"","tk_body":"","code":"","custom_heading":null,"custom_body":null,"custom_code":null,"spacing":null},"header":{"style":"solid","img":["https://files.readme.io/32e2a364828b6b166fdd52768a9ee523d5481289d3a9406df47108ba727edaad-myot-hero-background.svg","32e2a364828b6b166fdd52768a9ee523d5481289d3a9406df47108ba727edaad-myot-hero-background.svg",null,null,"#007cc0",null,"6942ed9682fc97a0bb01ce5f"],"img_size":"cover","img_pos":"tl","linkStyle":"buttons"},"body":{"style":"none"},"global_landing_page":{"html":"","redirect":""},"referenceSimpleMode":true,"referenceLayout":"row","link_logo_to_url":true,"theme":"solid","overlay":"triangles","landing":true,"sticky":false,"hide_logo":true,"childrenAsPills":false,"subheaderStyle":"links","splitReferenceDocs":false,"showMetricsInReference":false,"logo":["https://files.readme.io/f83b3a1d97917287a00a51d521682cab46c9329551a2a7413cf6dba86bcf2708-ot-logo-lockup-white.svg","f83b3a1d97917287a00a51d521682cab46c9329551a2a7413cf6dba86bcf2708-ot-logo-lockup-white.svg",null,null,"#000000",null,"69c14d85923a290549918164"],"logo_white":["https://files.readme.io/0df333c-small-OT-logo-white-transparent-1200px.png","OT-logo-white-transparent-1200px.png",453,80,"#ffffff","https://files.readme.io/697279d-OT-logo-white-transparent-1200px.png"],"logo_white_use":true,"favicon":["https://files.readme.io/40ffb5b-OT-favicon.ico","OT-favicon.ico",32,32,"#000000"],"stylesheet":"","stylesheet_hub2":"/*\n(OneTrust Logo White Image | 2026/03/23 09:29:13 | null x null)\nhttps://files.readme.io/0459ab07c12f3bd23da65e2652e71cb7def368d1fa9a127aa83145dbe79f3dff-ot-logo-lockup-white.svg\n*/\n/*\n(API Landing Platform from myOT Image | 2026/01/14 14:18:59 | 88 x 85)\nhttps://files.readme.io/c2798a8f6906986f4645aaac8b3b73f3853d6d06052d52b685d4c6891bcd4a56-platform_myOT.png\n*/\n/*\n(API Landing Platform from myOT Image | 2026/01/14 14:17:50 | 130 x 129)\nhttps://files.readme.io/cc29d7007540d1b93da235524b8c4be595da0c2fcec872ebd39f49265ce631a7-platform_myOT.png\n*/\n\n/*\n(API Landing Platform Image | 2026/01/13 22:58:43 | null x null)\nhttps://files.readme.io/0a9056427106a578ee67bafd0f635e6ddaff86685a89cb2a91964791eb9d7428-OT-graphic-platform-break-down-silos.svg\n*/\n/*\n(API Landing AI Governance Image | 2025/12/18 10:44:38 | null x null)\nhttps://files.readme.io/fb566c6921532531c0c047cf3715e47200fac2dc3a6193c6971701e9f450348d-ai-gov-icon.svg\n*/\n/*\n(API Landing Consent & Preferences Image | 2025/12/18 10:44:25 | null x null)\nhttps://files.readme.io/dae3449f736e828fd7e4d85dc096374c684d9ab9010c85a7a61503e3b8f2a988-icon-consent-and-preferences-gradient.svg\n*/\n/*\n(API Landing Data Use Governance Image | 2025/12/18 10:44:10 | null x null)\nhttps://files.readme.io/d475c8ee55b97fc7811fd59651c3a772f145f755e41144ed95aeccddf16fe8f7-icon-data-use-governance-gradient.svg\n*/\n/*\n(API Landing Privacy Automation Image | 2025/12/18 10:43:57 | null x null)\nhttps://files.readme.io/f568abf1056140b6ab8d3e119597ae4c200fef6b2c72e6710dd775d5736b5d29-icon-privacy-automation-gradient.svg\n*/\n/*\n(API Landing Tech Risk & Compliance Image | 2025/12/18 10:43:40 | null x null)\nhttps://files.readme.io/76a6ec610698a99ef27d4509b2a1a14400a17b53c4c4299b17538fca5fb7a175-icon-tech-risk-gradient.svg\n*/\n/*\n(API Landing Third-Party Management Image | 2025/12/18 10:43:05 | null x null)\nhttps://files.readme.io/b0ad89df2cbd93051e02edc4d8e4dff390af2148a19f14785ef1cfa1f1eeff19-icon-third-party-management-gradient.svg\n*/\n/*\n(Hero Background Image | 2025/12/17 11:15:00 | null x null)\nhttps://files.readme.io/7d6fd955d8d1e65a4ca4b5a24742445a04c34b276186724ceaeddd8e7133955b-myot-hero-background.svg\n*/\n/*\n(Landing Page Image | 2025/12/17 10:38:28 | 1248 x 1160)\nhttps://files.readme.io/2ba63e7e6b9148487dd574ce2ba6710d4e5c71913dbe0a75c792e8b3bcd0bd01-ot-graphic-hero-dev-portal_1.png\n*/\n/*\n(Hosted Image | 2025/12/17 10:18:26 | null x null)\nhttps://files.readme.io/a262709fc6f5f8d5233c260741f69ea15ec746dd560902818bc0c94d7dd3a7cc-OT-thumbnail-homepage-ai-governance-use-case-800x800.svg\n*/\n/*\n(Hosted Image | 2025/12/17 10:18:22 | null x null)\nhttps://files.readme.io/e7c59e179174c162f631a94691182a39ee0e1291f1ee06dcea5be27fe70c117b-OT-thumbnail-homepage-data-use-governance-icon-800-800.svg\n*/\n/*\n(Hosted Image | 2025/12/17 10:18:14 | null x null)\nhttps://files.readme.io/12fa03d4da5f7013f91774823aaa77cc7eb858c5b04f3a96fbf87e58253dca97-OT-thumbnail-homepage-first-party-data-consent-preferences-use-case-800x800.svg\n*/\n/*\n(Hosted Image | 2025/12/17 10:18:08 | null x null)\nhttps://files.readme.io/6f8b5f31da4433cff262494202abf2cbf6ddc50595da98c2836d2c60507c6f35-OT-thumbnail-homepage-first-party-data-consent-preferences-use-case-800x800.svg\n*/\n/*\n(Hosted Image | 2025/12/17 10:18:04 | null x null)\nhttps://files.readme.io/992191fb0844b92753f6582910c9e07822fecfe88d0135dd7420974aa8cee9bb-OT-thumbnail-homepage-third-party-management-use-case-800x800.svg\n*/\n/*\n(Hosted Image | 2025/12/17 10:17:55 | null x null)\nhttps://files.readme.io/67083efb1756e06d17267c00a68fd421b00641911d512a39245b0d1be3526372-OT-thumbnail-homepage-privacy-management-use-case-800x800.svg\n*/\n\n\n/* Bearer Token Only Mode */\nbutton.Button.Button_xs.APIAuth-oauth-footer-reauthorize3rGALj24H4ZX.Button_primary_ghost.Button_primary {\n    display: none;\n}\n\n/* Custom Scopes Pills */\n.custom-scopes {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n  margin-top: 12px;\n  padding: 8px 0;\n}\n\n.custom-scopes-label {\n  font-size: 12px;\n  font-weight: 600;\n  color: var(--color-text-muted, #6b7280);\n  width: 100%;\n  margin-bottom: 4px;\n}\n\n.scope-pill {\n  position: relative;\n  display: inline-flex;\n  align-items: center;\n  padding: 6px 12px;\n  font-size: 12px;\n  font-weight: 500;\n  font-family: monospace;\n  background: var(--color-bg-page, #f3f4f6);\n  color: var(--color-text-default, #374151);\n  border: 1px solid var(--color-border-default, #d1d5db);\n  border-radius: 16px;\n  cursor: default;\n  transition: all 0.15s ease;\n}\n\n.scope-pill:hover {\n  background: var(--color-primary, #2563eb);\n  color: white;\n  border-color: var(--color-primary, #2563eb);\n}\n\n\n/* Tooltip */\n.scope-pill .scope-tooltip {\n  position: absolute;\n  bottom: calc(100% + 8px);\n  left: 50%;\n  transform: translateX(-50%);\n  padding: 8px 12px;\n  background: var(--color-bg-tooltip, #1f2937);\n  color: white;\n  font-size: 11px;\n  font-family: inherit;\n  border-radius: 6px;\n  white-space: nowrap;\n  opacity: 0;\n  visibility: hidden;\n  transition: opacity 0.15s ease, visibility 0.15s ease;\n  z-index: 100;\n  max-width: 250px;\n  white-space: normal;\n  text-align: center;\n}\n\n.scope-pill .scope-tooltip::after {\n  content: '';\n  position: absolute;\n  top: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  border: 6px solid transparent;\n  border-top-color: var(--color-bg-tooltip, #1f2937);\n}\n\n.scope-pill:hover .scope-tooltip {\n  opacity: 1;\n  visibility: visible;\n}\n\n\n/* OneTrust Green Base */\n:root {\n  --onetrust-green: #50af51;\n  --onetrust-green-dark: #55a05e;\n}\n\n/* Update CSS for Cookie List Page */\n#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy #cookie-policy-title {\n    color: transparent!important;\n}\n/* System dark mode (user's OS prefers dark) */\n@media (prefers-color-scheme: dark) {\n  html[data-color-mode=\"system\"] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy :is(\n    h5, h6, li, p, a, span, td, #cookie-policy-description, .ot-sdk-cookie-policy-group\n  ) {\n    color: #fff !important;\n  }\n  html[data-color-mode=\"system\"] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a,\n  html[data-color-mode=\"system\"] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a:hover {\n    background: transparent;\n  }\n}\n/* Explicit ReadMe dark mode */\nhtml[data-color-mode=\"dark\"] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy :is(\n  h5, h6, li, p, a, span, td, #cookie-policy-description, .ot-sdk-cookie-policy-group\n) {\n  color: #fff !important;\n}\nhtml[data-color-mode=\"dark\"] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a,\nhtml[data-color-mode=\"dark\"] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a:hover {\n  background: transparent;\n}\n\n\n\n\n\n/* CSS for Recipe Support Statement */\nblockquote.callout.callout_warning.onetrust-custom-callout {\n    color: var(--slate);\n    --Callout-bg: #fcf8f2!important;\n}\n\n/* CSS for SDK Statement */\nblockquote.callout.callout_error.onetrust-custom-callout-cmp {\n    --Callout-bg: #fdf7f7!important;\n    --Callout-border: rgb(216.56875, 83.4, 78.93125);\n\n    /* BUGFIX: Ensure link renders black instead of white on light background so the link is visible */\n    a {\n        color: black !important;\n    }\n}\n\n/* CSS for OAS Migration Statement */\nblockquote.callout.callout_warning.onetrust-custom-callout-oas {\n    color: var(--slate);\n    --Callout-bg: #fcf8f2!important;\n}\n\n\n/* CSS to prevent Recipe Labels for cloud and lang to not be clickable */\nimg.ot-recipe-label {\n    pointer-events: none;\n}\n\n.TutorialCard-Description2yaRK8FfwVRG {\n    overflow: hidden!important;\n    display: -webkit-box!important;\n    -webkit-line-clamp: 8!important;\n    -webkit-box-orient: vertical!important;\n}\n\n.Avatar.Avatar_md.TutorialCard-Avatar2GqJCrkbnRPc.Avatar_emoji {\n    content-visibility: hidden;\n    display: none;\n}\n\n\n/* CSS for x-ontrust tags in API spec header */\n.ot-tags-container {\n    padding-left: 15px;\n    flex-shrink: 0;\n}\n.ot-tags {\n    -webkit-box-flex: 0;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    margin-right: 5px;\n    margin-top: 2px;\n  border-radius: var(--border-radius-lg);\n    -webkit-box-shadow: var(--box-shadow-pill);\n    box-shadow: var(--box-shadow-pill);\n    -webkit-box-sizing: border-box;\n    box-sizing: border-box;\n    color: #fff;\n    display: -webkit-inline-box;\n    display: -ms-inline-flexbox;\n    display: inline-flex;\n  flex-direction: row-reverse;\n    font-family: var(--font-family);\n    font-size: 12px;\n    font-weight: var(--font-weight-bold);\n    height: 20px;\n    -webkit-box-pack: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n    line-height: 20px;\n    padding-left: 8px;\n    padding-right: 8px;\n    text-align: center;\n    text-transform: uppercase;\n    white-space: nowrap;\n  \n}\n/* highly availible */\n.ot-tags-ha {\n    background: mediumpurple;\n    text-shadow: 1px 1px 0 rebeccapurple,0 1px 0 rebeccapurple,1px 0 0 rebeccapurple;\n}\n\n.ot-tags-ha:hover {\n    background: rebeccapurple;\n  \tcursor: pointer;\n}\n/* spec label */\n.ot-tags-sl {\n    background: gray;\n    text-shadow: 1px 1px 0 dimgray,0 1px 0 dimgray,1px 0 0 dimgray;\n}\n\n.ot-tags-sl:hover {\n    background: dimgray;\n  \tcursor: pointer;\n}\n/* release status */\n.ot-tags-rs {\n    background: tomato;\n    text-shadow: 1px 1px 0 firebrick,0 1px 0 firebrick,1px 0 0 firebrick;\n}\n\n/*\n.ot-tags-rs:hover {\n    background: firebrick;\n  \tcursor: pointer;\n}*/\n\n\n/* Suggested Edits Animation */\n.rm-Guides #content-head .col-xs-3 .icon {\n\tanimation: jump 0.8s infinite alternate;\n}\n\n/* Animation for Page Feedback - Thumbs Up/Down Icons */\n.PageThumbs-button .icon {\n  animation: jump 0.8s infinite alternate;\n  padding-right: 5px;\n}\n  /* For jumping animation */\n  @keyframes jump {\n    0% {\n      transform: translateY(0);\n    }\n    50% {\n      transform: translateY(-5px);\n    }\n    100% {\n      transform: translateY(0);\n    }\n  } \n\n/* Left Align All Text in Tables */\n\n.markdown-body table td, .markdown-body table th {\n    text-align: left !important;\n}\n\n/* Fix Space at Top while Loading */\n/*.rm-ReferenceMain .rm-Article {\n    display: block !important;\n}*/\n\n/* 404 Page Formatting */\n/* hides title for custom pages e.g. 404 page */\n.App .rm-CustomPage #content-head h1 {\n  display: none !important;\n}\n\n#notfound {\n  position: relative;\n  height: 100vh;\n}\n\n#notfound .notfound {\n  position: absolute;\n  left: 50%;\n  top: 30%;\n  -webkit-transform: translate(-50%, -50%);\n      -ms-transform: translate(-50%, -50%);\n          transform: translate(-50%, -50%);\n}\n\n.notfound {\n  max-width: 767px;\n  width: 100%;\n  line-height: 1.4;\n  text-align: center;\n  padding: 15px;\n}\n\n.notfound .notfound-404 {\n  position: relative;\n  height: 220px;\n}\n\n.notfound .notfound-404 h1 {\n  font-family: 'Kanit', sans-serif;\n  position: absolute;\n  left: 50%;\n  top: 50%;\n  -webkit-transform: translate(-50%, -50%);\n      -ms-transform: translate(-50%, -50%);\n          transform: translate(-50%, -50%);\n  font-size: 186px;\n  font-weight: 200;\n  margin: 0px;\n  background: linear-gradient(130deg, #2C6145, #55A05E);\n  color:transparent;\n  -webkit-background-clip: text;\n  background-clip: text;\n  text-transform: uppercase;\n}\n\n.notfound h2 {\n  font-family: 'Kanit', sans-serif;\n  font-size: 33px;\n  font-weight: 200;\n  text-transform: uppercase;\n  margin-top: 0px;\n  margin-bottom: 25px;\n  letter-spacing: 3px;\n}\n\n\n.notfound p {\n  font-family: 'Kanit', sans-serif;\n  font-size: 16px;\n  font-weight: 200;\n  margin-top: 0px;\n  margin-bottom: 25px;\n}\n\n\n.notfound a {\n  font-family: 'Kanit', sans-serif;\n  color: #55A05E;\n  font-weight: 200;\n  text-decoration: none;\n  border-bottom: 1px dashed #55A05E;\n  border-radius: 2px;\n}\n\n.notfound-social>a {\n  display: inline-block;\n  height: 40px;\n  line-height: 40px;\n  width: 40px;\n  font-size: 14px;\n  color: #2C6145;\n  border: 1px solid #2C6145;\n  border-radius: 50%;\n  margin: 3px;\n  -webkit-transition: 0.2s all;\n  transition: 0.2s all;\n}\n.notfound-social>a:hover {\n  color: #fff;\n  background-color: #55A05E;\n  border-color: #55A05E;\n}\n\n@media only screen and (max-width: 480px) {\n  .notfound .notfound-404 {\n    position: relative;\n    height: 168px;\n  }\n\n  .notfound .notfound-404 h1 {\n    font-size: 142px;\n  }\n\n  .notfound h2 {\n    font-size: 22px;\n  }\n}\n\n/* Full Width no Whitespace on Sides */\n\n:root {\n    --container: 1200px!important;\n    --container-lg: 98%!important;\n    --hub-main-max-width: 80%!important;\n    --hub-playground-width: 30%!important;\n    --hub-sidebar-width: 20%!important;\n\t  --hub-toc-width: 20%!important;\n  \t--hub-content-max-width: 100%!important;\n\n\n}\n\n.rm-Guides .content-body {\n    padding-right: 80px;\n}\n\n.Header-bottom2eLKOFXMEmh5 {\n    margin: auto;\n    width: 100%;\n    max-width: 100% !important;\n    padding: 5px;\n}\n\n.Header-topuTMpygDG4e1V {\n  border: none !important;\n}\n\n.rm-SearchToggle {\n    width: 300px !important;\n}\n\n/* Reordering Menu Items */\n.Header-leftADQdGVqx1wqU .Dropdown_toggle {\n    order: 1; /* v1.0 */\n}\n\n.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*=\"/onetrust/\"] {\n    order: 2; /* Home */\n}\n\n.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*=\"/onetrust/docs\"] {\n    order: 4; /* Documentation */\n}\n\n.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*=\"/onetrust/recipes\"] {\n    order: 5; /* Recipes */\n}\n\n.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*=\"/onetrust/reference\"] {\n    order: 3; /* API Reference */\n}\n\n.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*=\"/onetrust/changelog\"] {\n    order: 6; /* Changelog */\n}\n\n/* Set Font Family to match myOT */\n\n.App {\n  --font-family: 'Open Sans', sans-serif !important;\n}\n\n/* Set Color for Catagory Text to Green */\n\n.rm-Sidebar-heading {\n    color: #346E4A !important;\n}\n\n@media (prefers-color-scheme: dark) {\n  [data-color-mode=\"system\"] .rm-Sidebar-heading {\n    color: #55A05E !important;\n}}\n\n[data-color-mode=\"dark\"] .rm-Sidebar-heading {\n    color: #55A05E !important;\n}\n\n/* Styling for Tiles on Overview Pages */\n\n.ProductsWrapper {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    text-decoration: none;\n}\n\n.SDKWrapper {\n    display: flex;\n    flex-wrap: wrap;\n    text-decoration: none;\n}\n\n.ProductCard {\n    width: 45%;\n    margin: 10px;\n    padding: 15px;\n    border: 1px solid #ddd;\n    border-radius: 8px;\n    text-align: center;\n    text-decoration: none;\n    color: #333;\n    transition: box-shadow 0.3s;\n    position: relative;\n}\n\n.SDKCard {\n    width: 20%;\n    margin: 10px;\n    padding: 10px;\n    border: 1px solid #ddd;\n    border-radius: 8px;\n    text-align: center;\n    text-decoration: none;\n    color: #333;\n    transition: box-shadow 0.3s;\n    position: relative;\n}\n\n/* Light mode animated drop shadow */\n.ProductCard:hover {\n\t\tbox-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);\n    transform: translateY(-2px);}\n\n.SDKCard:hover {\n\t\tbox-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);\n    transform: translateY(-2px);}\n\n.ProductCard a {\n    text-decoration: none !important;\n    display: flex;\n    flex-direction: row;\n    align-items: flex-start;\n    justify-content: center;\n    height: 100%;\n}\n\n.SDKCard a {\n    text-decoration: none !important;\n    display: flex;\n    flex-direction: column !important;\n    align-items: center;\n    justify-content: center;\n    height: 100%;\n}\n\n.ProductCard img {\n    width: 80px;\n    height: 80px;\n    margin-bottom: 10px;\n    margin-right: 10px;\n}\n\n.SDKCard svg {\n    width: 95%;\n    height: 80px;\n    position: relative;\n    top: 40%;\n    -webkit-transform: translateY(-60%);\n    -ms-transform: translateY(-60%);\n    transform: translateY(-60%);\n    left: 0;\n    right: 0;\n    margin: auto;\n    text-align: center;\n}\n\n.ProductCard_dark_icon {\n    display: none !important;\n}\n\n.ProductCard_light_icon {\n    display: inline-block;\n}\n\n.ProductCard_text {\n    flex: 1;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n}\n\n.ProductCard h4 {\n    margin-top: 0;\n    margin-bottom: 0;\n    font-size: 1.1rem;\n    text-decoration: none;\n}\n\n.SDKCard h4 {\n    margin-top: 15px;\n    margin-bottom: 0;\n    font-size: 0.9rem;\n    text-decoration: none !important;\n    color: black\n}\n\n.ProductCard p {\n    margin: 5px 0 0;\n    font-size: .8rem;\n    color: #333;\n    text-decoration: none;\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    overflow: hidden;\n    -webkit-line-clamp: 3;\n    /* Adjust the value to the maximum number of lines */\n    text-overflow: ellipsis;\n    max-height: 5em;\n    /* Adjust the value as needed for browsers without -webkit prefix */\n    white-space: normal;\n    /* Reset white-space property */\n}\n\n/* Dark mode styles */\n@media (prefers-color-scheme: dark) {\n    [data-color-mode=\"system\"] .ProductCard p {\n        color: white;\n    }\n\n    [data-color-mode=\"system\"] .SDKCard h4 {\n        color: white;\n    }\n\n    [data-color-mode=\"system\"] .SDKCard path[fill=\"white\"] {\n    /* Override the previous rule and set the fill color to transparent */\n    fill: var(--color-bg-page);\n}\n      [data-color-mode=\"system\"] .SDKCard path {\n    fill: white;\n}\n  /* Target only the MAUI logo by using its specific container */\n[data-color-mode=\"system\"] .SDKCard path[fill=\"#A213EC\"] {\n    fill: var(--color-bg-page); /* Makes the purple background transparent */\n}\n\n[data-color-mode=\"system\"] .SDKCard svg[title=\"MAUI\"] path[fill=\"#FFFFFF\"] {\n    fill: #FFFFFF;\n}\n\n\n    [data-color-mode=\"system\"] .ProductCard:hover {\n        box-shadow: 0 4px 8px rgba(255, 255, 255, 0.1);\n          transform: translateY(-2px);\n    }\n  \t[data-color-mode=\"system\"] .SDKCard:hover {\n        box-shadow: 0 4px 8px rgba(255, 255, 255, 0.1);\n          transform: translateY(-2px);\n    }\n}\n\n@media (prefers-color-scheme: dark) {\n    [data-color-mode=\"system\"] .ProductCard_dark_icon {\n        display: inline-block !important;\n        /* Display light image in light mode */\n    }\n\n}\n\n@media (prefers-color-scheme: dark) {\n    [data-color-mode=\"system\"] .ProductCard_light_icon {\n        display: none;\n        /* Display light image in light mode */\n    }\n\n}\n\n[data-color-mode=\"dark\"] .SDKCard h4 {\n    color: white;\n}\n\n[data-color-mode=\"dark\"] .ProductCard:hover {\n    box-shadow: 0 4px 8px rgba(255, 255, 255, 0.1);\n      transform: translateY(-2px);\n}\n\n[data-color-mode=\"dark\"] .SDKCard:hover {\n    box-shadow: 0 4px 8px rgba(255, 255, 255, 0.1);\n      transform: translateY(-2px);\n}\n\n[data-color-mode=\"dark\"] .SDKCard path[fill=\"white\"] {\n    /* Override the previous rule and set the fill color to transparent */\n    fill: var(--color-bg-page);\n}\n[data-color-mode=\"dark\"] .SDKCard path {\n    fill: white;\n}\n\n/* Target only the MAUI logo by using its specific container */\n[data-color-mode=\"dark\"] .SDKCard path[fill=\"#A213EC\"] {\n    fill: var(--color-bg-page); /* Makes the purple background transparent */\n}\n[data-color-mode=\"dark\"] .SDKCard svg[title=\"MAUI\"] path[fill=\"#FFFFFF\"] {\n    fill: #FFFFFF;\n}\n\n[data-color-mode=\"dark\"] .ProductCard p {\n    color: white;\n}\n\n[data-color-mode=\"dark\"] .ProductCard_dark_icon {\n    display: inline-block !important;\n    /* Display light image in light mode */\n}\n\n[data-color-mode=\"dark\"] .ProductCard_light_icon {\n    display: none;\n    /* Display light image in light mode */\n}\n\n/* Grid box for footer */\n.slds-p-top_xx-large,\n.slds-p-top--xx-large {\n    padding-top: var(--lwc-spacingXxLarge, 3rem)\n}\n\n.slds-p-bottom_xx-large,\n.slds-p-bottom--xx-large {\n    padding-bottom: var(--lwc-spacingXxLarge, 3rem)\n}\n\n.slds-grid {\n    display: flex\n}\n\n.slds-wrap {\n    flex-wrap: wrap;\n    align-items: flex-start\n}\n\n.slds-p-around_small,\n.slds-p-around--small {\n    padding: var(--lwc-spacingSmall, 0.75rem)\n}\n\n.slds-size_1-of-1,\n.slds-size--1-of-1 {\n    width: 100%\n}\n\n.slds-medium-size_3-of-12,\n.slds-medium-size--3-of-12 {\n    width: 25%\n}\n\n.slds-large-size_2-of-12,\n.slds-large-size--2-of-12 {\n    width: 16.6666666667%\n}\n\n.slds-p-top_small,\n.slds-p-top--small {\n    padding-top: var(--lwc-spacingSmall, 0.75rem)\n}\n\n.slds-medium-size_12-of-12,\n.slds-medium-size--12-of-12 {\n    width: 100%\n}\n\n.slds-medium-size_12-of-12,\n.slds-medium-size--12-of-12 {\n    width: 100%\n}\n\n.slds-grid_overflow .slds-col,\n.slds-grid--overflow .slds-col {\n    min-width: 11.25em;\n    max-width: 22.5em\n}\n\n/* Changes size of the main OneTrust Logo */\nbody {\n    --header-logo-height: 30px;\n}\n\n/* Changes HR element to a white line */\nhr {\n    border: solid rgba(255, 255, 255) !important;\n    border-width: 1px 0 0 !important;\n}\n\n/* Needed for Footer */\n.cMyOT_FooterComponent.myOTFooter {\n    background-color: #2c3643;\n    color: white;\n    font-family: \"Open Sans\"\n}\n\n.cMyOT_FooterComponent .myOTFooterHeading {\n    font-size: 18px;\n    font-weight: 500\n}\n\n.cMyOT_FooterComponent .myOTFooterLink,\n.cMyOT_FooterComponent .myOTPrivacySection {\n    font-size: 16px;\n    font-weight: 200;\n    color: white !important\n}\n\n.cMyOT_FooterComponent .myOT2020-onetrust-all,\n.cMyOT_FooterComponent .myOTPrivacySection {\n    font-weight: 200;\n    font-size: 14px;\n    line-height: 19px\n}\n\n.cMyOT_FooterComponent.myOTFooter a:hover {\n    text-decoration: none !important;\n    color: rgb(108, 192, 74) !important\n}\n\n.cMyOT_FooterComponent hr {\n    margin: 0\n}\n\n@media only screen and (max-width:800px) {\n    .cMyOT_FooterComponent .myOTEventsHeading {\n        font-size: 25px !important;\n        padding: 1rem !important\n    }\n}\n\n@media only screen and (min-width:1025px) {\n    .cMyOT_FooterComponent .myOTFooterOTSection {\n        margin-left: 10%;\n        margin-right: 10%\n    }\n\n    .cMyOT_FooterComponent .myOT2020-onetrust-all {\n        float: left\n    }\n\n    .cMyOT_FooterComponent .myOTPrivacySection {\n        float: right;\n        display: flex\n    }\n}","stylesheet_hub3":"","javascript":"","javascript_hub2":"// Replace client flow with bearer token flow\nlet capturedScopes = [];\n\nconsole.log('[Scopes] Script loaded');\n\n// Extract scopes from the Tippy dropdown after clicking\nfunction captureScopesFromDropdown() {\n  console.log('[Scopes] captureScopesFromDropdown called');\n  \n  if (capturedScopes.length > 0) {\n    console.log('[Scopes] Already have scopes:', capturedScopes);\n    return;\n  }\n  \n  const scopesButton = document.querySelector('.rm-APIAuth [class*=\"oauth-scopes\"] .Dropdown-toggle');\n  console.log('[Scopes] Scopes button found:', !!scopesButton);\n  \n  if (!scopesButton) return;\n  \n  // Click to open the Tippy dropdown\n  console.log('[Scopes] Clicking dropdown to reveal scopes...');\n  scopesButton.click();\n  \n  setTimeout(() => {\n    // Find scope items in the Tippy popup - look for Menu-Item elements\n    const menuItems = document.querySelectorAll('.tippy-box .Menu-Item, [data-tippy-root] .Menu-Item');\n    console.log('[Scopes] Menu items found:', menuItems.length);\n    \n    menuItems.forEach(item => {\n      // Get scope name from the scopes-text span\n      const nameEl = item.querySelector('[class*=\"oauth-scopes-text\"]');\n      const descEl = item.querySelector('.Menu-Item-description');\n      \n      const name = nameEl?.textContent?.trim();\n      const description = descEl?.textContent?.trim() || `OAuth2 scope: ${name}`;\n      \n      console.log('[Scopes] Found scope:', name, '-', description);\n      \n      if (name && !capturedScopes.find(s => s.name === name)) {\n        capturedScopes.push({ name, description });\n      }\n    });\n    \n    console.log('[Scopes] Captured scopes:', capturedScopes);\n    \n    // Close the dropdown\n    scopesButton.click();\n  }, 0);\n}\n\n// Create custom scopes pills\nfunction createScopesPills(scopes) {\n  const container = document.createElement('div');\n  container.className = 'custom-scopes';\n  \n  if (scopes.length === 0) {\n    container.innerHTML = '\u003cdiv class=\"custom-scopes-label\">No scopes required\u003c/div>';\n    return container;\n  }\n  \n  const label = document.createElement('div');\n  label.className = 'custom-scopes-label';\n  label.textContent = 'Scopes';\n  container.appendChild(label);\n  \n  scopes.forEach(scope => {\n    const pill = document.createElement('span');\n    pill.className = 'scope-pill';\n    pill.textContent = scope.name;\n    \n    const tooltip = document.createElement('span');\n    tooltip.className = 'scope-tooltip';\n    tooltip.textContent = scope.description;\n    pill.appendChild(tooltip);\n    \n    container.appendChild(pill);\n  });\n  \n  return container;\n}\n\n// Inject scopes after token input\nfunction injectCustomScopes() {\n  console.log('[Scopes] injectCustomScopes called');\n  const tokenRow = document.querySelector('.InputGroup-oauth-flow-token');\n  const existing = document.querySelector('.custom-scopes');\n  \n  console.log('[Scopes] Token row found:', !!tokenRow);\n  console.log('[Scopes] Existing custom scopes:', !!existing);\n  console.log('[Scopes] Captured scopes count:', capturedScopes.length);\n  \n  if (tokenRow && !existing && capturedScopes.length > 0) {\n    console.log('[Scopes] Injecting scopes pills...');\n    tokenRow.after(createScopesPills(capturedScopes));\n  } else if (tokenRow && !existing && capturedScopes.length === 0) {\n    console.log('[Scopes] No scopes to inject');\n  }\n}\n\n// Click \"Use Your Own Token\" button\nfunction clickUseOwnToken() {\n  console.log('[Scopes] clickUseOwnToken called');\n  const buttons = document.querySelectorAll('.rm-APIAuth button');\n  console.log('[Scopes] Found buttons:', buttons.length);\n  \n  for (const btn of buttons) {\n    console.log('[Scopes] Button text:', btn.textContent.trim());\n    if (btn.textContent.trim() === 'Use Your Own Token') {\n      console.log('[Scopes] Clicking \"Use Your Own Token\" button');\n      btn.click();\n      return true;\n    }\n  }\n  console.log('[Scopes] \"Use Your Own Token\" button not found');\n  return false;\n}\n\n// Main flow - runs on each page load\nfunction initBearerTokenMode() {\n  console.log('[Scopes] initBearerTokenMode called');\n  capturedScopes = []; // Reset for new page\n  \n  const scopesDropdown = document.querySelector('.rm-APIAuth [class*=\"oauth-scopes\"]');\n  const clientFlow = document.querySelector('.InputGroup-oauth-flow-client');\n  \n  console.log('[Scopes] Scopes dropdown found:', !!scopesDropdown);\n  console.log('[Scopes] Client flow found:', !!clientFlow);\n  \n  // First capture scopes while original dropdown exists\n  if (scopesDropdown) {\n    captureScopesFromDropdown();\n  }\n  \n  // Delay to allow scope capture (dropdown opens, captures, closes), then switch to token mode\n  setTimeout(() => {\n    console.log('[Scopes] After 500ms delay, captured scopes:', capturedScopes);\n    if (document.querySelector('.InputGroup-oauth-flow-client')) {\n      clickUseOwnToken();\n    }\n    \n    // Inject custom scopes after switching\n    setTimeout(() => {\n      console.log('[Scopes] After 400ms delay, injecting...');\n      if (document.querySelector('.InputGroup-oauth-flow-token')) {\n        injectCustomScopes();\n      } else {\n        console.log('[Scopes] Token flow not found after switching');\n      }\n    }, 400);\n  }, 500);\n}\n\n// Use ReadMe's pageLoad event\n$(window).on('pageLoad', () => {\n  console.log('[Scopes] pageLoad event fired');\n  initBearerTokenMode();\n});\n\n// Also run on initial load\n$(document).ready(() => {\n  console.log('[Scopes] document.ready fired');\n  initBearerTokenMode();\n});\n\n\n\n\n// Track the current URL path to detect changes\nvar lastPath = window.location.pathname;\n\n// Simple banner display function\nfunction displayBanner() {\n    // Get the container element\n    var contentElement = document.getElementById('hub-search-results');\n    if (!contentElement) return;\n    \n    // Update lastPath for future comparisons\n    lastPath = window.location.pathname;\n    \n    // Remove any existing banners first\n    var existingRecipeCallout = contentElement.querySelector('.onetrust-custom-callout');\n  \tvar existingCMPCallout = contentElement.querySelector('.onetrust-custom-callout-cmp');    \n\t\tvar existingOASCallout = contentElement.querySelector('.onetrust-custom-callout-oas');\n\n\n    \n    if (existingRecipeCallout && existingRecipeCallout.parentElement) {\n        existingRecipeCallout.parentElement.removeChild(existingRecipeCallout);\n    }\n    if (existingCMPCallout && existingCMPCallout.parentElement) {\n        existingCMPCallout.parentElement.removeChild(existingCMPCallout);\n    }\n\t\tif (existingOASCallout && existingOASCallout.parentElement) {\n        existingOASCallout.parentElement.removeChild(existingOASCallout);\n    }\n    \n    // Get current path\n    var path = window.location.pathname;\n    \n    // New element for banner\n    var newElement = document.createElement('div');\n    newElement.className = 'rm-Markdown markdown-body';\n    newElement.setAttribute('data-testid', 'RDMD');\n    \n    // Choose banner based on path\n    if (path === '/onetrust/recipes') {\n        //console.log('Displaying Recipe banner');\n        newElement.innerHTML = `\u003cblockquote class=\"callout callout_warning onetrust-custom-callout\" theme=\"🚧\">\n            \u003cp>The code samples provided here are intended as starting points for various use cases. We encourage you to thoroughly test any code. Use of these samples is at your own risk. Please note that OneTrust does not offer implementation support for these Recipes but welcomes your feedback and suggestions for new Recipes. If you want to provide feedback, please leverage the Help widget in the bottom right corner of your screen.\u003c/p>\n        \u003c/blockquote>`;\n        contentElement.insertBefore(newElement, contentElement.firstChild);\n    } else if (path.includes('/docs/')) {\n        //console.log('Displaying CMP banner');\n        newElement.innerHTML = `\u003cblockquote class=\"callout callout_error onetrust-custom-callout-cmp\" theme=\"❗\">\n            \u003cp style=\"color: black;\">We strongly recommend all CMP users deploying Mobile &amp; OTT/CTV SDKs to migrate to our next generation of CMP SDKs for a seamless experience and enhanced efficiency and scalability. For more information, see \u003ca href=\"https://developer.onetrust.com/onetrust/docs/onetrusts-next-generation-cmp-sdks\" target=\"_blank\" rel=\"noopener noreferrer\">OneTrust Next Generation CMP SDKs\u003c/a>.\u003c/p>\n        \u003c/blockquote>`;\n        contentElement.insertBefore(newElement, contentElement.firstChild);\n    } else {\n        //console.log('No banner needed for path: ' + path);\n    }\n}\n\n// Check if URL has changed\nfunction checkURLChange() {\n    var currentPath = window.location.pathname;\n    if (currentPath !== lastPath) {\n        //console.log('URL changed from', lastPath, 'to', currentPath);\n        setTimeout(displayBanner, 500);\n    }\n}\n\n// Hook into history API to detect client-side navigation\nfunction addHistoryChangeListener() {\n    // Store references to original history methods\n    var originalPushState = history.pushState;\n    var originalReplaceState = history.replaceState;\n    \n    // Override history.pushState\n    history.pushState = function() {\n        originalPushState.apply(this, arguments);\n        setTimeout(displayBanner, 500);\n    };\n    \n    // Override history.replaceState\n    history.replaceState = function() {\n        originalReplaceState.apply(this, arguments);\n        setTimeout(displayBanner, 500);\n    };\n}\n\n// Set up periodic URL checking\nfunction startURLMonitoring() {\n    // Check URL every 500ms\n    setInterval(checkURLChange, 500);\n    \n    // Add listener for click events on anchor tags\n    document.addEventListener('click', function(e) {\n        if (e.target.tagName === 'A' || e.target.closest('a')) {\n            // A link was clicked, check for URL change after a delay\n            setTimeout(checkURLChange, 500);\n        }\n    });\n}\n\n// Set up one-time event listeners\ndocument.addEventListener('DOMContentLoaded', function() {\n    // First attempt when DOM is ready with 1000ms delay\n    setTimeout(displayBanner, 1000);\n    \n    // Hook into history API\n    addHistoryChangeListener();\n    \n    // Start URL monitoring\n    startURLMonitoring();\n    \n    // Set up a single listener for popstate (browser back/forward)\n    window.addEventListener('popstate', function() {\n        // Add delay before showing banner after navigation\n        setTimeout(displayBanner, 500);\n    });\n});\n\n// Add banner when page load is complete (backup)\nwindow.addEventListener('load', function() {\n    setTimeout(displayBanner, 1000);\n});\n\n\n// Brave Shield Warning \nfunction isBraveShieldsUp() {\n    if (window.navigator.brave != undefined) {\n        if (window.navigator.brave.isBrave.name == \"isBrave\") {\n            //if (!window.navigator.plugins[0][0].type){\n            document.getElementById(\"brave-warning\").style.display = \"block\";\n            return true;\n            // }\n        } else {\n            return false;\n        }\n    } else {\n        return false;\n    }\n}\nisBraveShieldsUp();\n\n// start of x-onetrust\n// Creates x-onetrust Tags in UI \n// function createTags(tags, data, oasUrl, callback) {\n//     /*\n//     \"x-onetrust\": {\n//        \"highly-available\": true,\n//        \"highly-available-link\": \"Helpful Link for HA\",\n//        \"release-status\": \"Public Preview | Sunset Period | Deprecated\",\n//        \"release-status-link\": \"link to changelog if needed\",\n//        \"spec-label\": \"OpenAPI 3.1.0\"\n//      }\n//      */\n//     const fragment = document.createDocumentFragment();\n//     const divTags = document.createElement(\"div\");\n//     divTags.className = \"ot-tags-container\";\n//     divTags.id = \"ot-tags-container\";\n\n//     // Check if highly-available is true\n//     if (tags && tags[\"highly-available\"] === true) {\n//         const haSpan = document.createElement(\"span\");\n//         haSpan.className = \"ot-tags ot-tags-ha\";\n//         haSpan.onclick = function () {\n//             window.open(\"https://developer.onetrust.com/onetrust/reference/consent-preference-management-api-service-level-objectives\", \"_blank\");\n//         };\n//         haSpan.setAttribute(\"style\", \"float: right;margin-top: 10px;\");\n//         haSpan.setAttribute(\"apimethod_version\", \"\");\n//         haSpan.textContent = \"Highly Available\";\n//         divTags.appendChild(haSpan);\n//     }\n\n//     // Check if release-status exists\n//     if (tags && tags[\"release-status\"]) {\n//         const rsSpan = document.createElement(\"span\");\n//         rsSpan.className = \"ot-tags ot-tags-rs\";\n//         rsSpan.onclick = function () {\n//             if (tags[\"release-status-link\"]) {\n//                 window.open(tags[\"release-status-link\"], \"_blank\");\n//             }\n//         };\n//         rsSpan.setAttribute(\"style\", \"float: right;margin-top: 10px;\");\n//         rsSpan.setAttribute(\"apimethod_version\", \"\");\n//         rsSpan.textContent = tags[\"release-status\"];\n//         divTags.appendChild(rsSpan);\n\n//         // Add hover CSS\n//         rsSpan.addEventListener('mouseenter', function () {\n//             if (tags[\"release-status-link\"]) {\n//                 rsSpan.style.background = \"firebrick\";\n//                 rsSpan.style.cursor = \"pointer\";\n//             }\n//         });\n\n//         rsSpan.addEventListener('mouseleave', function () {\n//             if (tags[\"release-status-link\"]) {\n//                 rsSpan.style.background = \"\"; // Reset to default\n//                 rsSpan.style.cursor = \"\"; // Reset to default\n//             }\n//         });\n//     }\n\n//     // Check if spec version exists\n//     if (data[\"x-onetrust\"][\"spec-label\"]) {\n//         const slSpan = document.createElement(\"span\");\n//         slSpan.className = \"ot-tags ot-tags-sl\";\n//         slSpan.onclick = function () {\n//             window.open(oasUrl, \"_blank\"); // Replace with the actual hyperlink\n//         };\n//         slSpan.setAttribute(\"style\", \"float: right;margin-top: 10px;\");\n//         slSpan.setAttribute(\"apimethod_version\", \"\");\n//         slSpan.textContent = data[\"x-onetrust\"][\"spec-label\"];\n//         divTags.appendChild(slSpan);\n//     }\n\n//     fragment.appendChild(divTags);\n\n//     // Call the callback function with the created element\n//     callback(fragment);\n// }\n\n\n// Creates Scopes Element in UI \nfunction createScopeElement(scopes, data, callback) {\n    // Create a new div element to contain the scopes\n    const newElement = document.createElement('div');\n    newElement.classList.add('Info-infoBadge3luOwOnjfNiR');\n    newElement.setAttribute('role', '');\n\n    // Create the heading for scopes\n    const heading = document.createElement('div');\n    heading.classList.add('APISectionHeader-heading4MUMLbp4_nLs');\n    heading.textContent = 'SCOPES';\n    heading.title = 'The scope signifies the level of access granted to the API endpoint. It is recommended to always choose the scope with the least access to minimize security risks.';\n    newElement.appendChild(heading);\n\n    // Create a container for badges\n    const badgesContainer = document.createElement('div');\n    badgesContainer.classList.add('badges-container');\n    badgesContainer.style.paddingLeft = '3px';\n\n    // Create and append badge elements for each scope\n    for (const scope of Object.values(scopes)) {\n        const badge = document.createElement('span');\n        badge.classList.add('Badge', 'Badge_light', 'Badge_circular');\n        badge.style.marginLeft = '3px';\n        badge.textContent = scope;\n        badge.title = data.components.securitySchemes.oauth2.flows.clientCredentials.scopes[scope];\n        badgesContainer.appendChild(badge);\n    }\n\n    newElement.appendChild(badgesContainer);\n\n    // Call the callback function with the created element\n    callback(newElement);\n}\n\n\n// Check for data-raycast-oas attribute and invoke tag/scope rendering\n// If data-raycast-oas is missing, \"false\", or \"[object Object]\", fetch \u003ccurrent URL>?json=on and use doc.api.apiSetting as fallback\n(async function resolveOasAndRender() {\n    let oasValue = null;\n    let operationId = null;\n\n    // Check for data-raycast-oas\n    const raycastOas = document.querySelector('[data-raycast-oas]');\n    const raycastOperationId = document.querySelector('[data-raycast-operation-id]');\n\n    if (raycastOas && raycastOas.dataset.raycastOas !== 'false' && raycastOas.dataset.raycastOas !== '[object Object]') {\n        oasValue = raycastOas.dataset.raycastOas;\n        operationId = raycastOperationId?.dataset.raycastOperationId;\n    }\n\n    // If no valid OAS value found, try to get it from the URL\n    if (!oasValue) {\n        const urlParams = new URLSearchParams(window.location.search);\n        if (urlParams.has('json') && urlParams.get('json') === 'on') {\n            try {\n                const response = await fetch(window.location.href);\n                const data = await response.json();\n                oasValue = data.api.apiSetting;\n                operationId = urlParams.get('operationId');\n            } catch (error) {\n                console.error('Error fetching JSON:', error);\n            }\n        }\n    }\n\n    if (oasValue) {\n        const oasUrl = URLValidator.constructOasUrl(oasValue);\n        await printScopesEnhanced(oasUrl, operationId);\n    }\n})();\n\n// Gets the Scopes from the OAS spec\nasync function printScopesEnhanced(oasUrl, operationIdToFind) {\n    try {\n        const response = await fetch(oasUrl);\n        if (!response.ok) {\n            throw new Error('Failed to fetch OpenAPI spec');\n        }\n        const data = await response.json();\n        const paths = data.paths;\n        for (const [path, pathValue] of Object.entries(paths)) {\n            for (const [method, methodValue] of Object.entries(pathValue)) {\n                if (methodValue.operationId && methodValue.operationId.toLowerCase() === operationIdToFind.toLowerCase()) {\n                    if (methodValue.security && methodValue.security.length > 0) {\n                        for (const security of methodValue.security) {\n                            for (const [securityKey, scopes] of Object.entries(security)) {\n                                if (securityKey === 'oauth2' && scopes.length > 0) {\n                                    await new Promise(r => setTimeout(r, 200));\n                                    createScopeElement(scopes, data, function (newElement) {\n                                        const elementToReplace = document.querySelector('.Info-infoBadge3luOwOnjfNiR');\n                                        if (elementToReplace) {\n                                            elementToReplace.parentNode.replaceChild(newElement, elementToReplace);\n                                        }\n                                    });\n                                    return;\n                                }\n                            }\n                        }\n                    }\n                    return;\n                }\n            }\n        }\n    } catch (error) {\n        console.error('Error fetching or processing OpenAPI spec:', error);\n    }\n}\n// end of x-onetrust\n\n\n// Scripts for Partner Page\n// Guard to ensure jQuery is loaded before running the UI enhancement block\nif (typeof window.jQuery !== 'undefined') {\n    (function ($) {\n\n        \"use strict\";\n\n        /* Page Loader active\n        ========================================================*/\n        $('#preloader').fadeOut();\n\n\n        /* Screens Shot Slider\n        =============================*/\n        var owl = $(\".touch-slider\");\n        owl.owlCarousel({\n            center: true,\n            navigation: false,\n            pagination: true,\n            slideSpeed: 1000,\n            stopOnHover: true,\n            autoPlay: true,\n            touchDrag: true,\n            responsive: {\n                0: {\n                    items: 1\n                },\n\n                480: {\n                    items: 2\n                },\n\n                768: {\n                    items: 3\n                },\n\n                992: {\n                    items: 4\n                },\n\n                1199: {\n                    items: 5\n                }\n            },\n            items: 5,\n            itemsDesktopSmall: [1024, 3],\n            itemsTablet: [600, 1],\n            itemsMobile: [479, 1]\n        });\n\n\n        // sticky menu \n        $(window).on('scroll', function (event) {\n            var scroll = $(window).scrollTop();\n            if (scroll \u003c 20) {\n                $(\".navbar-area\").removeClass(\"sticky menu-bg\");\n            } else {\n                $(\".navbar-area\").addClass(\"sticky menu-bg\");\n            }\n        });\n\n        // for menu scroll \n        $('.page-scroll').click(function () {\n            var hash = this.hash;\n            var position = $(hash).offset().top - 60;\n            $('html').animate({\n                scrollTop: position\n            }, 900);\n        });\n\n        //===== Section Menu Active\n\n        var scrollLink = $('.page-scroll');\n        // Active link switching\n        $(window).scroll(function () {\n            var scrollbarLocation = $(this).scrollTop();\n\n            scrollLink.each(function () {\n\n                var sectionOffset = $(this.hash).offset().top - 73;\n\n                if (sectionOffset \u003c= scrollbarLocation) {\n                    $(this).parent().addClass('active');\n                    $(this).parent().siblings().removeClass('active');\n                }\n            });\n        });\n\n\n        //===== close navbar-collapse when a  clicked\n\n        $(\".navbar-nav a\").on('click', function () {\n            $(\".navbar-collapse\").removeClass(\"show\");\n        });\n\n        $(\".navbar-toggler\").on('click', function () {\n            $(this).toggleClass(\"active\");\n        });\n\n        $(\".navbar-nav a\").on('click', function () {\n            $(\".navbar-toggler\").removeClass('active');\n        });\n\n\n\n        /* \n         Back Top Link\n         ========================================================================== */\n        var offset = 200;\n        var duration = 500;\n        $(window).scroll(function () {\n            if ($(this).scrollTop() > offset) {\n                $('.back-to-top').fadeIn(400);\n            } else {\n                $('.back-to-top').fadeOut(400);\n            }\n        });\n\n        $('.back-to-top').on('click', function (event) {\n            event.preventDefault();\n            $('html, body').animate({\n                scrollTop: 0\n            }, 600);\n            return false;\n        })\n\n        /* \n         One Page Navigation & wow js\n         ========================================================================== */\n\n        $(window).on('load', function () {\n\n            $('body').scrollspy({\n                target: '.navbar-collapse',\n                offset: 195\n            });\n\n            $(window).on('scroll', function () {\n                if ($(window).scrollTop() > 100) {\n                    $('.fixed-top').addClass('menu-bg');\n                } else {\n                    $('.fixed-top').removeClass('menu-bg');\n                }\n            });\n\n        });\n\n        /* Auto Close Responsive Navbar on Click\n        ========================================================*/\n        function close_toggle() {\n            if ($(window).width() \u003c= 768) {\n                $('.navbar-collapse a').on('click', function () {\n                    $('.navbar-collapse').collapse('hide');\n                });\n            }\n            else {\n                $('.navbar .navbar-inverse a').off('click');\n            }\n        }\n        close_toggle();\n        $(window).resize(close_toggle);\n\n        /* Nivo Lightbox\n        ========================================================*/\n        $('.lightbox').nivoLightbox({\n            effect: 'fadeScale',\n            keyboardNav: true,\n        });\n\n    }(window.jQuery));\n} // end jQuery guard\n\n/*\n// Load Vue.js if not already loaded\nif (typeof Vue === 'undefined') {\n    const script = document.createElement('script');\n    script.src = 'https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.10/vue.min.js';\n    script.onload = initVueComponents;\n    document.head.appendChild(script);\n} else {\n    initVueComponents();\n}\n*/\n\n/*\nfunction initVueComponents() {\n    Vue.component('boardal', {\n        template: `\n        \u003ctransition name=\"boardal\">\n          \u003cdiv class=\"boardal\">\n            \u003cdiv class=\"boardal__mask\" v-if=\"hasMask\" @click=\"clickMask\">\u003c/div>\n            \u003cdiv class=\"boardal__wrapper\">\n              \u003cslot>\u003c/slot>\n              \u003cdiv class=\"boardal__x\" v-if=\"hasX\" @click=\"clickX\">&times;\u003c/div>\n            \u003c/div>\n          \u003c/div>\n        \u003c/transition>\n        `,\n        props: [\n            'hasX',\n            'hasMask',\n            'canClickMask'\n        ],\n        methods: {\n            clickX: function () {\n                this.$emit('toggle')\n            },\n            clickMask: function () {\n                if (this.canClickMask) {\n                    this.$emit('toggle')\n                }\n            }\n        }\n    })\n\n    let vm = new Vue({\n        el: 'main',\n        data: {\n            modal: {\n                isOpen: false,\n                hasMask: true,\n                canClickMask: false,\n                hasX: false\n            },\n            step: 1,\n            max: 1,\n            showDots: true,\n            orientation: 'row',\n            xray: 'hidden',\n            currentSection: null,\n            $sections: []\n        },\n        mounted() {\n            // Initialize any mounted logic here\n            this.$sections = this.$el.querySelectorAll('section');\n            this.max = this.$sections.length;\n            this.setCssVars();\n        },\n        computed: {\n            isFirstStep: function () {\n                return (this.step === 1)\n            },\n            isLastStep: function () {\n                return (this.step === this.max)\n            },\n            hasDots: function () {\n                return (this.max > 1 && this.showDots)\n            },\n            x_multiplier: function () {\n                return (this.orientation === 'row' ? -1 : 0)\n            },\n            y_multiplier: function () {\n                return (this.orientation === 'row' ? 0 : -1)\n            },\n            axis: function () {\n                return (this.orientation === 'row' ? 'row' : 'column')\n            },\n            axisReverse: function () {\n                return (this.orientation === 'row' ? 'row-reverse' : 'column-reverse')\n            },\n            cross: function () {\n                return (this.orientation === 'row' ? 'column' : 'row')\n            },\n            crossReverse: function () {\n                return (this.orientation === 'row' ? 'column-reverse' : 'row-reverse')\n            },\n            nextIcon: function () {\n                return (this.orientation === 'row' ? 'fa-arrow-right' : 'fa-arrow-down')\n            },\n            backIcon: function () {\n                return (this.orientation === 'row' ? 'fa-arrow-left' : 'fa-arrow-up')\n            },\n        },\n        watch: {\n            orientation: 'setCssVars',\n        },\n        methods: {\n            toggleChecklistModal(step) {\n                step = step || 1;\n                this.modal.isOpen = !this.modal.isOpen;\n                if (this.modal.isOpen) {\n                    let self = this;\n                    setTimeout(function () {\n                        self.$sections = self.$el.querySelectorAll('section');\n                        self.max = self.$sections.length;\n                        self.goToStep(step);\n                    }, 1);\n                }\n            },\n            setCssVars() {\n                this.$el.style.setProperty('--x', (((this.step * 100) - 100) * this.x_multiplier) + '%');\n                this.$el.style.setProperty('--y', (((this.step * 100) - 100) * this.y_multiplier) + '%');\n                this.$el.style.setProperty('--axis', this.axis);\n                this.$el.style.setProperty('--axis-reverse', this.axisReverse);\n                this.$el.style.setProperty('--cross', this.cross);\n                this.$el.style.setProperty('--cross-reverse', this.crossReverse);\n            },\n            goToStep(step) {\n                this.step = step > this.max ? this.max : step \u003c 1 ? 1 : step;\n                this.currentSection = this.$sections[this.step - 1];\n                this.$sections.forEach(function (section) {\n                    section.classList.remove('current');\n                });\n                this.currentSection.classList.add('current');\n                this.currentSection.scrollTop = 0;\n                this.setCssVars();\n            },\n            skip(step) {\n                this.step += step;\n                this.goToStep(this.step);\n            },\n            resetChecklist() {\n                this.goToStep(1);\n            },\n            finish() {\n                this.toggleChecklistModal();\n                return (this.max > 1 && this.showDots);\n            }\n        }\n    })\n    }\n*/\n\n//Help Widget\n   // Function to extract data-raycast-oas value from HTML\n        async function getLinksfromSpec() {\n            let oasValue = null;\n\n            // Primary: try the data-raycast-oas attribute\n            const headerElement = document.querySelector('[data-raycast-oas]');\n            if (headerElement) {\n                const attr = headerElement.getAttribute('data-raycast-oas');\n                if (attr && attr !== 'false' && attr !== '[object Object]') {\n                    oasValue = attr.trim();\n                }\n            }\n\n            // Fallback: fetch the current page and get from URL params\n            if (!oasValue) {\n                const urlParams = new URLSearchParams(window.location.search);\n                if (urlParams.has('json') && urlParams.get('json') === 'on') {\n                    try {\n                        const response = await fetch(window.location.href);\n                        const data = await response.json();\n                        oasValue = data.api.apiSetting;\n                    } catch (error) {\n                        console.error('Error fetching JSON:', error);\n                    }\n                }\n            }\n\n            if (oasValue) {\n                const oasUrl = `https://developer.onetrust.com/onetrust/openapi/${oasValue}`;\n                try {\n                    const response = await fetch(oasUrl);\n                    if (!response.ok) {\n                        throw new Error('Failed to fetch OpenAPI spec');\n                    }\n                    const data = await response.json();\n                    if (data.hasOwnProperty(\"x-onetrust\")) {\n                        return data[\"x-onetrust\"][\"links\"];\n                    }\n                } catch (error) {\n                    //console.error('Error fetching or processing OpenAPI spec:', error);\n                    return null;\n                }\n            }\n            return null;\n        }\n        // Initialize the OneTrust container and help button\n        function initHelpWidget() {\n            console.log('Initializing help widget');\n            var container = document.getElementById('onetrust-container');\n            var helpButton = document.getElementById('helpButton');\n\n            if (container) {\n                container.style.display = 'none';\n            }\n\n            if (helpButton) {\n                console.log('Adding click event to help button');\n                helpButton.onclick = toggleHelpContainer;\n            } else {\n                console.error('Help button not found');\n            }\n\n            // Initialize rating feature buttons\n            console.log('Setting up rating feature buttons');\n\n            // Rate your Experience button functionality\n            var rateExperienceBtn = document.getElementById('rateExperienceBtn');\n            if (rateExperienceBtn) {\n                console.log('Adding click event to rate experience button');\n                rateExperienceBtn.addEventListener('click', function () {\n                    document.getElementById('thumbsOptions').style.display = 'flex';\n                    document.getElementById('rateExperienceBtn').style.display = 'none';\n                    document.getElementById('voteNewFeatures').style.display = 'none';\n                });\n            } else {\n                console.error('Rate experience button not found');\n            }\n\n            // Thumbs Up button functionality\n            var thumbsUpBtn = document.getElementById('thumbsUpBtn');\n            if (thumbsUpBtn) {\n                thumbsUpBtn.addEventListener('click', function () {\n                    document.getElementById('commentInput').style.display = 'block';\n                    document.getElementById('thumbsUpBtn').style.color = 'darkgreen';\n                    document.getElementById('thumbsDownBtn').style.color = 'currentcolor';\n                    document.getElementById('thumbsOptions').style.display = 'flex';\n                    document.getElementById('submitButton').style.display = 'block';\n                });\n            }\n\n            // Thumbs Down button functionality\n            var thumbsDownBtn = document.getElementById('thumbsDownBtn');\n            if (thumbsDownBtn) {\n                thumbsDownBtn.addEventListener('click', function () {\n                    document.getElementById('commentInput').style.display = 'block';\n                    document.getElementById('thumbsUpBtn').style.color = 'currentcolor';\n                    document.getElementById('thumbsDownBtn').style.color = 'darkred';\n                    document.getElementById('thumbsOptions').style.display = 'flex';\n                    document.getElementById('submitButton').style.display = 'block';\n                });\n            }\n\n            // Submit button functionality\n            var submitButton = document.getElementById('submitButton');\n            if (submitButton) {\n                submitButton.addEventListener('click', async function () {\n                    var feedback = document.getElementById(\"feedbackTextarea\").value;\n                    if (!feedback.trim()) {\n                        document.getElementById(\"commentError\").style.display = \"block\";\n                        return;\n                    } else {\n                        document.getElementById(\"commentError\").style.display = \"none\";\n                    }\n\n                    try {\n                        const scriptElement = document.getElementById(\"hub-me\");\n                        // Get the value of the data-json attribute\n                        const jsonData = scriptElement ? scriptElement.getAttribute(\"data-json\") : null;\n                        // Parse the JSON data if available\n                        const parsedData = jsonData ? JSON.parse(jsonData) : {};\n\n                        // Get email if available\n                        const emailElement = document.getElementById(\"feedbackEmail\");\n                        const email = emailElement ? emailElement.value.trim() || null : null;\n\n                        var feedbackData = {\n                            vote: document.getElementById(\"thumbsUpBtn\").style.color === \"darkgreen\" ? 1 : 0,\n                            comments: document.getElementById(\"commentInput\").querySelector('textarea').value,\n                            path: window.location.pathname,\n                            requestType: \"pageQuality\",\n                            type: \"doc\"\n                        };\n\n                        // Adding the email to the comment since readme changed the api to not accept email\n                        if (email) {\n                            feedbackData.comments = email + \": \" + feedbackData.comments;\n                            feedbackData.email = email; // Doesn't seem to be used anymore by readme via the API\n                        }\n\n                        // Show success message immediately\n                        document.getElementById('successMessage').style.display = 'block';\n                        document.getElementById('commentInput').style.display = 'none';\n                        document.getElementById('submitButton').style.display = 'none';\n                        document.getElementById('thumbsOptions').style.display = 'none';\n\n                        // Send feedback to API\n                        fetch('https://developer.onetrust.com/onetrust/api-next/v2/versions/1.0/metrics-proxy/create/thumb', {\n                            method: 'POST',\n                            headers: {\n                                'Content-Type': 'application/json',\n                            },\n                            body: JSON.stringify(feedbackData),\n                        })\n                            .then(response => {\n                                if (!response.ok) {\n                                    throw new Error('Network response was not ok');\n                                }\n                                return response.json();\n                            })\n                            .then(data => {\n                                console.log('Feedback submitted successfully');\n                            })\n                            .catch(error => {\n                                console.error('Error submitting feedback:', error);\n                            });\n\n                        // Reset after delay regardless of API response\n                        setTimeout(function () {\n                            resetRateExperience();\n                            populateLinks();\n                        }, 3000);\n\n                    } catch (error) {\n                        console.error('Error processing feedback:', error);\n                        resetRateExperience();\n                    }\n                });\n            }\n        }\n\n        // Function to toggle OneTrust container visibility\n        function toggleHelpContainer() {\n            console.log('Help button clicked');\n            var container = document.getElementById('onetrust-container');\n            if (!container) {\n                console.error('Container not found');\n                return;\n            }\n\n            if (container.style.display === 'none') {\n                fetchHighestComponentGroupStatus();\n                container.style.display = \"block\";\n                document.querySelector('.help-icon').innerHTML = '\u003ci class=\"fas fa-times\">\u003c/i>';\n                // Get the \u003cscript> element by its id\n                const scriptElement = document.getElementById(\"hub-me\");\n                // Get the value of the data-json attribute\n                const jsonData = scriptElement.getAttribute(\"data-json\");\n                // Parse the JSON data\n                const parsedData = JSON.parse(jsonData);\n                // Extract the email from the parsed data\n                const name = parsedData.user?.name;\n                const email = parsedData.user?.email;\n                if (name) {\n                    const firstName = name.match(/^(\\S+)/)[1];\n                    // Updating the greeting message with the first name\n                    document.getElementById(\"greeting-name\").textContent = \"👋 Hi, \" + firstName + \"!\";\n                    document.getElementById(\"voteNewFeatures\").onclick = function () {\n                        window.open('https://ideas.onetrust.com/portal_session/new?email=' + encodeURIComponent(email), '_blank');\n                    };\n                }\n                if (email) {\n                    // Updating the email field with user's email \n                    document.getElementById(\"feedbackEmail\").value = email;\n                }\n                populateLinks();\n            } else {\n                resetRateExperience();\n                container.style.display = \"none\";\n                document.querySelector('.help-icon').innerHTML = '\u003ci class=\"fas fa-question\">\u003c/i>';\n            }\n        }\n\n        async function sleep(ms) {\n            return new Promise(resolve => setTimeout(resolve, ms));\n        }\n\n        // Function to populate Links\n        async function populateLinks() {\n            // Populate Links to Display based on current page\n            const currentPath = window.location.pathname;\n            let links = {}\n            if (currentPath.includes('/onetrust/reference')) {\n                let moduleLinks = await getLinksfromSpec();\n                links = {\n                    \"Getting Started: OneTrust APIs\": \"https://developer.onetrust.com/onetrust/reference/quick-start-guide\",\n                    \"API Rate Limiting\": \"https://developer.onetrust.com/onetrust/reference/rate-limits-overview\",\n                    \"Implementing Pagination\": \"https://developer.onetrust.com/onetrust/reference/understanding-implementing-pagination\",\n                    \"Explore our LLMs.txt file – Help AI understand our docs smarter and faster\": \"https://developer.onetrust.com/onetrust/v1.0/llms.txt\"\n                };\n                links = moduleLinks ? Object.assign(links, moduleLinks) : links;\n            } else if (currentPath.includes('/onetrust/docs')) {\n                links = {\n                    \"Getting Started: OneTrust SDKs\": \"https://my.onetrust.com/s/article/UUID-0297af95-8515-28ff-6f86-0f489f3c3e54?topicId=0TO1Q000000wxmbWAA\",\n                    \"Server-Side CMP APIs\": \"https://developer.onetrust.com/onetrust/docs/server-side-cmp-api-introduction\",\n                    \"Third-Party Integration Guides\": \"https://developer.onetrust.com/onetrust/docs/add-script-to-website\",\n                    \"Explore our LLMs.txt file – Help AI understand our docs smarter and faster\": \"https://developer.onetrust.com/onetrust/v1.0/llms.txt\"\n                };\n            } else if (currentPath.includes('/onetrust/changelog')) {\n                links = {\n                    \"Release Notes\": \"https://my.onetrust.com/s/release-notes\",\n                    \"Scheduled Maintenance\": \"https://my.onetrust.com/s/article/Scheduled-Maintenance\",\n                    \"System Status\": \"https://my.onetrust.com/s/system-status\",\n                    \"Explore our LLMs.txt file – Help AI understand our docs smarter and faster\": \"https://developer.onetrust.com/onetrust/v1.0/llms.txt\"\n                };\n            } else if (currentPath.includes('/onetrust/recipes')) {\n                links = {\n                    \"Download API Specs\": \"https://developer.onetrust.com/onetrust/openapi\",\n                    \"Integrations Knowledge Base\": \"https://my.onetrust.com/s/topic/0TO1Q000000ItT9WAK/integrations\",\n                    \"Explore our LLMs.txt file – Help AI understand our docs smarter and faster\": \"https://developer.onetrust.com/onetrust/v1.0/llms.txt\"\n                };\n            } else if (currentPath.includes('/onetrust/page/partners')) {\n                links = {\n                    \"Integrations Knowledge Base\": \"https://my.onetrust.com/s/topic/0TO1Q000000ItT9WAK/integrations\",\n                    \"Getting Started: OneTrust APIs\": \"https://developer.onetrust.com/onetrust/reference/quick-start-guide\",\n                    \"API Rate Limiting\": \"https://developer.onetrust.com/onetrust/reference/rate-limits-overview\",\n                    \"Implementing Pagination\": \"https://developer.onetrust.com/onetrust/reference/understanding-implementing-pagination\",\n                    \"Explore our LLMs.txt file – Help AI understand our docs smarter and faster\": \"https://developer.onetrust.com/onetrust/v1.0/llms.txt\"\n                };\n            } else {\n                links = {\n                    \"Developer Forum\": \"https://my.onetrust.com/s/group/0F91Q000000hGyPSAU/developer-experience\",\n                    \"Explore our LLMs.txt file – Help AI understand our docs smarter and faster\": \"https://developer.onetrust.com/onetrust/v1.0/llms.txt\"\n                };\n            }\n\n            // Get the Links Div\n            const container = document.querySelector('.onetrust-floating-links');\n            // Iterate over the links object and create \u003ca> elements\n            Object.entries(links).forEach(([title, url]) => {\n                const a = document.createElement('a');\n                a.href = url;\n                a.target = '_blank';\n                a.textContent = title;\n                container.appendChild(a);\n            });\n        }\n        // Function to reset Rate your Experience button\n        function resetRateExperience() {\n            document.getElementById(\"rateExperienceBtn\").style.display = \"flex\";\n            document.getElementById(\"voteNewFeatures\").style.display = \"flex\";\n            document.getElementById(\"thumbsOptions\").style.display = \"none\";\n            document.getElementById(\"commentInput\").style.display = \"none\";\n            document.getElementById(\"submitButton\").style.display = \"none\";\n            document.getElementById(\"thumbsUpBtn\").blur();\n            document.getElementById(\"thumbsUpBtn\").style.color = \"currentcolor\";\n            document.getElementById(\"thumbsDownBtn\").style.color = \"currentcolor\";\n            document.getElementById(\"thumbsDownBtn\").blur();\n            document.getElementById(\"commentInput\").querySelector('textarea').value = \"\";\n            document.getElementById(\"otStatusAlert\").style.display = \"none\";\n            document.getElementById(\"successMessage\").style.display = \"none\";\n            const a = document.querySelectorAll('.onetrust-floating-links a');\n            a.forEach((link) => {\n                link.parentNode.removeChild(link);\n            });\n        }\n        async function fetchHighestComponentGroupStatus() {\n            const url = 'https://try.readme.io/https://onetruststatus-1564678085559.site24x7statusiq.com/sp/api/public/summary_details/statuspages/ap5x50QW8NIw4SPq2SZXYXycmr53nFVf_CF7exQFdPY=?period=27&timezone=America/Chicago';\n\n            try {\n                const response = await fetch(url, {\n                    headers: {\n                        \"Content-Type\": \"application/json\",\n                    }, referrerPolicy: \"origin\" // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url\n                });\n                if (!response.ok) {\n                    throw new Error(`HTTP error! status: ${response.status}`);\n                }\n                const data = await response.json();\n                if (data.code !== 0 || !data.data || !data.data.current_status) {\n                    throw new Error('Unexpected response format');\n                }\n                // Extract componentgroup_status values and filter out undefined or non-numeric values\n                const statuses = data.data.current_status.map(status => status.componentgroup_status).filter(status => typeof status === 'number' && !isNaN(status));\n                // Get the highest status, default to -Infinity if no valid statuses are found\n                const highestStatus = statuses.length > 0 ? Math.max(...statuses) : -Infinity;\n                if (highestStatus > 2) { //1: Good, 2: Info, 3: Maint, etc. \n                    document.getElementById(\"otStatusAlert\").style.display = \"block\";\n                }\n                return highestStatus;\n            } catch (error) {\n                console.error('Error fetching data:', error);\n            }\n        }\n\n\n        // Start Thumb Voting Spam HONEYPOT\n        document.addEventListener(\"DOMContentLoaded\", function () {\n            const observer = new MutationObserver(function () {\n                const commentTextarea = document.querySelector(\".PageThumbs-comment_input\");\n                const voteButton = document.querySelector(\".PageThumbs-comment_submit\");\n\n                // Function to evaluate the state of the form\n                const evaluateFormState = () => {\n                    const honeypot = document.querySelector(\n                        'input[name=\"commentConfirmationRequired\"]'\n                    );\n                    if (honeypot && voteButton) {\n                        // Disable the button if the honeypot is filled or the comment box is empty\n                        voteButton.disabled =\n                            commentTextarea.value.trim() === \"\" || honeypot.value.trim() !== \"\";\n                    }\n                };\n\n                if (commentTextarea && voteButton) {\n                    // If both elements exist, proceed with the rest of the code\n\n                    // Change the entire comment prompt to \"Please comment to vote\"\n                    const commentLabel = commentTextarea\n                        .closest(\".Box2uBHSWG8DzPz\")\n                        .querySelector(\"label\");\n                    if (commentLabel) {\n                        commentLabel.childNodes.forEach((node) => {\n                            if (node.nodeType === Node.TEXT_NODE) {\n                                node.nodeValue = \"Please comment to vote\";\n                            }\n                        });\n                    }\n\n                    // Continuously monitor and enforce the disabled state based on form conditions\n                    setInterval(evaluateFormState, 100);\n\n                    // Ensure the honeypot field is added only once\n                    if (\n                        !document.querySelector('input[name=\"commentConfirmationRequired\"]')\n                    ) {\n                        const honeypot = document.createElement(\"input\");\n                        honeypot.setAttribute(\"type\", \"text\");\n                        honeypot.setAttribute(\"name\", \"commentConfirmationRequired\");\n                        honeypot.style.opacity = \"0\";\n                        honeypot.style.position = \"absolute\";\n                        honeypot.setAttribute(\"tabindex\", \"-1\");\n                        commentTextarea.parentNode.insertBefore(\n                            honeypot,\n                            commentTextarea.nextSibling\n                        );\n                    }\n\n                    // Evaluate form state on input\n                    commentTextarea.addEventListener(\"input\", evaluateFormState);\n                    document\n                        .querySelector('input[name=\"commentConfirmationRequired\"]')\n                        .addEventListener(\"input\", evaluateFormState);\n\n                    // Double-check before submission\n                    const form = voteButton.closest(\"form\");\n                    if (form) {\n                        form.addEventListener(\"submit\", function (event) {\n                            evaluateFormState(); // Ensure the form state is evaluated one last time before submission\n                            if (voteButton.disabled) {\n                                event.preventDefault(); // Prevent form submission if conditions are not met\n\n                            }\n                        });\n                    }\n                }\n            });\n\n            observer.observe(document.body, { childList: true, subtree: true });\n        });\n\n        /* Disabling for now since its taking out the emails, if we get spam, we will enable \n        // Thumb Voting Spam METRICS\n        document.addEventListener(\"DOMContentLoaded\", function () {\n          // Check if fetch has already been overridden to avoid multiple overrides\n          if (window.fetch.isOverridden) return;\n        \n          // Save the original fetch function\n          const originalFetch = window.fetch;\n        \n          // Override fetch to intercept requests\n          window.fetch = async (input, init) => {\n            // Check if the request matches the voting endpoint\n            if (typeof input === 'string' && input.includes('/metrics-proxy/create/thumb')) {\n              try {\n                // Check if it's a POST request with a JSON body\n                if (init && init.method === 'POST' && init.body) {\n                  const payload = JSON.parse(init.body);\n        \n                  // Retrieve the actual comment text from the text input field on the page\n                  const commentTextarea = document.querySelector(\".PageThumbs-comment_input\");\n                  console.log(commentTextarea);\n                  const actualComment = commentTextarea ? commentTextarea.value.trim() : \"\";\n                  console.log(actualComment);\n        \n                  // Define patterns for known spam and injection attempts\n                  const suspiciousPatterns = [\n                    /\u003cscript.*?>|\u003c\\/.*?>/i, // HTML tags or any closing tags\n                    /DBMS_PIPE|PG_SLEEP|waitfor delay|sleep|sysdate/i, // SQL injection and delay keywords\n                    /['\";|&@$%\u003c>]/, // Special characters common in injection attacks\n                    /[\\'\\\"]{2,}/, // Multiple consecutive quotes (e.g., '' or \"\")\n                    /^\\s*✅ VERIFIED\\s*$/ // Matches exactly \"✅ VERIFIED\"\n                  ];\n        \n                  // Check for suspicious patterns\n                  const isSuspicious = suspiciousPatterns.some((pattern) => pattern.test(actualComment));\n                  if (isSuspicious) {\n                    console.warn(\"Blocked suspicious submission due to spam/injection pattern.\");\n                    return; // Cancel the fetch by returning early\n                  }\n        \n                  // Apply conditional verification based on actual comment field content\n                  if (actualComment !== \"\") {\n                    // If there's a non-empty comment in the input, append \" | ✅ APPROVED\"\n                    payload.comments = actualComment + \" | ✅ APPROVED\";\n                    console.log(payload.comments);\n                  } else {\n                    // If comments are empty, log and cancel the fetch\n                    console.warn(\"Blocked submission due to empty comment.\");\n                    return; // Cancel the fetch by returning early\n                  }\n        \n                  // Fallback: if payload.comments is empty after all checks, mark as \"❌ UNVERIFIED\"\n                  if (!payload.comments || payload.comments.trim() === \"\") {\n                    payload.comments = \"❌ UNVERIFIED\";\n                  }\n        \n                  // Replace the original body with the modified payload\n                  init.body = JSON.stringify(payload);\n                }\n              } catch (error) {\n                console.error(\"Error modifying payload:\", error);\n              }\n            }\n        \n            // Proceed with the original fetch function using the (potentially modified) init\n            return originalFetch(input, init);\n          };\n        \n          // Mark fetch as overridden\n          window.fetch.isOverridden = true;\n        });\n        */\n        // End Thumb Voting Spam HONEYPOT\n\n        // Initialize the help widget when the page loads\n        window.addEventListener('DOMContentLoaded', initHelpWidget);\n\n        // Fallback initialization in case DOMContentLoaded already fired\n        if (document.readyState === 'complete' || document.readyState === 'interactive') {\n            console.log('Document already loaded, initializing help widget now');\n            setTimeout(initHelpWidget, 1000);\n        }\n\n        // Add a global click handler as another fallback\n        document.addEventListener('click', function (e) {\n            if (e.target.closest('#helpButton')) {\n                console.log('Help button clicked via global handler');\n                toggleHelpContainer();\n            }\n        });","html_promo":"","html_body":"","html_footer":"\u003chead>\n\n\n\n\n    \u003cstyle>\n        /* Floating button */\n        .onetrust-floating-button {\n            position: fixed;\n            bottom: 20px;\n            right: 20px;\n            background: linear-gradient(to top, #4F9D81, #6672C4);\n            color: #fff;\n            width: 60px;\n            height: 60px;\n            border-radius: 50%;\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            cursor: pointer;\n            transition: transform ease-out 0.1s, background 0.2s;\n            transition: background-color 0.3s, transform 0.3s;\n            z-index: 1000;\n            box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);\n        }\n\n        .onetrust-floating-button:hover {\n            background-color: #388e3c;\n            transform: scale(1.1);\n            cursor: pointer\n        }\n\n        /* Container */\n        #onetrust-container {\n            position: fixed;\n            bottom: 90px;\n            right: 30px;\n            width: 410px;\n            border-radius: 10px;\n            box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);\n            z-index: 999;\n            overflow: hidden;\n            /* Ensure content does not overflow */\n        }\n\n        #onetrust-container>.onetrust-top {\n            background: linear-gradient(to top, #4F9D81, #6672C4);\n            color: #fff;\n            padding: 20px;\n            border-radius: 10px 10px 0 0;\n            position: relative;\n        }\n\n        #onetrust-container>.onetrust-bottom {\n            background-color: white;\n            padding: 20px;\n            border-radius: 0 0 10px 10px;\n        }\n\n        #onetrust-container>.onetrust-bottom::before {\n            content: \"\";\n            position: absolute;\n            top: -20px;\n            left: 0;\n            width: 100%;\n            height: 0px;\n            background-color: white;\n        }\n\n        #onetrust-container>.onetrust-top::after {\n            content: \"\";\n            position: absolute;\n            bottom: -20px;\n            left: 0;\n            width: 100%;\n            height: 0px;\n            background: transparent;\n        }\n\n        .onetrust-floating-header {\n            display: flex;\n            align-items: center;\n            justify-content: space-between;\n            padding-bottom: 10px;\n        }\n\n        .onetrust-floating-header h1 {\n            color: #fff;\n            font-size: 20px;\n        }\n\n        .onetrust-floating-greeting {\n            color: #fff;\n            font-size: 28px;\n            font-weight: bold;\n        }\n\n        .onetrust-floating-links {\n            margin-top: 20px;\n            color: #fff;\n        }\n\n        .onetrust-floating-links a {\n            display: list-item;\n            color: #fff;\n            margin-bottom: 5px;\n            text-decoration: none;\n            transition: color 0.3s;\n            margin-left: 30px;\n            font-size: 18px;\n        }\n\n        .onetrust-floating-links span {\n            margin-bottom: 10px;\n            display: block;\n            font-size: 18px;\n        }\n\n        .onetrust-floating-links a:hover {\n            text-decoration: underline\n        }\n\n        .onetrust-floating-buttons {\n            display: flex;\n            flex-direction: column;\n            text-align: left;\n        }\n\n        .onetrust-top {\n            max-height: 400px;\n            /* Set your desired maximum height */\n            overflow-y: auto;\n            /* Enable vertical scrolling */\n        }\n\n        .onetrust-button {\n            background-color: #fff;\n            color: #4F9D81;\n            border: 1px solid;\n            border-radius: 5px;\n            padding: 10px;\n            font-size: 16px;\n            margin-bottom: 10px;\n            display: flex;\n            align-items: center;\n            transition: background-color 0.3s;\n        }\n\n        .onetrust-button:hover {\n            background-color: #f1f1f1;\n            cursor: pointer;\n        }\n\n        .onetrust-button-span {\n            margin-left: 10px;\n            margin-right: 10px;\n            text-align: left;\n        }\n\n        i.onetrust-svg.fas {\n            font-size: xx-large;\n        }\n\n        i.onetrust-svg.fas.fa-lightbulb {\n            padding-left: 5px;\n            width: 1em;\n        }\n\n        svg.svg-inline--fa.fa-thumbs-up.fa-w-16 {\n            font-size: x-large;\n        }\n\n        svg.svg-inline--fa.fa-thumbs-down.fa-w-16 {\n            font-size: x-large;\n        }\n\n        span.onetrust-svg-inline.help-icon {\n            font-size: xx-large;\n        }\n\n        svg.onetrust-svg {\n            font-size: xx-large;\n        }\n\n        svg.svg-inline--fa.fa-lightbulb.onetrust-svg {\n            width: 1.2em;\n        }\n\n        /* Additional styles for thumbs up/down options */\n        .thumbs-options {\n            display: none;\n            justify-content: space-evenly;\n            align-items: center;\n            color: var(--slate);\n            /* Apply this rule through a CSS class */\n        }\n\n        .thumbs-options button {\n            border: none;\n            color: currentcolor;\n            margin-bottom: 0px;\n        }\n\n\n        .comment-input {\n            display: none;\n            margin-top: 10px;\n        }\n\n        .comment-input textarea {\n            width: 100%;\n            resize: vertical;\n            margin-top: 5px;\n            background: white;\n          \tcolor: var(--gray20);\n        }\n      \n        .PageThumbs-email_input {\n            width: 100%;\n            resize: vertical;\n            margin-top: 5px;\n            background: white;\n          \tcolor: var(--gray20);\n        }\n\n        .submit-btn {\n            display: none;\n            margin-top: 10px;\n            font-weight: bold;\n        }\n\n        .alert-icon {\n            position: absolute;\n            top: 35px;\n            right: 35px;\n            font-size: 25px;\n            color: white;\n            animation: pulsate 1.5s infinite;\n        }\n\n        .alert-icon:hover {\n            cursor: pointer;\n        }\n\n        @keyframes pulsate {\n            0% {\n                transform: scale(1);\n            }\n\n            50% {\n                transform: scale(1.3);\n            }\n\n            100% {\n                transform: scale(1);\n            }\n        }\n    \u003c/style>\n\u003c/head>\n\n\u003cbody>\n    \u003c!-- Floating button with help icon -->\n    \u003cdiv class=\"onetrust-floating-button\" id=\"helpButton\">\n        \u003cspan class=\"onetrust-svg-inline help-icon\">\u003ci class=\"fas fa-question\">\u003c/i>\u003c/span>\n    \u003c/div>\n    \u003c!-- OneTrust container -->\n    \u003cdiv id=\"onetrust-container\" style=\"display: none;\">\n        \u003cdiv class=\"onetrust-top\">\n            \u003ca id=\"otStatusAlert\" style=\"display: none;\"\n                href=\"https://onetruststatus-1564678085559.site24x7statusiq.com/\" target=\"_blank\">\u003ci\n                    class=\"fas fa-triangle-exclamation alert-icon\">\u003c/i>\u003c/a>\n            \u003cdiv class=\"onetrust-floating-header\">\n            \u003c/div>\n            \u003cdiv class=\"onetrust-floating-greeting\">\n                \u003cspan id=\"greeting-name\" style=\"padding-bottom:10px\">👋 Hi there!\u003c/span>\u003cbr>\u003cbr>\n                \u003cspan style=\"font-size:23px\">Start Learning.\u003c/span>\n                \u003cspan style=\"font-size:23px\">Start Building.\u003c/span>\n                \u003cspan style=\"font-size:23px\">Start Launching! 🚀\u003c/span>\n            \u003c/div>\n            \u003cdiv class=\"onetrust-floating-links\">\n                \u003cspan>These resources can help you get started:\u003c/span>\n\n            \u003c/div>\n        \u003c/div>\n        \u003cdiv class=\"onetrust-bottom\">\n            \u003cdiv class=\"onetrust-floating-buttons\">\n                \u003cbutton class=\"onetrust-button\" id=\"rateExperienceBtn\">\n                    \u003cspan class=\"onetrust-button-span\">\u003ci class=\"onetrust-svg fas fa-star\">\u003c/i>\u003c/span>\n                    \u003cspan class=\"onetrust-button-span\">\u003cstrong>Rate your Experience\u003c/strong>\u003cbr>\u003csmall>Share overall\n                            feedback\u003c/small>\u003c/span>\n                \u003c/button>\n                \u003cdiv class=\"thumbs-options\" id=\"thumbsOptions\">\n                    \u003cspan>\u003cstrong>Did this page help you?\u003c/strong>\u003c/span>\u003cbr>\u003cbr>\n                    \u003cbutton class=\"onetrust-button\" id=\"thumbsUpBtn\">\u003ci class=\"onetrust-svg fas fa-thumbs-up\">\u003c/i>\u003cspan\n                            class=\"onetrust-button-span\">Yes\u003c/span>\u003c/button>\n                    \u003cbutton class=\"onetrust-button\" id=\"thumbsDownBtn\">\u003ci\n                            class=\"onetrust-svg fas fa-thumbs-down\">\u003c/i>\u003cspan\n                            class=\"onetrust-button-span\">No\u003c/span>\u003c/button>\n                \u003c/div>\n                \u003cdiv class=\"comment-input\" id=\"commentInput\">\n                   \u003cinput id=\"feedbackEmail\"\n                        class=\"Input Input_md Input_touched PageThumbs-email_input\"\n                        placeholder=\"Optional: Provide your email for a response\">\u003c/input>\n                    \u003ctextarea id=\"feedbackTextarea\"\n                        class=\"Textarea Textarea_md Textarea_vertical PageThumbs-comment_input\"\n                        placeholder=\"Please provide additional comments...\">\u003c/textarea>\n                    \u003cspan class=\"onetrust-button-span\" id=\"commentError\" style=\"color: darkred; display: none;\">Please\n                        enter your feedback.\u003c/span>\n                    \u003cspan class=\"onetrust-button-span\" id=\"successMessage\"\n                        style=\"color: darkgreen; display: none;\">Feedback submitted\n                        successfully!\u003c/span>\n                \u003c/div>\n                \u003cbutton class=\"submit-btn onetrust-button\" id=\"submitButton\">Submit Feedback\u003c/button>\n                \u003cbutton class=\"onetrust-button\" id=\"voteNewFeatures\"\n                    onclick=\"window.open('https://ideas.onetrust.com','_blank');\" type=\"button\">\n                    \u003cspan class=\"onetrust-button-span\">\u003ci class=\"onetrust-svg fas fa-lightbulb\">\u003c/i>\u003c/span>\n                    \u003cspan class=\"onetrust-button-span\">\u003cstrong>Vote on New Features\u003c/strong>\u003cbr>\u003csmall>Have a say in\n                            what we build\n                            next\u003c/small>\u003c/span>\n                \u003c/button>\n\n            \u003c/div>\n        \u003c/div>\n    \u003c/div>\n\u003c/body>\n\n\u003c/html>","html_head":"\u003cdiv id=\"brave-warning\" class=\"Banner2qY-Hhfqm_Gx Banner_secondary1reFai47T0j4 Banner_smUPcJRlth4_Dl Banner_fixeda1mFpjcc1TJ6\" style=\"display:none\">\u003ci class=\"icon-warning\">\u003c/i>We've detected that you are using the Brave browser. This site does not display correctly when the Brave Shields are enabled. Please set your Shields to Down.\u003c/div>\n\u003clink href='https://fonts.googleapis.com/css?family=Open Sans' rel='stylesheet'>","html_footer_meta":"","html_hidelinks":false,"showVersion":false,"hideTableOfContents":false,"nextStepsLabel":"","promos":[{"extras":{"type":"search","buttonPrimary":"get-started","buttonSecondary":"reference"},"title":"Welcome to the OneTrust Developer Portal","text":"The OneTrust Developer Portal allows you to leverage APIs and SDKs to seamlessly integrate external systems and streamline the flow of data with the OneTrust platform.","_id":"620d23a442d78f05786a49c6"}],"loginLogo":[],"logo_large":false,"colorScheme":"system","changelog":{"layoutExpanded":false,"showAuthor":false,"showExactDate":true},"allowApiExplorerJsonEditor":true,"ai_dropdown":"enabled","ai_options":{"chatgpt":"enabled","claude":"enabled","clipboard":"enabled","view_as_markdown":"enabled","copilot":"enabled","perplexity":"enabled","ask_ai":"disabled","mcp":{"command":"enabled","config":"enabled","cursor":"enabled","vscode":"enabled"}},"showPageIcons":true,"layout":{"full_width":true,"style":"classic"},"methodBadgeStyle":"classic","showMethodInSidebar":true,"showBreadcrumbs":true,"collapsibleCategories":true,"oneOfLayout":"dropdown"},"custom_domain":"","childrenProjects":[],"derivedPlan":"enterprise","description":"The OneTrust Developer Portal allows you to leverage APIs and SDKs to seamlessly integrate external systems and streamline the flow of data with the OneTrust platform.","hstsIncludeSubdomains":true,"planSchedule":{"stripeScheduleId":null,"changeDate":null,"nextPlan":null},"planStatus":"","shouldGateDash":false,"isExternalSnippetActive":false,"error404":"404","first_page":"reference","flags":{"allow_hub2":false,"enterprise":false,"alwaysShowDocPublishStatus":false,"hub2":true,"migrationRun":false,"migrationSwaggerRun":false,"oauth":false,"swagger":false,"correctnewlines":false,"rdmdCompatibilityMode":false,"speedyRender":false,"allowXFrame":true,"newEditor":true,"newEditorDash":true,"oldMarkdown":false,"newMarkdownBetaProgram":true,"useReactApp":true,"disableAnonForum":false,"directGoogleToStableVersion":false,"translation":false,"staging":false,"newSearch":true,"graphql":false,"allowApiExplorerJsonEditor":false,"singleProjectEnterprise":false,"dashReact":false,"metricsV2":true,"enableRealtimeExperiences":false,"reviewWorkflow":true,"star":false,"allowDarkMode":false,"forceDarkMode":false,"useReactGLP":false,"disablePasswordlessLogin":false,"personalizedDocs":false,"myDevelopers":false,"superHub":true,"developerDashboard":false,"allowReusableOTPs":false,"dashHomeRefresh":false,"owlbotAi":false,"apiV2":false,"git":{"read":false,"write":false},"superHubBeta":false,"dashQuickstart":false,"disableAutoTranslate":false,"customBlocks":false,"devDashHub":false,"disableSAMLScoping":false,"allowUnsafeCustomHtmlSuggestionsFromNonAdmins":false,"apiAccessRevoked":false,"passwordlessLogin":"default","disableSignups":false,"billingRedesignEnabled":true,"developerPortal":false,"mdx":false,"superHubDevelopment":false,"annualBillingEnabled":true,"devDashBillingRedesignEnabled":false,"enableOidc":false,"customComponents":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":true,"superHubMigrationSelfServeFlow":false,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":true,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false,"superHubBranches":false,"requiresJQuery":true,"externalSdkSnippets":false,"migrationPreview":false,"superHubPreview":false,"superHubBranchReviews":false,"superHubMergePermissions":false,"dryRunMigration":false,"aiDocsAudit":false,"aiPageLinting":false,"githubCloudSync":false,"disableAiChat":false,"enableSuggestedEdits":false,"superHubBranchMergeRules":false,"superHubBranchReviewActions":false,"gitTranslations":false,"bidiSyncGitlabSelfServe":false,"gitlabCloudSync":false,"superHubPlanManagement":false,"bidiSyncBitbucketSelfServe":false,"mdxSanitizeComments":false,"mdxish":true,"disableSuperframe":false,"hideAiFeatures":false,"gittoUseNewIndexer":true,"mdxishEditor":true,"prefetch":false,"aiWriter":false,"superHubBranchReviewDashboard":false,"bidiSyncUseOdbAlternates":true,"mcpMetrics":false,"newDereferencer":false,"newIframeStructure":false,"streamingSsr":false,"googleAuthEnabled":false,"superHubNotifications":false,"superHubTypography":false,"newExplorerReducer":false,"gittoUseExperimentalMDXCache":false,"gittoUseConnectionPooling":false,"askAiOverride":"","superHubSlack":false,"customDomainAdminBypass":false,"aiDiscovery":false,"branchTaggedReviewers":false,"jwtReplacePermissions":false,"mcpOauth":false,"superHubBranchReviewSummaries":false,"superHubSlackNotifications":false,"aiTranslation":false,"superHubUiTesting":false},"fullBaseUrl":"https://onetrust.readme.io/","git":{"aiWriter":{"setup":{"error":{}}},"migration":{"createRepository":{"end":"2025-12-15T10:03:07.632Z","start":"2025-12-15T10:03:07.281Z","status":"successful"},"transformation":{"end":"2025-12-15T10:03:13.757Z","start":"2025-12-15T10:03:09.119Z","status":"successful"},"migratingPages":{"end":"2025-12-15T10:03:15.181Z","start":"2025-12-15T10:03:14.441Z","status":"successful"},"enableSuperhub":{"start":"2025-12-15T11:20:19.355Z","status":"successful","end":"2025-12-15T11:20:19.356Z"}},"sync":{"installationRequest":{},"connections":[],"providers":[]},"migrationType":"preview","renamedSlugs":[]},"glossaryTerms":[{"term":"client_id","definition":"Unique identifier for the OneTrust client credential.","_id":"6944272f3991ecfaaf896a2e"},{"term":"grant_type","definition":"decides the type of access. OneTrust supports both password and client_credentials grant type","_id":"6944272f3991ecfaaf896a2f"},{"term":"client_secret","definition":"a one-time hexadecimal string that is issued and displayed at the time of client credential creation.","_id":"6944272f3991ecfaaf896a30"},{"term":"environment","definition":"The applicable Environment where each OneTrust tenant is hosted can be identified based on the URL, for example, https://app.onetrust.com would be the App Environment.","_id":"6944272f3991ecfaaf896a31"},{"term":"environments","definition":"The applicable Environment where each OneTrust tenant is hosted can be identified based on the URL, for example, https://app.onetrust.com would be the App Environment.","_id":"6944272f3991ecfaaf896a32"},{"term":"account","definition":"OneTrust accounts are hosted in a OneTrust Environment. Accounts are normally provisioned to customers or partners and many users share access to the same account. It is possible for a single user to have access to multiple accounts in an environment. You can switch between accounts by clicking on the User icon in the OneTrust Application and selecting Switch Tenants.","_id":"6944272f3991ecfaaf896a33"}],"graphqlSchema":"","gracePeriod":{"enabled":false,"endsAt":null},"healthCheck":{"provider":"manual","settings":{"page":"","status":true,"url":"https://onetruststatus-1564678085559.site24x7signals.com"}},"i18n":{"defaultLanguage":"en","languages":["en"],"state":"enabled"},"intercom":"","is_active":true,"internal":"","jwtExpirationTime":0,"landing_bottom":[{"type":"html","alignment":"left","html":"\u003cmain class=\"LandingWrap16kRMSdr5J8g rm-LandingPage\" id=\"content\">\n    \u003cdiv class=\"LandingBlock3PM-HyBxby3X LandingBlock_align=leftG1r7ROyW_AGB\">\n        \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n            \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"what-is-onetrust\">\u003c/div>\n                \u003cdiv class=\"heading-text\">\n                    \u003cdiv id=\"section-what-is-one-trust\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>What is\n                    OneTrust?\n                \u003c/div>\u003ca aria-label=\"Skip link to What is OneTrust?\" class=\"heading-anchor-icon fa fa-anchor\"\n                    href=\"#what-is-onetrust\">\u003c/a>\n            \u003c/h2>\n            \u003cp>OneTrust is the #1 most widely used platform to operationalize privacy, security &amp; governance. More\n                than 12,000 customers use OneTrust to build integrated programs that comply with the CCPA, GDPR, LGPD,\n                PDPA, ISO27001, and hundreds of the world’s privacy and security laws.\u003c/p>\n        \u003c/div>\n    \u003c/div>\n    \u003cdiv class=\"LandingBlock3PM-HyBxby3X LandingBlock_align=leftG1r7ROyW_AGB\">\n        \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n            \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"who-is-onetrust-for\">\u003c/div>\n                \u003cdiv class=\"heading-text\">\n                    \u003cdiv id=\"section-who-is-one-trust-for\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>Who is\n                    OneTrust for?\n                \u003c/div>\u003ca aria-label=\"Skip link to Who is OneTrust for?\" class=\"heading-anchor-icon fa fa-anchor\"\n                    href=\"#who-is-onetrust-for\">\u003c/a>\n            \u003c/h2>\n            \u003cp>OneTrust offers Privacy Management, Third-Party Risk, GRC, Data Governance, Preference &amp; Consent\n                Management, and Ethics &amp; Compliance solutions built for those focused on using technology to be a\n                more trusted organization.\u003c/p>\n            \u003chr>\n        \u003c/div>\n    \u003c/div>\n    \u003cdiv class=\"LandingBlock3PM-HyBxby3X LandingBlock_align=leftG1r7ROyW_AGB\">\n        \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n            \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"-getting-started\">\u003c/div>\n                \u003cdiv class=\"heading-text\">\n                    \u003cdiv id=\"section-💡-getting-started\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>💡 Getting\n                    Started\n                \u003c/div>\u003ca aria-label=\"Skip link to 💡 Getting Started\" class=\"heading-anchor-icon fa fa-anchor\"\n                    href=\"#-getting-started\">\u003c/a>\n            \u003c/h2>\n            \u003cp>The OneTrust Developer Portal offers a variety of resources to help you get started with integrating\n                seamlessly into the OneTrust platform. With the OneTrust Developer Portal, you can:\u003c/p>\n        \u003c/div>\n    \u003c/div>\n    \u003cdiv class=\"LandingBlock3PM-HyBxby3X LandingBlock-Three2lm6yBrv1MlV LandingBlock_align=leftG1r7ROyW_AGB\">\n        \u003cdiv class=\"LandingBlock3PM-HyBxby3X\">\n            \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n                \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                    \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"-api-reference\">\u003c/div>\n                    \u003cdiv class=\"heading-text\">\n                        \u003cdiv id=\"section-💻-api-reference\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>\u003ci class=\"icon-references\">\u003c/i> API\n                        Reference\n                    \u003c/div>\u003ca aria-label=\"Skip link to 💻 API Reference\" class=\"heading-anchor-icon fa fa-anchor\"\n                        href=\"#-api-reference\">\u003c/a>\n                \u003c/h2>\n                \u003cp>Explore APIs that you can use to integrate seamlessly into the OneTrust platform.\u003c/p>\n                \u003cp>\u003ca target=\"_self\" href=\"/onetrust/reference\">View More &gt;\u003c/a>\u003c/p>\n            \u003c/div>\n        \u003c/div>\n        \u003cdiv class=\"LandingBlock3PM-HyBxby3X\">\n            \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n                \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                    \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"-sdk-reference\">\u003c/div>\n                    \u003cdiv class=\"heading-text\">\n                        \u003cdiv id=\"section-📱-sdk-reference\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>\u003ci class=\"icon-guides\">\u003c/i> SDK\n                        Reference\n                    \u003c/div>\u003ca aria-label=\"Skip link to 📱 SDK Reference\" class=\"heading-anchor-icon fa fa-anchor\"\n                        href=\"#-sdk-reference\">\u003c/a>\n                \u003c/h2>\n                \u003cp>Discover what you can do with the SDKs and review resources to help you get started.\u003c/p>\n                \u003cp>\u003ca target=\"_self\" href=\"/onetrust/docs\">View More &gt;\u003c/a>\u003c/p>\n            \u003c/div>\n        \u003c/div>\n        \u003cdiv class=\"LandingBlock3PM-HyBxby3X\">\n            \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n                \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                    \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"-recipes\">\u003c/div>\n                    \u003cdiv class=\"heading-text\">\n                        \u003cdiv id=\"section-👨&zwj;🍳-recipes\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>\n                        \u003ci class=\"icon-recipes\">\u003c/i> Recipes\n                    \u003c/div>\u003ca aria-label=\"Skip link to 👨&zwj;🍳 Recipes\" class=\"heading-anchor-icon fa fa-anchor\"\n                        href=\"#-recipes\">\u003c/a>\n                \u003c/h2>\n                \u003cp>Discover code examples accompanied by detailed instructions to quickly initiate your understanding of\n                    the APIs.\u003c/p>\n                \u003cp>\u003ca target=\"_self\" href=\"/onetrust/recipes\">View More &gt;\u003c/a>\u003c/p>\n            \u003c/div>\n        \u003c/div>\n    \u003c/div>\n    \u003cdiv class=\"LandingBlock3PM-HyBxby3X LandingBlock_align=leftG1r7ROyW_AGB\">\n        \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n            \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"-get-help\">\u003c/div>\n                \u003cdiv class=\"heading-text\">\n                    \u003cdiv id=\"section-❓-get-help\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>❓ Get Help\n                \u003c/div>\u003ca aria-label=\"Skip link to ❓ Get Help\" class=\"heading-anchor-icon fa fa-anchor\"\n                    href=\"#-get-help\">\u003c/a>\n            \u003c/h2>\n            \u003cp>Review product documentation to learn more about features and how to configure your system to best\n                support your needs through myOneTrust, the official online community for OneTrust users, partners, and\n                experts.\u003c/p>\n            \u003cp>\u003ca target=\"_self\" href=\"https://my.onetrust.com/s/\">Go to the myOneTrust Community\u003c/a>\u003c/p>\n            \u003chr>\n            \u003cp>Discuss use cases, best practices, and more with other OneTrust users and the OneTrust product team. Our\n                support team is happy to answer any questions, concerns, or feedback from you.\u003c/p>\n            \u003cp>\u003ca target=\"_self\" href=\"https://my.onetrust.com/s/group/0F91Q000000hGyPSAU/developer-experience\">Go to\n                    the Developer Forum\u003c/a>\u003c/p>\n        \u003c/div>\n\u003c/main>"}],"mcp":{"state":"enabled"},"mdxishMigrationStatus":{"migratedFrom":"rdmd"},"metrics":{"monthlyLimit":0,"planLimit":20000000,"thumbsEnabled":true,"realtime":{"dashEnabled":false,"hubEnabled":false},"monthlyPurchaseLimit":0,"meteredBilling":{}},"modules":{"changelog":true,"custompages":false,"discuss":false,"docs":true,"examples":true,"graphql":false,"landing":false,"reference":true,"suggested_edits":false,"tutorials":true},"name":"OneTrust Developer Portal","nav_names":{"docs":"SDK Reference","reference":"API Reference","changelog":"","discuss":"","tutorials":"","recipes":""},"oauth_url":"","onboardingCompleted":{"documentation":true,"appearance":true,"jwt":true,"api":true,"logs":true,"domain":true,"metricsSDK":false,"aiReady":false},"owlbot":{"enabled":false,"isPaying":false,"customization":{"answerLength":"long","customTone":"","defaultAnswer":"","forbiddenWords":"","tone":"neutral","showAiDisclaimer":false,"advancedInstruction":"","advancedModeEnabled":false},"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""},"exampleQuestions":{"question1":"","question2":"","question3":""},"knowledge":"","modelList":[],"newExperience":false,"lastIndexed":"2025-12-01T06:21:54.022Z","knowledgeSegregation":false,"trial":{"isPaying":false},"v2":false,"llmOptions":{"model":{}}},"owner":{"id":"621fdfa10b019b00a39061a7","email":null,"name":null},"plan":"enterprise","planOverride":"","planTrial":"enterprise","readmeScore":{"components":{"newDesign":{"enabled":true,"points":25},"reference":{"enabled":true,"points":50},"tryItNow":{"enabled":true,"points":35},"syncingOAS":{"enabled":true,"points":10},"customLogin":{"enabled":true,"points":25},"metrics":{"enabled":false,"points":40},"recipes":{"enabled":true,"points":15},"pageVoting":{"enabled":true,"points":1},"suggestedEdits":{"enabled":true,"points":10},"support":{"enabled":false,"points":5},"htmlLanding":{"enabled":true,"points":5},"guides":{"enabled":true,"points":10},"changelog":{"enabled":true,"points":5},"glossary":{"enabled":true,"points":1},"variables":{"enabled":true,"points":1},"integrations":{"enabled":false,"points":2}},"totalScore":193},"reCaptchaSiteKey":"6Le7slwqAAAAAFLR-_Uv2FZE8TpMc5C-Dxv9NJ3A","reference":{"alwaysUseDefaults":true,"autoFillRequestExample":false,"defaultExpandResponseExample":true,"defaultExpandResponseSchema":true,"enableOAuthFlows":true,"fillOptionalObjectsOnExpand":true},"seo":{"overwrite_title_tag":true},"ssl":{"minTLS":"1.2"},"stable":{"_id":"620d23a542d78f05786a49c9","version":"1.0","version_clean":"1.0.0","codename":"Production","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["620d23a542d78f05786a49cb","620d23a542d78f05786a49cb","620d23a542d78f05786a49d1","620d2473d0e93a0147577007","620d24bdce6893002929091f","620d24f39b83cd06aa74818b","620d2523ffedb003e024ee7d","620d253c5a8ec60044cc283f","620d2f503f575f0085357683","620d2f58437c7300888cc8f1","620d2f5d1e70820053c8487e","620d3836756e210058c8f904","620d392a6e2aca0044c89703","620d394f133c23001469f94a","620d396849cf95003a296c15","620d39822fe6720123696ca9","620d39986d0c04003b89a588","620d3a056e2c5400134ae12e","620d3a11577d610014f942da","620d4f093501e50025da3212","620ead7670bf16002edfdeca","6213cf63166006002168275b","6213cfc142398701b6d559c7","6213d01e35c08e007af7154e","6217e4335f381d001a78bc95","6217e43d9d7459003dbe8442","6217e4457029dc0020f7a893","621d3b0fb07102002a0e46c2","621d3b880d8c0c00213c6aaf","621d3ba768e9e4005b6f28f4","621d3bb77f33770040d05b8b","621d3ca7feb971003d2e3dab","621d3d1a11141b009f241f66","621d3d7b5b549100464cf12b","621d3eed7df382001a7dc122","621e150f426ad900815c8491","621e495197363c00436e3247","621e508a7df382001a7ea87d","621e5253289e5a006ca29d2a","621e52a695667403d2657576","621e53c07826e100adbe4cd5","621e7683435d5500363e1e95","621e8c0e5b94ce0075e62d12","621e8d4ee2fa0e008d3ccb8b","621e8f3f96ccb200471ddedf","622101ba4bc000001a016fc1","622102c286d2e2004f070ed0","622102d6c3194a00401b1d03","622102e935622f01dffaa381","622102fe4bf43c00a1417ec0","62210322bd9404003e1a870d","6221033a312cfa003e1238af","622103f685254100359a8248","6221040a86f1860190999f3b","6221041698a26c0047d21499","6221042e02a8d1079728a975","62210458c3194a00401b2836","6221046a3ca945005896fcc8","62210481d7cabb02ac5c6b96","622104918be6c7003d11efb0","6221049cc50c02009fe0f2d9","622104b68be6c7003d11efc3","622104de6f7bf000421eea6f","62210511a99212005f069a8e","6221052135622f01dffab79c","6228bfe79fe43b003f2127b1","622a6c844a5d000091300995","622a6c9e2446cc004cc46cf3","622a6cb0020e410074215bc1","622a6cb9e73c66008dee09c7","622a6cbf8e69bf0086f1bf7d","622a6ccc25abea003782a791","622a6cd626b4b50044a9b5db","622a6cde93edf00092acfb57","622a6ce529777b007a3e3316","622a6ced29777b007a3e331a","622a6cf4ea012e004fdf7e3b","622a6cfc5a803d0014e6e66c","622a6d02a2dd3f003c2b4aee","622a6d1013a7100089b3609d","622f990bd149b3008faddff6","622f9f2ca14b00008866facd","622fa9fb7533ad031d14edae","622fadadf8045d03b4d06eb8","622fae8ab9d6dd001ac8536c","6242fcdd99025f003c836934","6242fce9f0b51d0013ef9567","624b3e735eb3110095b1ec88","624b3e97e621ce002e254018","624b408f80c997003962cb20","6269121b2948cb0043e0fd9b","62703cd945a84b005640a4b8","62863f09fcb84a028b91dc48","62863f556b5973009111f664","629a06719db2f70031f95f05","62b9c2bb676200008bee9bef","62b9c2e93ccfa0009d8c8881","62b9c3038c4c5d06d2e369fb","62b9c31b72164000486fd934","62dee51f9cc634007e756e2c","62dee540fd6d6b0094ad8e0f","6358300ad7c471001d6d36ed","6391cca17cc244002b43c1a4","63d9543d6b4b0d19521728e7","63d9a05a7f835300035f2b0f","6479029db81cb5005a012048","6479fa8f720835004fb08246","64b95979e8502b000ccaf692","64b95a52368bd1005e4fff54","64b96245c8d2760038e965ea","64b965d14dbc6500739de189","64b9a5f94ad6b7003cbe792d","64ba94b7385cf30074f2cbd2","64ba9773aa051f005ca2904c","64bab48a979377004a34a38e","64c021ade74ed2005220657d","64c028de30d55000431dbeeb","64c11e81f81ed315ad24eb5e","64c80f25e27d92004f1a92f6","65b1516e955afb00754bf2b8","65b16dbb846cfe004de567e3","65b9576864527400108c5f6b","65b9583b892ec00010a2de5d","65bbaff57adc2c00383c3eb7","660f0303ee20bf003603e699","662a626351f93800535e9b51","662a69b1de615f002bef2cab","6644d947d6d5c8005c6a25c0","66450590673d11005b075f09","665f23eeab28bc0024f024c3","66bb7b65404f700019a8c9b4","672aa7a509edfd001fd040bc","6762ed423e11680011660959","6785760141701b002a4933d7","67afa752428e61000ffcf09a","681a7964406a2b0020109f91","681a7b85bf5e2800320eba27","681a7ba44c52140067f7a67c","6877f036758df1087935898f","688ba11b0bb443d7cdaad7b3","688bb4c2ea0d0a4819368dcf","690266a365832928e04369a5","69036d7b6f266244b20e6755","69036f40ce5bb6d1ffd961ff"],"project":"620d23a442d78f05786a49c4","releaseDate":"2022-02-16T16:17:41.641Z","createdAt":"2022-02-16T16:17:41.641Z","__v":41,"pdfStatus":"complete","updatedAt":"2026-06-01T14:16:31.376Z","apiRegistries":[{"filename":"platform-access-management.json","uuid":"f9wagt2dmnf371hp"},{"filename":"consent-preferences-cross-device-consent.json","uuid":"17nirfrynmioyml91"},{"filename":"consent-preferences-consent-receipts.json","uuid":"djg2b1cmm5atb97"},{"filename":"data-use-governance-data-discovery.json","uuid":"f9y5bq4dmnf38yzh"},{"filename":"privacy-automation-data-subject-request-dsr-automation.json","uuid":"126cy96fmo00l53y"},{"filename":"platform-documents.json","uuid":"16f24a6mkbnajog"},{"filename":"privacy-automation-incident-management.json","uuid":"ed1q7xmpr23f44"},{"filename":"platform-integrations.json","uuid":"2ir2z8amkbnch3s"},{"filename":"consent-preferences-mobile-app-consent.json","uuid":"g12drq1cmha0gi7u"},{"filename":"consent-preferences-policy-notice-management.json","uuid":"dpouuafmkbnb6sv"},{"filename":"third-party-management-third-party-risk-management.json","uuid":"jnbn9omngaalfe"},{"filename":"tech-risk-compliance-it-risk-management.json","uuid":"1836s2zesmoiolqt7"},{"filename":"platform-user-provisioning.json","uuid":"2918ezf1cmnxsw93o"},{"filename":"tech-risk-compliance-training.json","uuid":"61jz5pmk4h6i1f"},{"filename":"platform-inventory.json","uuid":"5exah7omkbndrdk"},{"filename":"data-use-governance-data-catalog.json","uuid":"f9wagt1vmnf38yyy"},{"filename":"platform-object-manager.json","uuid":"d8d2i1dmo0txyoc"},{"filename":"data-use-governance-data-discovery-worker-node.json","uuid":"e9e7umls790bq"},{"filename":"tech-risk-compliance-audit-management.json","uuid":"1ddzbc29mls74i7m"},{"filename":"consent-preferences-cookie-domain-data.json","uuid":"m0wxemha0eww7"},{"filename":"esg-program-reporting-disclosures.json","uuid":"42ftpumls77pyw"},{"filename":"privacy-automation-assessment-automation.json","uuid":"35gzyjmowx7gao"},{"filename":"consent-preferences-consent-management-platform-cmp.json","uuid":"4hsgrw1ympr207cc"},{"filename":"platform-bulk-export.json","uuid":"5lumsmmm1qloo"},{"filename":"privacy-automation-data-mapping-automation.json","uuid":"1ddzbcjmls77q38"},{"filename":"tech-risk-compliance-issues-management.json","uuid":"dpouua7mkbndrde"},{"filename":"consent-preferences-consent-interfaces.json","uuid":"dpouua7mkbn7z36"},{"filename":"consent-preferences-universal-consent-preference-management-oas.json","uuid":"1pz7ampr8tonz"},{"filename":"platform-task-management.json","uuid":"4nl9g3nmon9lrsb"},{"filename":"tech-risk-compliance-compliance-automation.json","uuid":"b8hzre1gmls77q09"},{"filename":"consent-preferences-cookie-consent-swagger.json","uuid":"abzq02omhcdes8d"},{"filename":"privacy-automation-data-mapping-automation-swagger.json","uuid":"aafw8q5mmkn2zat4"},{"filename":"ai-governance.json","uuid":"3v3tt88mo0j5hoc"},{"filename":"tech-risk-compliance-enterprise-policy-management.json","uuid":"5ayeflmmm4cho3"},{"filename":"consent-preferences-cookie-consent.json","uuid":"duel7u20mo24pycm"}],"source":"readme"},"subdomain":"onetrust","subpath":"","topnav":{"left":[{"type":"url","text":"myOneTrust","url":"https://my.onetrust.com/s"},{"type":"url","text":"Developer Forum","url":"https://my.onetrust.com/s/group/0F91Q000000hGyPSAU/developer-experience"},{"type":"url","text":"Technology Partners","url":"https://developer.onetrust.com/onetrust/page/partners"}],"right":[{"type":"url","text":"Subscribe via RSS","url":"http://developer.onetrust.com/onetrust/changelog.rss"}],"bottom":[],"edited":true},"trial":{"trialDeadlineEnabled":false,"trialEndsAt":"2022-03-02T16:17:40.651Z"},"translate":{"provider":"transifex","show_widget":false,"key_public":"","org_name":"","project_name":"","languages":[]},"url":"https://developer.onetrust.com","versions":[{"_id":"620d23a542d78f05786a49c9","version":"1.0","version_clean":"1.0.0","codename":"Production","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["620d23a542d78f05786a49cb","620d23a542d78f05786a49cb","620d23a542d78f05786a49d1","620d2473d0e93a0147577007","620d24bdce6893002929091f","620d24f39b83cd06aa74818b","620d2523ffedb003e024ee7d","620d253c5a8ec60044cc283f","620d2f503f575f0085357683","620d2f58437c7300888cc8f1","620d2f5d1e70820053c8487e","620d3836756e210058c8f904","620d392a6e2aca0044c89703","620d394f133c23001469f94a","620d396849cf95003a296c15","620d39822fe6720123696ca9","620d39986d0c04003b89a588","620d3a056e2c5400134ae12e","620d3a11577d610014f942da","620d4f093501e50025da3212","620ead7670bf16002edfdeca","6213cf63166006002168275b","6213cfc142398701b6d559c7","6213d01e35c08e007af7154e","6217e4335f381d001a78bc95","6217e43d9d7459003dbe8442","6217e4457029dc0020f7a893","621d3b0fb07102002a0e46c2","621d3b880d8c0c00213c6aaf","621d3ba768e9e4005b6f28f4","621d3bb77f33770040d05b8b","621d3ca7feb971003d2e3dab","621d3d1a11141b009f241f66","621d3d7b5b549100464cf12b","621d3eed7df382001a7dc122","621e150f426ad900815c8491","621e495197363c00436e3247","621e508a7df382001a7ea87d","621e5253289e5a006ca29d2a","621e52a695667403d2657576","621e53c07826e100adbe4cd5","621e7683435d5500363e1e95","621e8c0e5b94ce0075e62d12","621e8d4ee2fa0e008d3ccb8b","621e8f3f96ccb200471ddedf","622101ba4bc000001a016fc1","622102c286d2e2004f070ed0","622102d6c3194a00401b1d03","622102e935622f01dffaa381","622102fe4bf43c00a1417ec0","62210322bd9404003e1a870d","6221033a312cfa003e1238af","622103f685254100359a8248","6221040a86f1860190999f3b","6221041698a26c0047d21499","6221042e02a8d1079728a975","62210458c3194a00401b2836","6221046a3ca945005896fcc8","62210481d7cabb02ac5c6b96","622104918be6c7003d11efb0","6221049cc50c02009fe0f2d9","622104b68be6c7003d11efc3","622104de6f7bf000421eea6f","62210511a99212005f069a8e","6221052135622f01dffab79c","6228bfe79fe43b003f2127b1","622a6c844a5d000091300995","622a6c9e2446cc004cc46cf3","622a6cb0020e410074215bc1","622a6cb9e73c66008dee09c7","622a6cbf8e69bf0086f1bf7d","622a6ccc25abea003782a791","622a6cd626b4b50044a9b5db","622a6cde93edf00092acfb57","622a6ce529777b007a3e3316","622a6ced29777b007a3e331a","622a6cf4ea012e004fdf7e3b","622a6cfc5a803d0014e6e66c","622a6d02a2dd3f003c2b4aee","622a6d1013a7100089b3609d","622f990bd149b3008faddff6","622f9f2ca14b00008866facd","622fa9fb7533ad031d14edae","622fadadf8045d03b4d06eb8","622fae8ab9d6dd001ac8536c","6242fcdd99025f003c836934","6242fce9f0b51d0013ef9567","624b3e735eb3110095b1ec88","624b3e97e621ce002e254018","624b408f80c997003962cb20","6269121b2948cb0043e0fd9b","62703cd945a84b005640a4b8","62863f09fcb84a028b91dc48","62863f556b5973009111f664","629a06719db2f70031f95f05","62b9c2bb676200008bee9bef","62b9c2e93ccfa0009d8c8881","62b9c3038c4c5d06d2e369fb","62b9c31b72164000486fd934","62dee51f9cc634007e756e2c","62dee540fd6d6b0094ad8e0f","6358300ad7c471001d6d36ed","6391cca17cc244002b43c1a4","63d9543d6b4b0d19521728e7","63d9a05a7f835300035f2b0f","6479029db81cb5005a012048","6479fa8f720835004fb08246","64b95979e8502b000ccaf692","64b95a52368bd1005e4fff54","64b96245c8d2760038e965ea","64b965d14dbc6500739de189","64b9a5f94ad6b7003cbe792d","64ba94b7385cf30074f2cbd2","64ba9773aa051f005ca2904c","64bab48a979377004a34a38e","64c021ade74ed2005220657d","64c028de30d55000431dbeeb","64c11e81f81ed315ad24eb5e","64c80f25e27d92004f1a92f6","65b1516e955afb00754bf2b8","65b16dbb846cfe004de567e3","65b9576864527400108c5f6b","65b9583b892ec00010a2de5d","65bbaff57adc2c00383c3eb7","660f0303ee20bf003603e699","662a626351f93800535e9b51","662a69b1de615f002bef2cab","6644d947d6d5c8005c6a25c0","66450590673d11005b075f09","665f23eeab28bc0024f024c3","66bb7b65404f700019a8c9b4","672aa7a509edfd001fd040bc","6762ed423e11680011660959","6785760141701b002a4933d7","67afa752428e61000ffcf09a","681a7964406a2b0020109f91","681a7b85bf5e2800320eba27","681a7ba44c52140067f7a67c","6877f036758df1087935898f","688ba11b0bb443d7cdaad7b3","688bb4c2ea0d0a4819368dcf","690266a365832928e04369a5","69036d7b6f266244b20e6755","69036f40ce5bb6d1ffd961ff"],"project":"620d23a442d78f05786a49c4","releaseDate":"2022-02-16T16:17:41.641Z","createdAt":"2022-02-16T16:17:41.641Z","__v":41,"pdfStatus":"complete","updatedAt":"2026-06-01T14:16:31.376Z","apiRegistries":[{"filename":"platform-access-management.json","uuid":"f9wagt2dmnf371hp"},{"filename":"consent-preferences-cross-device-consent.json","uuid":"17nirfrynmioyml91"},{"filename":"consent-preferences-consent-receipts.json","uuid":"djg2b1cmm5atb97"},{"filename":"data-use-governance-data-discovery.json","uuid":"f9y5bq4dmnf38yzh"},{"filename":"privacy-automation-data-subject-request-dsr-automation.json","uuid":"126cy96fmo00l53y"},{"filename":"platform-documents.json","uuid":"16f24a6mkbnajog"},{"filename":"privacy-automation-incident-management.json","uuid":"ed1q7xmpr23f44"},{"filename":"platform-integrations.json","uuid":"2ir2z8amkbnch3s"},{"filename":"consent-preferences-mobile-app-consent.json","uuid":"g12drq1cmha0gi7u"},{"filename":"consent-preferences-policy-notice-management.json","uuid":"dpouuafmkbnb6sv"},{"filename":"third-party-management-third-party-risk-management.json","uuid":"jnbn9omngaalfe"},{"filename":"tech-risk-compliance-it-risk-management.json","uuid":"1836s2zesmoiolqt7"},{"filename":"platform-user-provisioning.json","uuid":"2918ezf1cmnxsw93o"},{"filename":"tech-risk-compliance-training.json","uuid":"61jz5pmk4h6i1f"},{"filename":"platform-inventory.json","uuid":"5exah7omkbndrdk"},{"filename":"data-use-governance-data-catalog.json","uuid":"f9wagt1vmnf38yyy"},{"filename":"platform-object-manager.json","uuid":"d8d2i1dmo0txyoc"},{"filename":"data-use-governance-data-discovery-worker-node.json","uuid":"e9e7umls790bq"},{"filename":"tech-risk-compliance-audit-management.json","uuid":"1ddzbc29mls74i7m"},{"filename":"consent-preferences-cookie-domain-data.json","uuid":"m0wxemha0eww7"},{"filename":"esg-program-reporting-disclosures.json","uuid":"42ftpumls77pyw"},{"filename":"privacy-automation-assessment-automation.json","uuid":"35gzyjmowx7gao"},{"filename":"consent-preferences-consent-management-platform-cmp.json","uuid":"4hsgrw1ympr207cc"},{"filename":"platform-bulk-export.json","uuid":"5lumsmmm1qloo"},{"filename":"privacy-automation-data-mapping-automation.json","uuid":"1ddzbcjmls77q38"},{"filename":"tech-risk-compliance-issues-management.json","uuid":"dpouua7mkbndrde"},{"filename":"consent-preferences-consent-interfaces.json","uuid":"dpouua7mkbn7z36"},{"filename":"consent-preferences-universal-consent-preference-management-oas.json","uuid":"1pz7ampr8tonz"},{"filename":"platform-task-management.json","uuid":"4nl9g3nmon9lrsb"},{"filename":"tech-risk-compliance-compliance-automation.json","uuid":"b8hzre1gmls77q09"},{"filename":"consent-preferences-cookie-consent-swagger.json","uuid":"abzq02omhcdes8d"},{"filename":"privacy-automation-data-mapping-automation-swagger.json","uuid":"aafw8q5mmkn2zat4"},{"filename":"ai-governance.json","uuid":"3v3tt88mo0j5hoc"},{"filename":"tech-risk-compliance-enterprise-policy-management.json","uuid":"5ayeflmmm4cho3"},{"filename":"consent-preferences-cookie-consent.json","uuid":"duel7u20mo24pycm"}],"source":"readme"}],"variableDefaults":[{"name":"name","default":"Name","source":"","type":"","_id":"6944272f3991ecfaaf896a34"},{"name":"email","default":"your@email.here","source":"","type":"","_id":"6944272f3991ecfaaf896a35"},{"name":"apiKey","default":"{API Key}","source":"","type":"","_id":"6944272f3991ecfaaf896a36"},{"name":"customerbase","default":"https://YourAPIDomain.com","source":"","type":"","_id":"6944272f3991ecfaaf896a37"},{"name":"authorization","default":"Bearer {OAuth Access Token}","source":"","type":"","_id":"6944272f3991ecfaaf896a38"},{"name":"hostname","default":"hostname","source":"server","type":"","_id":"6944272f3991ecfaaf896a39"},{"name":"environment","default":"app.onetrust.com","source":"server","type":"","_id":"6944272f3991ecfaaf896a3a"},{"name":"oauth2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a3b"},{"name":"OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a3c"},{"name":"bearerAuth","scheme":"bearer","source":"security","type":"http","_id":"6944272f3991ecfaaf896a3d"},{"name":"DataUseGovernance-DataDiscovery_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a3e"},{"name":"TechRiskCompliance-ITRiskManagement_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a3f"},{"name":"TechRiskCompliance-RiskTemplate_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a40"},{"name":"TechRiskCompliance-Risk_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a41"},{"name":"DataUseGovernance-DataCatalog_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a42"},{"name":"DataUseGovernance-DataAssetManagement_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a43"},{"name":"DataUseGovernance-DataCatalogMetadataExchange_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a44"},{"name":"DataUseGovernance-DataDiscoveryCustomClassiferMana_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a45"},{"name":"PrivacyAutomation-AssessmentAutomation_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a46"},{"name":"Template_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a47"},{"name":"Platform-AccessManagement_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a48"},{"name":"AuditRecords_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a49"},{"name":"ConsentPreferences-UniversalConsentPreferenceManag_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a4a"},{"name":"ConsentAPI_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a4b"},{"name":"DSPreferneceCache_OAUTH2","source":"security","type":"oauth2","_id":"6944272f3991ecfaaf896a4c"}],"webhookEnabled":false},"custom_domain":"developer.onetrust.com","childrenProjects":[{"_id":"620d23a442d78f05786a49c4","ai":{"chat":{"knowledge":{"custom_knowledge":null,"use_project_knowledge":false},"models":[]},"discovery":{"enabled":true,"content_signal":{"ai_train":false,"search":false,"ai_input":false},"link_headers":true,"markdown_negotiation":true,"agent_hint_banner":true,"api_catalog":true,"agent_skills_index":true,"mcp_server_card":true,"webmcp":true,"oauth":{"type":"none","issuer_url":"","authorization_servers":[],"resource_identifier":"","scopes_supported":[]}}},"appearance":{"stylesheet_hub2":"","html_footer":"","javascript_hub2":""},"childrenProjects":[],"description":"The OneTrust Developer Portal allows you to leverage APIs and SDKs to seamlessly integrate external systems and streamline the flow of data with the OneTrust platform.","shouldGateDash":false,"isExternalSnippetActive":false,"flags":{"allow_hub2":false,"enterprise":false,"alwaysShowDocPublishStatus":false,"hub2":true,"migrationRun":false,"migrationSwaggerRun":false,"oauth":false,"swagger":false,"correctnewlines":false,"rdmdCompatibilityMode":false,"speedyRender":false,"allowXFrame":true,"newEditor":true,"newEditorDash":true,"oldMarkdown":false,"newMarkdownBetaProgram":true,"useReactApp":true,"disableAnonForum":false,"directGoogleToStableVersion":false,"translation":false,"staging":false,"newSearch":true,"graphql":false,"allowApiExplorerJsonEditor":false,"singleProjectEnterprise":false,"dashReact":false,"metricsV2":true,"enableRealtimeExperiences":false,"reviewWorkflow":true,"star":false,"allowDarkMode":false,"forceDarkMode":false,"useReactGLP":false,"disablePasswordlessLogin":false,"personalizedDocs":false,"myDevelopers":false,"superHub":true,"developerDashboard":false,"allowReusableOTPs":false,"dashHomeRefresh":false,"owlbotAi":false,"apiV2":false,"git":{"read":false,"write":false},"superHubBeta":false,"dashQuickstart":false,"disableAutoTranslate":false,"customBlocks":false,"devDashHub":false,"disableSAMLScoping":false,"allowUnsafeCustomHtmlSuggestionsFromNonAdmins":false,"apiAccessRevoked":false,"passwordlessLogin":"default","disableSignups":false,"billingRedesignEnabled":true,"developerPortal":false,"mdx":false,"superHubDevelopment":false,"annualBillingEnabled":true,"devDashBillingRedesignEnabled":false,"enableOidc":false,"customComponents":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":true,"superHubMigrationSelfServeFlow":false,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":true,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false,"superHubBranches":false,"requiresJQuery":true,"externalSdkSnippets":false,"migrationPreview":false,"superHubPreview":false,"superHubBranchReviews":false,"superHubMergePermissions":false,"dryRunMigration":false,"aiDocsAudit":false,"aiPageLinting":false,"githubCloudSync":false,"disableAiChat":false,"enableSuggestedEdits":false,"superHubBranchMergeRules":false,"superHubBranchReviewActions":false,"gitTranslations":false,"bidiSyncGitlabSelfServe":false,"gitlabCloudSync":false,"superHubPlanManagement":false,"bidiSyncBitbucketSelfServe":false,"mdxSanitizeComments":false,"mdxish":true,"disableSuperframe":false,"hideAiFeatures":false,"gittoUseNewIndexer":true,"mdxishEditor":true,"prefetch":false,"aiWriter":false,"superHubBranchReviewDashboard":false,"bidiSyncUseOdbAlternates":true,"mcpMetrics":false,"newDereferencer":false,"newIframeStructure":false,"streamingSsr":false,"googleAuthEnabled":false,"superHubNotifications":false,"superHubTypography":false,"newExplorerReducer":false,"gittoUseExperimentalMDXCache":false,"gittoUseConnectionPooling":false,"askAiOverride":"","superHubSlack":false,"customDomainAdminBypass":false,"aiDiscovery":false,"branchTaggedReviewers":false,"jwtReplacePermissions":false,"mcpOauth":false,"superHubBranchReviewSummaries":false,"superHubSlackNotifications":false,"aiTranslation":false,"superHubUiTesting":false},"fullBaseUrl":"https://onetrust.readme.io/","git":{"aiWriter":{"setup":{"error":{}}},"migration":{"createRepository":{"end":"2025-12-15T10:03:07.632Z","start":"2025-12-15T10:03:07.281Z","status":"successful"},"transformation":{"end":"2025-12-15T10:03:13.757Z","start":"2025-12-15T10:03:09.119Z","status":"successful"},"migratingPages":{"end":"2025-12-15T10:03:15.181Z","start":"2025-12-15T10:03:14.441Z","status":"successful"},"enableSuperhub":{"start":"2025-12-15T11:20:19.355Z","status":"successful","end":"2025-12-15T11:20:19.356Z"}},"sync":{"installationRequest":{},"connections":[],"providers":[]},"migrationType":"preview","renamedSlugs":[]},"is_active":true,"internal":"","mcp":{"state":"enabled"},"modules":{"changelog":true,"custompages":false,"discuss":false,"docs":true,"examples":true,"graphql":false,"landing":false,"reference":true,"suggested_edits":false,"tutorials":true},"name":"OneTrust Developer Portal","nav_names":{"docs":"SDK Reference","reference":"API Reference","changelog":"","discuss":"","tutorials":"","recipes":""},"owlbot":{"enabled":false,"isPaying":false,"customization":{"answerLength":"long","customTone":"","defaultAnswer":"","forbiddenWords":"","tone":"neutral","showAiDisclaimer":false,"advancedInstruction":"","advancedModeEnabled":false},"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""},"exampleQuestions":{"question1":"","question2":"","question3":""},"knowledge":"","modelList":[],"newExperience":false,"lastIndexed":"2025-12-01T06:21:54.022Z","knowledgeSegregation":false,"trial":{"isPaying":false},"v2":false,"llmOptions":{"model":{}}},"owner":{"email":null,"name":null},"readmeScore":0,"reference":{"alwaysUseDefaults":false,"autoFillRequestExample":false,"defaultExpandResponseExample":false,"defaultExpandResponseSchema":false,"enableOAuthFlows":false,"fillOptionalObjectsOnExpand":true},"ssl":{},"stable":"620d23a542d78f05786a49c9","subdomain":"onetrust","subpath":"","translate":{},"webhookEnabled":false}],"derivedPlan":"enterprise","description":"The OneTrust Developer Portal allows you to leverage APIs and SDKs to integrate external systems seamlessly and streamline the data flow with the OneTrust platform.","hstsIncludeSubdomains":false,"planSchedule":{"stripeScheduleId":null,"changeDate":null,"nextPlan":null},"planStatus":"","shouldGateDash":false,"isExternalSnippetActive":false,"error404":"","first_page":"landing","flags":{"allow_hub2":false,"enterprise":true,"alwaysShowDocPublishStatus":false,"hub2":true,"migrationRun":false,"migrationSwaggerRun":false,"oauth":false,"swagger":false,"correctnewlines":false,"rdmdCompatibilityMode":false,"speedyRender":false,"allowXFrame":true,"newEditor":true,"newEditorDash":true,"oldMarkdown":false,"newMarkdownBetaProgram":true,"useReactApp":true,"disableAnonForum":false,"directGoogleToStableVersion":false,"translation":false,"staging":false,"newSearch":true,"graphql":false,"allowApiExplorerJsonEditor":false,"singleProjectEnterprise":false,"dashReact":true,"metricsV2":true,"enableRealtimeExperiences":false,"reviewWorkflow":true,"star":false,"allowDarkMode":false,"forceDarkMode":false,"useReactGLP":true,"disablePasswordlessLogin":false,"myDevelopers":false,"superHub":true,"allowReusableOTPs":false,"developerDashboard":false,"owlbotAi":false,"apiV2":false,"customBlocks":false,"devDashHub":false,"disableAutoTranslate":false,"disableSAMLScoping":true,"git":{"read":false,"write":false},"superHubBeta":false,"allowUnsafeCustomHtmlSuggestionsFromNonAdmins":false,"apiAccessRevoked":false,"passwordlessLogin":"default","disableSignups":false,"billingRedesignEnabled":true,"developerPortal":false,"mdx":false,"superHubDevelopment":false,"annualBillingEnabled":true,"devDashBillingRedesignEnabled":false,"enableOidc":false,"customComponents":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":true,"superHubMigrationSelfServeFlow":false,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":true,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false,"superHubBranches":false,"requiresJQuery":true,"externalSdkSnippets":false,"migrationPreview":false,"superHubBranchReviews":false,"superHubMergePermissions":false,"superHubPreview":false,"aiDocsAudit":false,"aiPageLinting":false,"disableAiChat":false,"gitTranslations":true,"githubCloudSync":false,"superHubBranchMergeRules":true,"superHubBranchReviewActions":false,"bidiSyncGitlabSelfServe":false,"gitlabCloudSync":false,"bidiSyncBitbucketSelfServe":false,"mdxSanitizeComments":false,"mdxish":true,"superHubPlanManagement":false,"disableSuperframe":false,"hideAiFeatures":false,"gittoUseNewIndexer":true,"mdxishEditor":true,"aiWriter":false,"bidiSyncUseOdbAlternates":true,"mcpMetrics":false,"newDereferencer":false,"prefetch":false,"superHubBranchReviewDashboard":true,"googleAuthEnabled":false,"newIframeStructure":false,"streamingSsr":false,"superHubNotifications":false,"superHubTypography":false,"askAiOverride":"","aiDiscovery":false,"aiTranslation":false,"customDomainAdminBypass":false,"gittoUseConnectionPooling":false,"gittoUseExperimentalMDXCache":false,"jwtReplacePermissions":false,"mcpOauth":false,"newExplorerReducer":false,"branchTaggedReviewers":false,"superHubBranchReviewSummaries":false,"superHubSlack":false,"superHubSlackNotifications":false,"superHubUiTesting":false},"fullBaseUrl":"https://developer.onetrust.com/","git":{"aiWriter":{"setup":{"error":{}}},"migration":{"createRepository":{"end":"2025-12-15T10:03:07.350Z","start":"2025-12-15T10:03:06.951Z","status":"successful"},"transformation":{"end":"2025-12-15T10:03:08.043Z","start":"2025-12-15T10:03:07.563Z","status":"successful"},"migratingPages":{"end":"2025-12-15T10:03:08.441Z","start":"2025-12-15T10:03:08.147Z","status":"successful"},"enableSuperhub":{"start":"2025-12-15T10:03:10.828Z","status":"successful","end":"2025-12-15T10:03:10.829Z"}},"sync":{"installationRequest":{},"connections":[],"providers":[]},"migrationType":"preview","renamedSlugs":[]},"glossaryTerms":[],"graphqlSchema":"","gracePeriod":{"enabled":false,"endsAt":null},"healthCheck":{"provider":"","settings":{}},"i18n":{"defaultLanguage":"en","languages":["en"],"state":"disabled"},"intercom":"","is_active":true,"internal":"","jwtExpirationTime":240,"landing_bottom":[],"mcp":{"state":"disabled"},"mdxishMigrationStatus":{"migratedFrom":"rdmd"},"metrics":{"monthlyLimit":0,"planLimit":20000000,"thumbsEnabled":true,"realtime":{"dashEnabled":false,"hubEnabled":false},"monthlyPurchaseLimit":0,"meteredBilling":{}},"modules":{"changelog":true,"custompages":false,"discuss":true,"docs":true,"examples":true,"graphql":false,"landing":false,"reference":true,"suggested_edits":false,"tutorials":true},"name":"OneTrust Developer Portal","nav_names":{"docs":"","reference":"","changelog":"","discuss":"","tutorials":"","recipes":""},"oauth_url":"","onboardingCompleted":{"documentation":false,"appearance":false,"jwt":false,"api":false,"logs":false,"domain":false,"metricsSDK":false,"aiReady":false},"owlbot":{"enabled":false,"isPaying":false,"customization":{"answerLength":"long","customTone":"","defaultAnswer":"","forbiddenWords":"","tone":"neutral","showAiDisclaimer":false,"advancedInstruction":"","advancedModeEnabled":false},"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""},"exampleQuestions":{"question1":"","question2":"","question3":""},"knowledge":"","modelList":[],"newExperience":false,"knowledgeSegregation":false,"v2":false,"trial":{"isPaying":false},"llmOptions":{"model":{}}},"owner":{"id":"621fdfa10b019b00a39061a7","email":null,"name":null},"plan":"enterprise","planOverride":"enterprise","planTrial":"enterprise","readmeScore":{"components":{"newDesign":{"enabled":true,"points":25},"reference":{"enabled":true,"points":50},"tryItNow":{"enabled":true,"points":35},"syncingOAS":{"enabled":true,"points":10},"customLogin":{"enabled":true,"points":25},"metrics":{"enabled":false,"points":40},"recipes":{"enabled":true,"points":15},"pageVoting":{"enabled":true,"points":1},"suggestedEdits":{"enabled":true,"points":10},"support":{"enabled":false,"points":5},"htmlLanding":{"enabled":true,"points":5},"guides":{"enabled":true,"points":10},"changelog":{"enabled":true,"points":5},"glossary":{"enabled":true,"points":1},"variables":{"enabled":true,"points":1},"integrations":{"enabled":false,"points":2}},"totalScore":193},"reCaptchaSiteKey":"","reference":{"alwaysUseDefaults":true,"autoFillRequestExample":false,"defaultExpandResponseExample":false,"defaultExpandResponseSchema":false,"enableOAuthFlows":false,"fillOptionalObjectsOnExpand":true},"seo":{"overwrite_title_tag":false},"ssl":{"minTLS":"1.2"},"stable":{"_id":"62150160021c1f010da3d62a","version":"1.0.0","version_clean":"1.0.0","codename":"","is_stable":false,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":[],"releaseDate":"2022-02-22T15:29:36.412Z","createdAt":"2022-02-22T15:29:36.412Z","project":"62150160021c1f010da3d62b","__v":1,"apiRegistries":[],"pdfStatus":"","source":"readme"},"subdomain":"onetrust-group","subpath":"","topnav":{"left":[],"right":[],"bottom":[],"edited":true},"trial":{"trialDeadlineEnabled":true,"trialEndsAt":"2022-03-08T15:29:36.414Z"},"translate":{"provider":"transifex","show_widget":false,"key_public":"","org_name":"","project_name":"","languages":[]},"url":"","versions":[{"_id":"62150160021c1f010da3d62a","version":"1.0.0","version_clean":"1.0.0","codename":"","is_stable":false,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":[],"releaseDate":"2022-02-22T15:29:36.412Z","createdAt":"2022-02-22T15:29:36.412Z","project":"62150160021c1f010da3d62b","__v":1,"apiRegistries":[],"pdfStatus":"","source":"readme"}],"variableDefaults":[],"webhookEnabled":true},"isHubEditable":true},"projectStore":{"data":{"allow_crawlers":"disabled","canonical_url":null,"default_version":{"name":"1.0"},"description":"The OneTrust Developer Portal allows you to leverage APIs and SDKs to seamlessly integrate external systems and streamline the flow of data with the OneTrust platform.","git":{"repository_name":null,"connection":{"repository":null,"organization":null,"status":"none"},"remediation_status":null,"remediated_at":null,"remediation_initiated_by":null,"remediation_dry_run":null,"remediation_job_id":null},"glossary":[{"term":"client_id","definition":"Unique identifier for the OneTrust client credential.","_id":"6944272f3991ecfaaf896a2e"},{"term":"grant_type","definition":"decides the type of access. OneTrust supports both password and client_credentials grant type","_id":"6944272f3991ecfaaf896a2f"},{"term":"client_secret","definition":"a one-time hexadecimal string that is issued and displayed at the time of client credential creation.","_id":"6944272f3991ecfaaf896a30"},{"term":"environment","definition":"The applicable Environment where each OneTrust tenant is hosted can be identified based on the URL, for example, https://app.onetrust.com would be the App Environment.","_id":"6944272f3991ecfaaf896a31"},{"term":"environments","definition":"The applicable Environment where each OneTrust tenant is hosted can be identified based on the URL, for example, https://app.onetrust.com would be the App Environment.","_id":"6944272f3991ecfaaf896a32"},{"term":"account","definition":"OneTrust accounts are hosted in a OneTrust Environment. Accounts are normally provisioned to customers or partners and many users share access to the same account. It is possible for a single user to have access to multiple accounts in an environment. You can switch between accounts by clicking on the User icon in the OneTrust Application and selecting Switch Tenants.","_id":"6944272f3991ecfaaf896a33"}],"homepage_url":"https://developer.onetrust.com","created_at":null,"updated_at":null,"id":"620d23a442d78f05786a49c4","name":"OneTrust Developer Portal","parent":null,"redirects":[],"sitemap":"disabled","llms_txt":"disabled","subdomain":"onetrust","suggested_edits":"disabled","notification_settings":{"project_topic_key":null},"uri":"/projects/me","variable_defaults":[{"name":"name","default":"Name","source":"","type":"","id":"6944272f3991ecfaaf896a34"},{"name":"email","default":"your@email.here","source":"","type":"","id":"6944272f3991ecfaaf896a35"},{"name":"apiKey","default":"{API Key}","source":"","type":"","id":"6944272f3991ecfaaf896a36"},{"name":"customerbase","default":"https://YourAPIDomain.com","source":"","type":"","id":"6944272f3991ecfaaf896a37"},{"name":"authorization","default":"Bearer {OAuth Access Token}","source":"","type":"","id":"6944272f3991ecfaaf896a38"},{"name":"hostname","default":"hostname","source":"server","type":"","id":"6944272f3991ecfaaf896a39"},{"name":"environment","default":"app.onetrust.com","source":"server","type":"","id":"6944272f3991ecfaaf896a3a"},{"name":"oauth2","source":"security","type":"oauth2","id":"6944272f3991ecfaaf896a3b"},{"name":"OAUTH2","source":"security","type":"oauth2","id":"6944272f3991ecfaaf896a3c"},{"name":"bearerAuth","scheme":"bearer","source":"security","type":"http","id":"6944272f3991ecfaaf896a3d"},{"name":"DataUseGovernance-DataDiscovery_OAUTH2","source":"security","type":"oauth2","id":"6944272f3991ecfaaf896a3e"},{"name":"TechRiskCompliance-ITRiskManagement_OAUTH2","source":"security","type":"oauth2","id":"6944272f3991ecfaaf896a3f"},{"name":"TechRiskCompliance-RiskTemplate_OAUTH2","source":"security","type":"oauth2","id":"6944272f3991ecfaaf896a40"},{"name":"TechRiskCompliance-Risk_OAUTH2","source":"security","type":"oauth2","id":"6944272f3991ecfaaf896a41"},{"name":"DataUseGovernance-DataCatalog_OAUTH2","source":"security","type":"oauth2","id":"6944272f3991ecfaaf896a42"},{"name":"DataUseGovernance-DataAssetManagement_OAUTH2","source":"security","type":"oauth2","id":"6944272f3991ecfaaf896a43"},{"name":"DataUseGovernance-DataCatalogMetadataExchange_OAUTH2","source":"security","type":"oauth2","id":"6944272f3991ecfaaf896a44"},{"name":"DataUseGovernance-DataDiscoveryCustomClassiferMana_OAUTH2","source":"security","type":"oauth2","id":"6944272f3991ecfaaf896a45"},{"name":"PrivacyAutomation-AssessmentAutomation_OAUTH2","source":"security","type":"oauth2","id":"6944272f3991ecfaaf896a46"},{"name":"Template_OAUTH2","source":"security","type":"oauth2","id":"6944272f3991ecfaaf896a47"},{"name":"Platform-AccessManagement_OAUTH2","source":"security","type":"oauth2","id":"6944272f3991ecfaaf896a48"},{"name":"AuditRecords_OAUTH2","source":"security","type":"oauth2","id":"6944272f3991ecfaaf896a49"},{"name":"ConsentPreferences-UniversalConsentPreferenceManag_OAUTH2","source":"security","type":"oauth2","id":"6944272f3991ecfaaf896a4a"},{"name":"ConsentAPI_OAUTH2","source":"security","type":"oauth2","id":"6944272f3991ecfaaf896a4b"},{"name":"DSPreferneceCache_OAUTH2","source":"security","type":"oauth2","id":"6944272f3991ecfaaf896a4c"}],"webhooks":[],"api_designer":{"allow_editing":"enabled"},"custom_login":{"jwt_expiration_time":0,"login_url":null,"logout_url":null},"features":{"mdx":"disabled"},"onboarding_completed":{"api":true,"appearance":true,"documentation":true,"domain":true,"jwt":true,"logs":true,"metricsSDK":false,"ai_ready":false},"pages":{"not_found":"/branches/stable/custom_pages/404","default_visibility":"public"},"owner":{"id":null,"email":null,"name":null},"privacy":{"openapi":"admin","password":null,"view":"public"},"refactored":{"status":"enabled","migrated":"successful"},"seo":{"overwrite_title_tag":"enabled"},"metrics":{"monthly_purchase_limit":0,"monthly_limit":0},"feature_rules":{"merge":{"requirements":[],"allow_override":[]}},"god_mode":{"is_active":null,"flags":{},"admin_limit_override":null,"notes":null,"children_limit":null,"owlbot":{"enabled":null,"new_experience":null,"v2":null},"salesforce":{"account_id":null},"enterprise_notes":{"account_name":null,"owner_csm":null,"owner_sales":null,"status":null,"superhub_migration_eligibility":null},"mdxish_migration_status":{"migrated_at":null,"migrated_from":null,"reverted_at":null,"source":null}},"mcp":{"state":"enabled","custom_tools":[],"disabled_routes":[],"disabled_tools":[],"has_password":false,"oauth_pages":{"auth_url":null,"success_url":null,"error_url":null},"oauth_credentials":{},"privacy":{"password":null}},"plan":{"type":"enterprise","override":null,"stripe_subscription_id":null,"grace_period":{"enabled":false,"end_date":null},"trial":{"active":false,"enabled":null,"expired":false,"end_date":"2022-03-02T16:17:40.651Z"}},"reference":{"api_sdk_snippets":"enabled","experimental_performance_mode":"disabled","defaults":"always_use","fill_optional_objects_on_expand":"enabled","json_editor":"enabled","method_badge_style":"classic","oauth_flows":"enabled","oneof_layout":"dropdown","request_history":"disabled","request_examples":"collapsed","response_examples":"expanded","response_schemas":"expanded","show_method_in_sidebar":"enabled","sdk_snippets":{"external":"disabled"}},"ai":{"discovery":{"enabled":true,"content_signal":{"ai_train":false,"search":false,"ai_input":false},"link_headers":true,"markdown_negotiation":true,"agent_hint_banner":true,"api_catalog":true,"agent_skills_index":true,"mcp_server_card":true,"webmcp":true,"oauth":{"type":"none","issuer_url":null,"authorization_servers":[],"resource_identifier":null,"scopes_supported":[]}},"chat":{"models":[],"knowledge":{"custom_knowledge":null,"use_project_knowledge":false}},"owlbot":{"enabled":false,"new_experience":false,"v2":false,"is_paying":false,"trial":{"is_paying":false}}},"health_check":{"provider":"manual","settings":{"manual":{"status":"up","url":"https://onetruststatus-1564678085559.site24x7signals.com"},"statuspage":{"id":null}}},"integrations":{"aws":{"readme_webhook_login":{"region":null,"external_id":null,"role_arn":null,"usage_plan_id":null}},"bing":{"verify":null},"google":{"analytics":null,"site_verification":null},"heap":{"id":null},"koala":{"key":null},"localize":{"key":null},"postman":{"key":null,"client_id":null,"client_secret":null,"is_connected":false},"recaptcha":{"site_key":"6Le7slwqAAAAAFLR-_Uv2FZE8TpMc5C-Dxv9NJ3A","secret_key":null},"segment":{"key":null,"domain":null},"speakeasy":{"key":null,"spec_url":null},"stainless":{"key":null,"name":null},"typekit":{"key":null},"zendesk":{"subdomain":null},"intercom":{"app_id":null,"secure_mode":{"key":null}}},"permissions":{"appearance":{"private_label":"enabled","custom_code":{"css":"enabled","html":"enabled","js":"enabled"}},"branches":{"merge":{"admin":true,"editor":false},"approve":{"admin":true,"editor":false}}},"appearance":{"brand":{"primary_color":"#000000","link_color":"#2C6145","link_color_dark":null,"theme":"system"},"changelog":{"layout":"collapsed","show_author":false,"show_exact_date":true},"layout":{"full_width":"enabled","style":"classic"},"markdown":{"callouts":{"icon_font":"emojis"}},"table_of_contents":"enabled","whats_next_label":null,"landing_page":{"sections":[{"type":"html","alignment":"left","title":null,"text":null,"html":"\u003cmain class=\"LandingWrap16kRMSdr5J8g rm-LandingPage\" id=\"content\">\n    \u003cdiv class=\"LandingBlock3PM-HyBxby3X LandingBlock_align=leftG1r7ROyW_AGB\">\n        \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n            \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"what-is-onetrust\">\u003c/div>\n                \u003cdiv class=\"heading-text\">\n                    \u003cdiv id=\"section-what-is-one-trust\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>What is\n                    OneTrust?\n                \u003c/div>\u003ca aria-label=\"Skip link to What is OneTrust?\" class=\"heading-anchor-icon fa fa-anchor\"\n                    href=\"#what-is-onetrust\">\u003c/a>\n            \u003c/h2>\n            \u003cp>OneTrust is the #1 most widely used platform to operationalize privacy, security &amp; governance. More\n                than 12,000 customers use OneTrust to build integrated programs that comply with the CCPA, GDPR, LGPD,\n                PDPA, ISO27001, and hundreds of the world’s privacy and security laws.\u003c/p>\n        \u003c/div>\n    \u003c/div>\n    \u003cdiv class=\"LandingBlock3PM-HyBxby3X LandingBlock_align=leftG1r7ROyW_AGB\">\n        \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n            \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"who-is-onetrust-for\">\u003c/div>\n                \u003cdiv class=\"heading-text\">\n                    \u003cdiv id=\"section-who-is-one-trust-for\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>Who is\n                    OneTrust for?\n                \u003c/div>\u003ca aria-label=\"Skip link to Who is OneTrust for?\" class=\"heading-anchor-icon fa fa-anchor\"\n                    href=\"#who-is-onetrust-for\">\u003c/a>\n            \u003c/h2>\n            \u003cp>OneTrust offers Privacy Management, Third-Party Risk, GRC, Data Governance, Preference &amp; Consent\n                Management, and Ethics &amp; Compliance solutions built for those focused on using technology to be a\n                more trusted organization.\u003c/p>\n            \u003chr>\n        \u003c/div>\n    \u003c/div>\n    \u003cdiv class=\"LandingBlock3PM-HyBxby3X LandingBlock_align=leftG1r7ROyW_AGB\">\n        \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n            \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"-getting-started\">\u003c/div>\n                \u003cdiv class=\"heading-text\">\n                    \u003cdiv id=\"section-💡-getting-started\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>💡 Getting\n                    Started\n                \u003c/div>\u003ca aria-label=\"Skip link to 💡 Getting Started\" class=\"heading-anchor-icon fa fa-anchor\"\n                    href=\"#-getting-started\">\u003c/a>\n            \u003c/h2>\n            \u003cp>The OneTrust Developer Portal offers a variety of resources to help you get started with integrating\n                seamlessly into the OneTrust platform. With the OneTrust Developer Portal, you can:\u003c/p>\n        \u003c/div>\n    \u003c/div>\n    \u003cdiv class=\"LandingBlock3PM-HyBxby3X LandingBlock-Three2lm6yBrv1MlV LandingBlock_align=leftG1r7ROyW_AGB\">\n        \u003cdiv class=\"LandingBlock3PM-HyBxby3X\">\n            \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n                \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                    \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"-api-reference\">\u003c/div>\n                    \u003cdiv class=\"heading-text\">\n                        \u003cdiv id=\"section-💻-api-reference\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>\u003ci class=\"icon-references\">\u003c/i> API\n                        Reference\n                    \u003c/div>\u003ca aria-label=\"Skip link to 💻 API Reference\" class=\"heading-anchor-icon fa fa-anchor\"\n                        href=\"#-api-reference\">\u003c/a>\n                \u003c/h2>\n                \u003cp>Explore APIs that you can use to integrate seamlessly into the OneTrust platform.\u003c/p>\n                \u003cp>\u003ca target=\"_self\" href=\"/onetrust/reference\">View More &gt;\u003c/a>\u003c/p>\n            \u003c/div>\n        \u003c/div>\n        \u003cdiv class=\"LandingBlock3PM-HyBxby3X\">\n            \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n                \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                    \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"-sdk-reference\">\u003c/div>\n                    \u003cdiv class=\"heading-text\">\n                        \u003cdiv id=\"section-📱-sdk-reference\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>\u003ci class=\"icon-guides\">\u003c/i> SDK\n                        Reference\n                    \u003c/div>\u003ca aria-label=\"Skip link to 📱 SDK Reference\" class=\"heading-anchor-icon fa fa-anchor\"\n                        href=\"#-sdk-reference\">\u003c/a>\n                \u003c/h2>\n                \u003cp>Discover what you can do with the SDKs and review resources to help you get started.\u003c/p>\n                \u003cp>\u003ca target=\"_self\" href=\"/onetrust/docs\">View More &gt;\u003c/a>\u003c/p>\n            \u003c/div>\n        \u003c/div>\n        \u003cdiv class=\"LandingBlock3PM-HyBxby3X\">\n            \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n                \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                    \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"-recipes\">\u003c/div>\n                    \u003cdiv class=\"heading-text\">\n                        \u003cdiv id=\"section-👨&zwj;🍳-recipes\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>\n                        \u003ci class=\"icon-recipes\">\u003c/i> Recipes\n                    \u003c/div>\u003ca aria-label=\"Skip link to 👨&zwj;🍳 Recipes\" class=\"heading-anchor-icon fa fa-anchor\"\n                        href=\"#-recipes\">\u003c/a>\n                \u003c/h2>\n                \u003cp>Discover code examples accompanied by detailed instructions to quickly initiate your understanding of\n                    the APIs.\u003c/p>\n                \u003cp>\u003ca target=\"_self\" href=\"/onetrust/recipes\">View More &gt;\u003c/a>\u003c/p>\n            \u003c/div>\n        \u003c/div>\n    \u003c/div>\n    \u003cdiv class=\"LandingBlock3PM-HyBxby3X LandingBlock_align=leftG1r7ROyW_AGB\">\n        \u003cdiv class=\"markdown-body\" data-testid=\"RDMD\">\n            \u003ch2 class=\"heading heading-2 header-scroll\" align=\"\">\n                \u003cdiv class=\"heading-anchor anchor waypoint\" id=\"-get-help\">\u003c/div>\n                \u003cdiv class=\"heading-text\">\n                    \u003cdiv id=\"section-❓-get-help\" class=\"heading-anchor_backwardsCompatibility\">\u003c/div>❓ Get Help\n                \u003c/div>\u003ca aria-label=\"Skip link to ❓ Get Help\" class=\"heading-anchor-icon fa fa-anchor\"\n                    href=\"#-get-help\">\u003c/a>\n            \u003c/h2>\n            \u003cp>Review product documentation to learn more about features and how to configure your system to best\n                support your needs through myOneTrust, the official online community for OneTrust users, partners, and\n                experts.\u003c/p>\n            \u003cp>\u003ca target=\"_self\" href=\"https://my.onetrust.com/s/\">Go to the myOneTrust Community\u003c/a>\u003c/p>\n            \u003chr>\n            \u003cp>Discuss use cases, best practices, and more with other OneTrust users and the OneTrust product team. Our\n                support team is happy to answer any questions, concerns, or feedback from you.\u003c/p>\n            \u003cp>\u003ca target=\"_self\" href=\"https://my.onetrust.com/s/group/0F91Q000000hGyPSAU/developer-experience\">Go to\n                    the Developer Forum\u003c/a>\u003c/p>\n        \u003c/div>\n\u003c/main>","page_type":null,"side":null,"media_type":null,"media_html":null,"media_image":null,"media_code":null,"group0":null,"group1":null,"group2":null}],"promo":{"title":"Welcome to the OneTrust Developer Portal","text":"The OneTrust Developer Portal allows you to leverage APIs and SDKs to seamlessly integrate external systems and streamline the flow of data with the OneTrust platform.","content_type":"search","html":null,"button_primary":"get-started","button_secondary":"reference"}},"footer":{"readme_logo":"hide"},"logo":{"size":"default","dark_mode":{"uri":null,"url":"https://files.readme.io/0df333c-small-OT-logo-white-transparent-1200px.png","name":"OT-logo-white-transparent-1200px.png","width":453,"height":80,"color":"#ffffff","links":{"original_url":"https://files.readme.io/697279d-OT-logo-white-transparent-1200px.png"}},"main":{"uri":"/images/69c14d85923a290549918164","url":"https://files.readme.io/f83b3a1d97917287a00a51d521682cab46c9329551a2a7413cf6dba86bcf2708-ot-logo-lockup-white.svg","name":"f83b3a1d97917287a00a51d521682cab46c9329551a2a7413cf6dba86bcf2708-ot-logo-lockup-white.svg","width":null,"height":null,"color":"#000000","links":{"original_url":null}},"favicon":{"uri":null,"url":"https://files.readme.io/40ffb5b-OT-favicon.ico","name":"OT-favicon.ico","width":32,"height":32,"color":"#000000","links":{"original_url":null}}},"typography":{"heading_font":null,"body_font":null,"code_font":null,"spacing":null,"custom_heading":{"url":null,"filename":null,"format":null},"custom_code":{"url":null,"filename":null,"format":null},"custom_body":{"regular":{"url":null,"filename":null,"format":null},"medium":{"url":null,"filename":null,"format":null},"semibold":{"url":null,"filename":null,"format":null}}},"ai":{"dropdown":"enabled","options":{"ask_ai":"disabled","chatgpt":"enabled","claude":"enabled","clipboard":"enabled","view_as_markdown":"enabled","mcp":{"command":"enabled","config":"enabled","cursor":"enabled","vscode":"enabled"}}},"custom_code":{"css":"/* Changing Font to Open Sans */\n\n.App {\n  --font-family: 'Open Sans', sans-serif;\n}\n\n/* Hide the Deprecated Tag in API Reference */\nspan.APIMethod_deprecated {\n    display: none !important;\n}\n.reference-redesign .Sidebar-link_deprecated-icon1TLWr7KfHfCp {\n    left: 2px!important;\n    position: absolute;\n}\n\n/* Fix for Dark Mode Code Syntax */\n[data-color-mode=dark] .App .rm-SuggestedEdits, \n[data-color-mode=dark] .App .rm-SuggestionDiff, \n[data-color-mode=dark] .App .rm-Guides, \n[data-color-mode=dark] .App .rm-Recipes, \n[data-color-mode=dark] .App .rm-Recipes-modal, \n[data-color-mode=dark] .App .rm-ReferenceMain, \n[data-color-mode=dark] .App .rm-Changelog, \n[data-color-mode=dark] .App .rm-Discuss, \n[data-color-mode=dark] .App .rm-CustomPage {\n    --md-code-background: var(--gray20)!important;\n    --md-code-tabs: var(--gray15)!important;\n\n}\n\n\n/* Apply styles to code elements within a \u003cpre> tag when data-color-mode is dark */\n[data-color-mode=\"dark\"] .markdown-body pre code.rdmd-code.theme-light {\n    background: var(--gray20)!important; /* Example style */\n}\n\n/* Apply styles to code elements within a \u003cpre> tag based on prefers-color-scheme: dark and data-color-mode=\"system\" */\n@media (prefers-color-scheme: dark) {\n  [data-color-mode=\"system\"] .markdown-body pre code.rdmd-code.theme-light {\n    background: var(--gray20)!important; /* Example style */\n  }\n}\n\n@media (prefers-color-scheme: dark) {\n[data-color-mode=\"system\"] .App .rm-SuggestedEdits, \n  [data-color-mode=\"system\"] .App .rm-SuggestionDiff, \n  [data-color-mode=\"system\"] .App .rm-Guides, \n  [data-color-mode=\"system\"] .App .rm-Recipes, \n  [data-color-mode=\"system\"] .App .rm-Recipes-modal, \n  [data-color-mode=\"system\"] .App .rm-ReferenceMain, \n  [data-color-mode=\"system\"] .App .rm-Changelog, \n  [data-color-mode=\"system\"] .App .rm-Discuss, \n  [data-color-mode=\"system\"] .App .rm-CustomPage {\n    --md-code-background: var(--gray20)!important;\n    --md-code-tabs: var(--gray15)!important;\n\n  }\n}\n\n@media (prefers-color-scheme: dark) {\n  [data-color-mode=\"system\"] .markdown-body code {\n    background-color: #242e34!important;\n  }\n}\n\n/*API Reference Pages - move all custom markdown above body params, etc. */\n.rm-ReferenceMain .rm-Article {\n    display: flex;\n    flex-direction: column-reverse;\n    justify-content: flex-end;\n}\n\nheader[class*=\"headline-container\"] { /*updated selector by ReadMe 6/19/2024*/\n order:3;\n}\n\n.rm-ReferenceMain .markdown-body {\n  margin-top: 10px;\n  order: 2;\n}\n.Reference-section{\n order:1;\n}\n\nheader.APISectionHeader3LN_-QIR0m7x.rm-APISectionHeader{\n    order: -1;\n}\n\n.APIResponseSchemaPicker2ehjUsNOSwdc.rm-APIResponseSchemaPicker{\n    order: -2;\n}\n\n[class^=\"Footer-desktop\"] {\n  order:-3;\n}\n\n\n/* Theme for API Info Block - Page */ \n\n.callout[theme=🗒] {\n  --emoji: unset;\n  --icon: \"\\f249\"; /* copied from FontAwesome */\n  --icon-color: #50af51;\n  --border: var(--icon-color) !important;\n}\n\n.callout[theme=🗒️] {\n  --emoji: unset;\n  --icon: \"\\f249\"; /* copied from FontAwesome */\n  --icon-color: #50af51;\n  --border: var(--icon-color) !important;\n}\n\n\n/* Overflowing recipe response code examples fix */\n[class^=\"TutorialStep-Body\"] pre>code.rdmd-code.lang-json.theme-light {\n    max-height: 43vh;\n}\n\n\n\n/* Changes HR element to a white line */\nhr {\n    border: solid rgba(255, 255, 255) !important;\n    border-width: 1px 0 0 !important;\n}\n\n/* Try It Code Snippet to Show Both Scroll Bars */\n.rm-PlaygroundRequest .CodeSnippet {\n    overflow: auto !important;\n}\n\n/* Dark Mode Configs \n.darkmode--activated .darkmode-background {\n background-color: #000;\n}\n.darkmode--activated p, .darkmode--activated li , .darkmode--activated h1  {\n color: #fff;\n}*/\n\n\n.LandingWrap16kRMSdr5J8g{--gap: 3em;--edge: var(--markdown-edge, #dfe2e5);-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:nowrap column;flex-flow:nowrap column;grid-gap:var(--gap);margin:0 auto;max-width:100%;padding:var(--gap) calc(var(--gap)/2);width:1000px}.LandingBlock3PM-HyBxby3X{display:grid;grid-auto-columns:1fr;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.LandingBlock-link_viewAllX8PdNqsaoOrY{margin-top:5px;opacity:.6}.LandingBlock-link_viewAllX8PdNqsaoOrY:hover,.LandingBlock-link_viewAllX8PdNqsaoOrY:active,.LandingBlock-link_viewAllX8PdNqsaoOrY:focus{opacity:1}.LandingBlock_align\\=right5brkzb7uF2uO{text-align:right}.LandingBlock_align\\=center12RqtJarcIcH{text-align:center}.LandingBlock_align\\=leftG1r7ROyW_AGB{text-align:left}.LandingBlock3PM-HyBxby3X a:not(:hover){text-decoration:none}.LandingBlock3PM-HyBxby3X hr{border-color:var(--edge)}.LandingBlock3PM-HyBxby3X ul{padding:0;list-style:none}.LandingBlock3PM-HyBxby3X .heading{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.LandingBlock-Three2lm6yBrv1MlV{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;grid-gap:var(--gap)}.LandingBlock-Three2lm6yBrv1MlV>*{-webkit-box-flex:0;-ms-flex:0 33.33%;flex:0 33.33%}.LandingBlock-Docs1N0x68Z0Yw2J,.LandingBlock-Links38HRtdeemVvp{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:wrap row;flex-flow:wrap row;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;grid-gap:var(--gap)}.LandingBlock-Docs1N0x68Z0Yw2J a,.LandingBlock-Links38HRtdeemVvp a{color:var(--graphite)}.LandingBlock-Docs1N0x68Z0Yw2J a:hover,.LandingBlock-Docs1N0x68Z0Yw2J a:focus,.LandingBlock-Links38HRtdeemVvp a:hover,.LandingBlock-Links38HRtdeemVvp a:focus{color:var(--color-link-primary)}.LandingBlock-Docs1N0x68Z0Yw2J li,.LandingBlock-Links38HRtdeemVvp li{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.LandingBlock-Docs1N0x68Z0Yw2J h3,.LandingBlock-Links38HRtdeemVvp h3{color:var(--LandingPage-heading-color,inherit);padding-bottom:.2em;border-bottom:1px solid var(--edge)}.LandingBlock-Docs1N0x68Z0Yw2J>*,.LandingBlock-Links38HRtdeemVvp>*{-webkit-box-flex:1;-ms-flex:1 calc(33% - var(--gap));flex:1 calc(33% - var(--gap));max-width:33%}.LandingBlock-TextMedia2eohAoAZBn4h{display:-webkit-box;display:-ms-flexbox;display:flex;grid-gap:var(--gap)}.LandingBlock-TextMedia_reverse2UDtbGaKixp1>:last-child{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.LandingBlock-TextMedia2eohAoAZBn4h>*{-webkit-box-flex:1;-ms-flex:1 calc(50% - var(--gap));flex:1 calc(50% - var(--gap));max-width:50%}.LandingBlock-TextMedia2eohAoAZBn4h:last-child img:only-child{margin-bottom:calc(-1 * var(--gap))}.LandingBlock-TextMedia-media2NFhDb7Wi36K{-webkit-box-flex:1;-ms-flex:1 0 50%;flex:1 0 50%;max-width:50%;text-align:initial}.LandingBlock-TextMedia-media2NFhDb7Wi36K.markdown-body pre{margin-bottom:0!important}.LandingBlock-TextMedia-media2NFhDb7Wi36K:is(img){max-width:50%;max-height:42vh;-o-object-fit:contain;object-fit:contain}.LandingBlock-TextMedia-media2NFhDb7Wi36K:only-child{max-width:100%;max-height:unset;margin:0 auto}.LandingBlock-TextMedia-media2NFhDb7Wi36K:not(img){max-width:60%!important;width:100%}@media(min-width:768px){.LandingBlock-Links38HRtdeemVvp{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.LandingBlock-Links38HRtdeemVvp>*{margin:0}.LandingBlock-Docs1N0x68Z0Yw2J>:last-child:nth-child(3n-1){margin-right:calc(32.8% + (var(--gap)/2))}.LandingBlock-Docs1N0x68Z0Yw2J>:last-child:nth-child(3n-2){margin-right:calc((32.8% + (var(--gap)/2)) * 2)}}@media(max-width:768px){.LandingBlockWrap14DcwE_zdFiG{--gap: 1.5em;width:100%;padding:var(--gap);-webkit-box-sizing:border-box;box-sizing:border-box}.LandingBlock3PM-HyBxby3X{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:nowrap column;flex-flow:nowrap column}.LandingBlock-Docs1N0x68Z0Yw2J,.LandingBlock-Links38HRtdeemVvp{display:grid;grid-template-columns:repeat(2,1fr)}.LandingBlock-Docs1N0x68Z0Yw2J>*,.LandingBlock-Links38HRtdeemVvp>*{max-width:unset}.LandingBlock-TextMedia2eohAoAZBn4h>*{max-width:unset}.LandingBlock-TextMedia-media2NFhDb7Wi36K{max-width:100%!important}.LandingBlock-TextMedia-media2NFhDb7Wi36K:not(img){max-width:unset!important;width:100%}}@media(max-width:480px){.LandingBlock-Docs1N0x68Z0Yw2J,.LandingBlock-Links38HRtdeemVvp{grid-template-columns:1fr}}.rm-LandingPage{--LandingPage-heading-color: var(--color-primary)}\n#ssr-main header .LandingPageHeader-title16RMwPkp2O2W {\n    color: #fff;\n    font-family: var(--font-family);\n    font-size: 2em;\n    margin-bottom: 15px;\n    font-weight: var(--font-weight-bold);\n}\n\n#hub-subheader-parent {\n    height: 0px;\n}\n\nheader#hub-header #header-top #header-nav-left li a, header#hub-header #header-top #header-nav-right li a {\n    color: #fff;\n    text-decoration: none;\n}\n\n\n\n\n.hub-container, .container {\n    max-width: 1440px;\n    margin: auto;\n    width: 100%;\n    position: relative;\n}\n/*Dark mode landing page text color*/\n[data-color-mode=dark] [class^=\"LandingBlock\"] .markdown-body h2 {\n    color: white;\n}\n[data-color-mode=dark] [class^=\"LandingBlock\"] .markdown-body p {\n    color: white !important;\n}\n[data-color-mode=dark] [class^=\"LandingBlock\"] .markdown-body a {\n    color: lightgray;\n}\n\n\n/*code snippet background color change in callouts*/\n.callout .theme-light span.cm-s-neo {\n    background: #f0f0f0;\n}\n[data-color-mode=dark] .callout .theme-light span.cm-s-neo {\n    background: #242e34;\n}\n@media (prefers-color-scheme: dark) {\n  [data-color-mode=\"system\"] .callout .theme-light span.cm-s-neo {\n    background: #242e34;\n}\n}\n\n/* OneTrust Footer Styles - Prefixed with ot-footer- to avoid conflicts */\n\n/* Base footer element */\n.ot-footer {\n    font-family: \"Open Sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n}\n\n/* Typography utilities */\n.ot-footer h1,\n.ot-footer h2,\n.ot-footer h3,\n.ot-footer h4,\n.ot-footer h5,\n.ot-footer h6 {\n    margin: 0 0 8px;\n}\n\n.ot-footer-font-weight-thin {\n    font-weight: 200;\n}\n\n.ot-footer-font-weight-light {\n    font-weight: 300;\n}\n\n.ot-footer-text-color--white {\n    color: white;\n}\n\n.ot-footer-body-1 {\n    font-size: 24px;\n    line-height: 28px;\n}\n\n.ot-footer-flex-direction {\n    flex-direction: column;\n}\n\n.ot-footer-height-38 {\n    line-height: 38px;\n}\n\n/* Padding utilities */\n.ot-footer-padding-right-32 {\n    padding-right: 32px;\n}\n\n.ot-footer-padding-right-64 {\n    padding-right: 64px;\n}\n\n.ot-footer-padding-left-64 {\n    padding-left: 64px;\n}\n\n.ot-footer-padding-left-40 {\n    padding-left: 40px;\n}\n\n.ot-footer-padding-bottom-16 {\n    padding-bottom: 16px;\n}\n\n/* Separator styles */\n.ot-footer-separator {\n    display: flex;\n}\n\n.ot-footer-separator__spacing--large {\n    margin-bottom: 24px;\n    margin-top: 24px;\n}\n\n.ot-footer-separator__spacing--small {\n    margin-bottom: 8px;\n    margin-top: 8px;\n}\n\n.ot-footer-separator__spacing--medium {\n    margin-bottom: 16px;\n    margin-top: 16px;\n}\n\n.ot-footer-separator__horizontal-rule {\n    border: none;\n    height: 1px;\n}\n\n/* Container styles */\n.ot-footer-container {\n    background-color: #101614;\n    position: relative;\n    z-index: 1;\n}\n\n.ot-footer-content {\n    margin: 0 auto;\n    max-width: 1440px;\n    width: 100%;\n}\n\n/* Links section */\n.ot-footer-links {\n    display: grid;\n    gap: 0;\n    width: 100%;\n    grid-template-columns: repeat(2, 50%);\n}\n\n.ot-footer-links p {\n    font-size: 14px;\n    line-height: 20px;\n}\n\n.ot-footer-links-block {\n    -webkit-box-align: start;\n    -ms-flex-align: start;\n    align-items: start;\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n}\n\n.ot-footer-links-block .ot-footer-font-weight-thin {\n    font-size: 24px;\n    line-height: 28px;\n    margin-bottom: 24px;\n    margin-right: 32px;\n    width: 187px;\n}\n\n.ot-footer-links-block ul {\n    margin-right: 32px;\n    max-width: 296px;\n}\n\n.ot-footer-links-block a {\n    text-decoration: none;\n    font-size: 14px;\n    line-height: 20px;\n}\n\n/* Footer text */\n.ot-footer-text {\n    font-size: 14px;\n    font-weight: 300;\n    line-height: 20px;\n}\n\n/* List styles */\n.ot-footer-list {\n    list-style: none;\n    padding: 0;\n    margin: 0;\n}\n\n.ot-footer-list__item {\n    margin-bottom: 8px;\n}\n\n.ot-footer-list__item-link {\n    text-decoration: none;\n    transition: color 0.2s ease;\n}\n\n.ot-footer-list__item-link:hover {\n    color: rgb(108, 192, 74) !important;\n    text-decoration: none !important;\n}\n\n.ot-footer-list__item-title {\n    font-size: 14px;\n    line-height: 20px;\n}\n\n@media (min-width: 882px) {\n    .ot-footer-list {\n        margin-bottom: 80px;\n    }\n}\n\n/* Privacy container */\n.ot-footer-privacy-container {\n    position: relative;\n}\n\n.ot-footer-privacy-container::before {\n    display: block;\n    background: linear-gradient(270deg,\n            #479dbb,\n            #479dbb 16.666%,\n            #499da8 33.332%,\n            #4c9e96 49.998%,\n            #4d9e85 66.664%,\n            #51a071 83.33%,\n            #559e5e);\n    content: \"\";\n    height: 4px;\n    left: 0;\n    position: relative;\n    top: 0;\n    width: 100%;\n}\n\n.ot-footer-privacy {\n    background-color: #346e4a;\n}\n\n.ot-footer-privacy .ot-footer-body-text {\n    font-size: 24px;\n    line-height: 28px;\n}\n\n.ot-footer-title__text {\n    font-size: 40px;\n    line-height: 48px;\n    font-weight: 300;\n}\n\n/* Responsive styles - Tablet */\n@media (max-width: 768px) {\n    .ot-footer-padding-left-64,\n    .ot-footer-padding-left-40 {\n        padding-left: 22px;\n    }\n\n    .ot-footer-padding-right-64,\n    .ot-footer-padding-right-40 {\n        padding-right: 22px;\n    }\n\n    .ot-footer-separator__spacing--large {\n        margin-top: 14px;\n        margin-bottom: 14px;\n    }\n\n    .ot-footer-links {\n        gap: 20px;\n    }\n\n    .ot-footer-links_content {\n        display: flex;\n        flex-direction: column;\n        gap: 20px;\n    }\n\n    .ot-footer-links-block {\n        flex-direction: column;\n    }\n\n    .ot-footer-links-block h3 {\n        width: auto;\n        margin-bottom: 10px;\n        margin-right: 0;\n    }\n\n    .ot-footer-links-block ul {\n        margin-right: 0;\n        max-width: initial;\n    }\n\n    .ot-footer-links-block.ot-footer-flex-direction.ot-footer-padding-right-32 {\n        padding-right: 0;\n    }\n\n    .ot-footer-links-block.ot-footer-flex-direction + .ot-footer-links-block.ot-footer-flex-direction {\n        margin-top: 20px;\n    }\n\n    .ot-footer-privacy {\n        padding-right: 22px;\n    }\n\n    .ot-footer-privacy.ot-footer-padding-bottom-16 {\n        padding-bottom: 36px;\n    }\n\n    .ot-footer-privacy h2 {\n        font-size: 34px;\n        line-height: normal;\n    }\n}\n\n/* Responsive styles - Mobile */\n@media (max-width: 512px) {\n    .ot-footer-links {\n        grid-template-columns: repeat(1, 100%);\n    }\n}\n/*\n(OneTrust Logo White Image | 2026/03/23 09:29:13 | null x null)\nhttps://files.readme.io/0459ab07c12f3bd23da65e2652e71cb7def368d1fa9a127aa83145dbe79f3dff-ot-logo-lockup-white.svg\n*/\n/*\n(API Landing Platform from myOT Image | 2026/01/14 14:18:59 | 88 x 85)\nhttps://files.readme.io/c2798a8f6906986f4645aaac8b3b73f3853d6d06052d52b685d4c6891bcd4a56-platform_myOT.png\n*/\n/*\n(API Landing Platform from myOT Image | 2026/01/14 14:17:50 | 130 x 129)\nhttps://files.readme.io/cc29d7007540d1b93da235524b8c4be595da0c2fcec872ebd39f49265ce631a7-platform_myOT.png\n*/\n\n/*\n(API Landing Platform Image | 2026/01/13 22:58:43 | null x null)\nhttps://files.readme.io/0a9056427106a578ee67bafd0f635e6ddaff86685a89cb2a91964791eb9d7428-OT-graphic-platform-break-down-silos.svg\n*/\n/*\n(API Landing AI Governance Image | 2025/12/18 10:44:38 | null x null)\nhttps://files.readme.io/fb566c6921532531c0c047cf3715e47200fac2dc3a6193c6971701e9f450348d-ai-gov-icon.svg\n*/\n/*\n(API Landing Consent & Preferences Image | 2025/12/18 10:44:25 | null x null)\nhttps://files.readme.io/dae3449f736e828fd7e4d85dc096374c684d9ab9010c85a7a61503e3b8f2a988-icon-consent-and-preferences-gradient.svg\n*/\n/*\n(API Landing Data Use Governance Image | 2025/12/18 10:44:10 | null x null)\nhttps://files.readme.io/d475c8ee55b97fc7811fd59651c3a772f145f755e41144ed95aeccddf16fe8f7-icon-data-use-governance-gradient.svg\n*/\n/*\n(API Landing Privacy Automation Image | 2025/12/18 10:43:57 | null x null)\nhttps://files.readme.io/f568abf1056140b6ab8d3e119597ae4c200fef6b2c72e6710dd775d5736b5d29-icon-privacy-automation-gradient.svg\n*/\n/*\n(API Landing Tech Risk & Compliance Image | 2025/12/18 10:43:40 | null x null)\nhttps://files.readme.io/76a6ec610698a99ef27d4509b2a1a14400a17b53c4c4299b17538fca5fb7a175-icon-tech-risk-gradient.svg\n*/\n/*\n(API Landing Third-Party Management Image | 2025/12/18 10:43:05 | null x null)\nhttps://files.readme.io/b0ad89df2cbd93051e02edc4d8e4dff390af2148a19f14785ef1cfa1f1eeff19-icon-third-party-management-gradient.svg\n*/\n/*\n(Hero Background Image | 2025/12/17 11:15:00 | null x null)\nhttps://files.readme.io/7d6fd955d8d1e65a4ca4b5a24742445a04c34b276186724ceaeddd8e7133955b-myot-hero-background.svg\n*/\n/*\n(Landing Page Image | 2025/12/17 10:38:28 | 1248 x 1160)\nhttps://files.readme.io/2ba63e7e6b9148487dd574ce2ba6710d4e5c71913dbe0a75c792e8b3bcd0bd01-ot-graphic-hero-dev-portal_1.png\n*/\n/*\n(Hosted Image | 2025/12/17 10:18:26 | null x null)\nhttps://files.readme.io/a262709fc6f5f8d5233c260741f69ea15ec746dd560902818bc0c94d7dd3a7cc-OT-thumbnail-homepage-ai-governance-use-case-800x800.svg\n*/\n/*\n(Hosted Image | 2025/12/17 10:18:22 | null x null)\nhttps://files.readme.io/e7c59e179174c162f631a94691182a39ee0e1291f1ee06dcea5be27fe70c117b-OT-thumbnail-homepage-data-use-governance-icon-800-800.svg\n*/\n/*\n(Hosted Image | 2025/12/17 10:18:14 | null x null)\nhttps://files.readme.io/12fa03d4da5f7013f91774823aaa77cc7eb858c5b04f3a96fbf87e58253dca97-OT-thumbnail-homepage-first-party-data-consent-preferences-use-case-800x800.svg\n*/\n/*\n(Hosted Image | 2025/12/17 10:18:08 | null x null)\nhttps://files.readme.io/6f8b5f31da4433cff262494202abf2cbf6ddc50595da98c2836d2c60507c6f35-OT-thumbnail-homepage-first-party-data-consent-preferences-use-case-800x800.svg\n*/\n/*\n(Hosted Image | 2025/12/17 10:18:04 | null x null)\nhttps://files.readme.io/992191fb0844b92753f6582910c9e07822fecfe88d0135dd7420974aa8cee9bb-OT-thumbnail-homepage-third-party-management-use-case-800x800.svg\n*/\n/*\n(Hosted Image | 2025/12/17 10:17:55 | null x null)\nhttps://files.readme.io/67083efb1756e06d17267c00a68fd421b00641911d512a39245b0d1be3526372-OT-thumbnail-homepage-privacy-management-use-case-800x800.svg\n*/\n\n\n/* Bearer Token Only Mode */\nbutton.Button.Button_xs.APIAuth-oauth-footer-reauthorize3rGALj24H4ZX.Button_primary_ghost.Button_primary {\n    display: none;\n}\n\n/* Custom Scopes Pills */\n.custom-scopes {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n  margin-top: 12px;\n  padding: 8px 0;\n}\n\n.custom-scopes-label {\n  font-size: 12px;\n  font-weight: 600;\n  color: var(--color-text-muted, #6b7280);\n  width: 100%;\n  margin-bottom: 4px;\n}\n\n.scope-pill {\n  position: relative;\n  display: inline-flex;\n  align-items: center;\n  padding: 6px 12px;\n  font-size: 12px;\n  font-weight: 500;\n  font-family: monospace;\n  background: var(--color-bg-page, #f3f4f6);\n  color: var(--color-text-default, #374151);\n  border: 1px solid var(--color-border-default, #d1d5db);\n  border-radius: 16px;\n  cursor: default;\n  transition: all 0.15s ease;\n}\n\n.scope-pill:hover {\n  background: var(--color-primary, #2563eb);\n  color: white;\n  border-color: var(--color-primary, #2563eb);\n}\n\n\n/* Tooltip */\n.scope-pill .scope-tooltip {\n  position: absolute;\n  bottom: calc(100% + 8px);\n  left: 50%;\n  transform: translateX(-50%);\n  padding: 8px 12px;\n  background: var(--color-bg-tooltip, #1f2937);\n  color: white;\n  font-size: 11px;\n  font-family: inherit;\n  border-radius: 6px;\n  white-space: nowrap;\n  opacity: 0;\n  visibility: hidden;\n  transition: opacity 0.15s ease, visibility 0.15s ease;\n  z-index: 100;\n  max-width: 250px;\n  white-space: normal;\n  text-align: center;\n}\n\n.scope-pill .scope-tooltip::after {\n  content: '';\n  position: absolute;\n  top: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  border: 6px solid transparent;\n  border-top-color: var(--color-bg-tooltip, #1f2937);\n}\n\n.scope-pill:hover .scope-tooltip {\n  opacity: 1;\n  visibility: visible;\n}\n\n\n/* OneTrust Green Base */\n:root {\n  --onetrust-green: #50af51;\n  --onetrust-green-dark: #55a05e;\n}\n\n/* Update CSS for Cookie List Page */\n#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy #cookie-policy-title {\n    color: transparent!important;\n}\n/* System dark mode (user's OS prefers dark) */\n@media (prefers-color-scheme: dark) {\n  html[data-color-mode=\"system\"] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy :is(\n    h5, h6, li, p, a, span, td, #cookie-policy-description, .ot-sdk-cookie-policy-group\n  ) {\n    color: #fff !important;\n  }\n  html[data-color-mode=\"system\"] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a,\n  html[data-color-mode=\"system\"] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a:hover {\n    background: transparent;\n  }\n}\n/* Explicit ReadMe dark mode */\nhtml[data-color-mode=\"dark\"] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy :is(\n  h5, h6, li, p, a, span, td, #cookie-policy-description, .ot-sdk-cookie-policy-group\n) {\n  color: #fff !important;\n}\nhtml[data-color-mode=\"dark\"] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a,\nhtml[data-color-mode=\"dark\"] #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a:hover {\n  background: transparent;\n}\n\n\n\n\n\n/* CSS for Recipe Support Statement */\nblockquote.callout.callout_warning.onetrust-custom-callout {\n    color: var(--slate);\n    --Callout-bg: #fcf8f2!important;\n}\n\n/* CSS for SDK Statement */\nblockquote.callout.callout_error.onetrust-custom-callout-cmp {\n    --Callout-bg: #fdf7f7!important;\n    --Callout-border: rgb(216.56875, 83.4, 78.93125);\n\n    /* BUGFIX: Ensure link renders black instead of white on light background so the link is visible */\n    a {\n        color: black !important;\n    }\n}\n\n/* CSS for OAS Migration Statement */\nblockquote.callout.callout_warning.onetrust-custom-callout-oas {\n    color: var(--slate);\n    --Callout-bg: #fcf8f2!important;\n}\n\n\n/* CSS to prevent Recipe Labels for cloud and lang to not be clickable */\nimg.ot-recipe-label {\n    pointer-events: none;\n}\n\n.TutorialCard-Description2yaRK8FfwVRG {\n    overflow: hidden!important;\n    display: -webkit-box!important;\n    -webkit-line-clamp: 8!important;\n    -webkit-box-orient: vertical!important;\n}\n\n.Avatar.Avatar_md.TutorialCard-Avatar2GqJCrkbnRPc.Avatar_emoji {\n    content-visibility: hidden;\n    display: none;\n}\n\n\n/* CSS for x-ontrust tags in API spec header */\n.ot-tags-container {\n    padding-left: 15px;\n    flex-shrink: 0;\n}\n.ot-tags {\n    -webkit-box-flex: 0;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    margin-right: 5px;\n    margin-top: 2px;\n  border-radius: var(--border-radius-lg);\n    -webkit-box-shadow: var(--box-shadow-pill);\n    box-shadow: var(--box-shadow-pill);\n    -webkit-box-sizing: border-box;\n    box-sizing: border-box;\n    color: #fff;\n    display: -webkit-inline-box;\n    display: -ms-inline-flexbox;\n    display: inline-flex;\n  flex-direction: row-reverse;\n    font-family: var(--font-family);\n    font-size: 12px;\n    font-weight: var(--font-weight-bold);\n    height: 20px;\n    -webkit-box-pack: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n    line-height: 20px;\n    padding-left: 8px;\n    padding-right: 8px;\n    text-align: center;\n    text-transform: uppercase;\n    white-space: nowrap;\n  \n}\n/* highly availible */\n.ot-tags-ha {\n    background: mediumpurple;\n    text-shadow: 1px 1px 0 rebeccapurple,0 1px 0 rebeccapurple,1px 0 0 rebeccapurple;\n}\n\n.ot-tags-ha:hover {\n    background: rebeccapurple;\n  \tcursor: pointer;\n}\n/* spec label */\n.ot-tags-sl {\n    background: gray;\n    text-shadow: 1px 1px 0 dimgray,0 1px 0 dimgray,1px 0 0 dimgray;\n}\n\n.ot-tags-sl:hover {\n    background: dimgray;\n  \tcursor: pointer;\n}\n/* release status */\n.ot-tags-rs {\n    background: tomato;\n    text-shadow: 1px 1px 0 firebrick,0 1px 0 firebrick,1px 0 0 firebrick;\n}\n\n/*\n.ot-tags-rs:hover {\n    background: firebrick;\n  \tcursor: pointer;\n}*/\n\n\n/* Suggested Edits Animation */\n.rm-Guides #content-head .col-xs-3 .icon {\n\tanimation: jump 0.8s infinite alternate;\n}\n\n/* Animation for Page Feedback - Thumbs Up/Down Icons */\n.PageThumbs-button .icon {\n  animation: jump 0.8s infinite alternate;\n  padding-right: 5px;\n}\n  /* For jumping animation */\n  @keyframes jump {\n    0% {\n      transform: translateY(0);\n    }\n    50% {\n      transform: translateY(-5px);\n    }\n    100% {\n      transform: translateY(0);\n    }\n  } \n\n/* Left Align All Text in Tables */\n\n.markdown-body table td, .markdown-body table th {\n    text-align: left !important;\n}\n\n/* Fix Space at Top while Loading */\n/*.rm-ReferenceMain .rm-Article {\n    display: block !important;\n}*/\n\n/* 404 Page Formatting */\n/* hides title for custom pages e.g. 404 page */\n.App .rm-CustomPage #content-head h1 {\n  display: none !important;\n}\n\n#notfound {\n  position: relative;\n  height: 100vh;\n}\n\n#notfound .notfound {\n  position: absolute;\n  left: 50%;\n  top: 30%;\n  -webkit-transform: translate(-50%, -50%);\n      -ms-transform: translate(-50%, -50%);\n          transform: translate(-50%, -50%);\n}\n\n.notfound {\n  max-width: 767px;\n  width: 100%;\n  line-height: 1.4;\n  text-align: center;\n  padding: 15px;\n}\n\n.notfound .notfound-404 {\n  position: relative;\n  height: 220px;\n}\n\n.notfound .notfound-404 h1 {\n  font-family: 'Kanit', sans-serif;\n  position: absolute;\n  left: 50%;\n  top: 50%;\n  -webkit-transform: translate(-50%, -50%);\n      -ms-transform: translate(-50%, -50%);\n          transform: translate(-50%, -50%);\n  font-size: 186px;\n  font-weight: 200;\n  margin: 0px;\n  background: linear-gradient(130deg, #2C6145, #55A05E);\n  color:transparent;\n  -webkit-background-clip: text;\n  background-clip: text;\n  text-transform: uppercase;\n}\n\n.notfound h2 {\n  font-family: 'Kanit', sans-serif;\n  font-size: 33px;\n  font-weight: 200;\n  text-transform: uppercase;\n  margin-top: 0px;\n  margin-bottom: 25px;\n  letter-spacing: 3px;\n}\n\n\n.notfound p {\n  font-family: 'Kanit', sans-serif;\n  font-size: 16px;\n  font-weight: 200;\n  margin-top: 0px;\n  margin-bottom: 25px;\n}\n\n\n.notfound a {\n  font-family: 'Kanit', sans-serif;\n  color: #55A05E;\n  font-weight: 200;\n  text-decoration: none;\n  border-bottom: 1px dashed #55A05E;\n  border-radius: 2px;\n}\n\n.notfound-social>a {\n  display: inline-block;\n  height: 40px;\n  line-height: 40px;\n  width: 40px;\n  font-size: 14px;\n  color: #2C6145;\n  border: 1px solid #2C6145;\n  border-radius: 50%;\n  margin: 3px;\n  -webkit-transition: 0.2s all;\n  transition: 0.2s all;\n}\n.notfound-social>a:hover {\n  color: #fff;\n  background-color: #55A05E;\n  border-color: #55A05E;\n}\n\n@media only screen and (max-width: 480px) {\n  .notfound .notfound-404 {\n    position: relative;\n    height: 168px;\n  }\n\n  .notfound .notfound-404 h1 {\n    font-size: 142px;\n  }\n\n  .notfound h2 {\n    font-size: 22px;\n  }\n}\n\n/* Full Width no Whitespace on Sides */\n\n:root {\n    --container: 1200px!important;\n    --container-lg: 98%!important;\n    --hub-main-max-width: 80%!important;\n    --hub-playground-width: 30%!important;\n    --hub-sidebar-width: 20%!important;\n\t  --hub-toc-width: 20%!important;\n  \t--hub-content-max-width: 100%!important;\n\n\n}\n\n.rm-Guides .content-body {\n    padding-right: 80px;\n}\n\n.Header-bottom2eLKOFXMEmh5 {\n    margin: auto;\n    width: 100%;\n    max-width: 100% !important;\n    padding: 5px;\n}\n\n.Header-topuTMpygDG4e1V {\n  border: none !important;\n}\n\n.rm-SearchToggle {\n    width: 300px !important;\n}\n\n/* Reordering Menu Items */\n.Header-leftADQdGVqx1wqU .Dropdown_toggle {\n    order: 1; /* v1.0 */\n}\n\n.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*=\"/onetrust/\"] {\n    order: 2; /* Home */\n}\n\n.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*=\"/onetrust/docs\"] {\n    order: 4; /* Documentation */\n}\n\n.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*=\"/onetrust/recipes\"] {\n    order: 5; /* Recipes */\n}\n\n.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*=\"/onetrust/reference\"] {\n    order: 3; /* API Reference */\n}\n\n.Header-leftADQdGVqx1wqU .rm-Header-bottom-link[href*=\"/onetrust/changelog\"] {\n    order: 6; /* Changelog */\n}\n\n/* Set Font Family to match myOT */\n\n.App {\n  --font-family: 'Open Sans', sans-serif !important;\n}\n\n/* Set Color for Catagory Text to Green */\n\n.rm-Sidebar-heading {\n    color: #346E4A !important;\n}\n\n@media (prefers-color-scheme: dark) {\n  [data-color-mode=\"system\"] .rm-Sidebar-heading {\n    color: #55A05E !important;\n}}\n\n[data-color-mode=\"dark\"] .rm-Sidebar-heading {\n    color: #55A05E !important;\n}\n\n/* Styling for Tiles on Overview Pages */\n\n.ProductsWrapper {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    text-decoration: none;\n}\n\n.SDKWrapper {\n    display: flex;\n    flex-wrap: wrap;\n    text-decoration: none;\n}\n\n.ProductCard {\n    width: 45%;\n    margin: 10px;\n    padding: 15px;\n    border: 1px solid #ddd;\n    border-radius: 8px;\n    text-align: center;\n    text-decoration: none;\n    color: #333;\n    transition: box-shadow 0.3s;\n    position: relative;\n}\n\n.SDKCard {\n    width: 20%;\n    margin: 10px;\n    padding: 10px;\n    border: 1px solid #ddd;\n    border-radius: 8px;\n    text-align: center;\n    text-decoration: none;\n    color: #333;\n    transition: box-shadow 0.3s;\n    position: relative;\n}\n\n/* Light mode animated drop shadow */\n.ProductCard:hover {\n\t\tbox-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);\n    transform: translateY(-2px);}\n\n.SDKCard:hover {\n\t\tbox-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);\n    transform: translateY(-2px);}\n\n.ProductCard a {\n    text-decoration: none !important;\n    display: flex;\n    flex-direction: row;\n    align-items: flex-start;\n    justify-content: center;\n    height: 100%;\n}\n\n.SDKCard a {\n    text-decoration: none !important;\n    display: flex;\n    flex-direction: column !important;\n    align-items: center;\n    justify-content: center;\n    height: 100%;\n}\n\n.ProductCard img {\n    width: 80px;\n    height: 80px;\n    margin-bottom: 10px;\n    margin-right: 10px;\n}\n\n.SDKCard svg {\n    width: 95%;\n    height: 80px;\n    position: relative;\n    top: 40%;\n    -webkit-transform: translateY(-60%);\n    -ms-transform: translateY(-60%);\n    transform: translateY(-60%);\n    left: 0;\n    right: 0;\n    margin: auto;\n    text-align: center;\n}\n\n.ProductCard_dark_icon {\n    display: none !important;\n}\n\n.ProductCard_light_icon {\n    display: inline-block;\n}\n\n.ProductCard_text {\n    flex: 1;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n}\n\n.ProductCard h4 {\n    margin-top: 0;\n    margin-bottom: 0;\n    font-size: 1.1rem;\n    text-decoration: none;\n}\n\n.SDKCard h4 {\n    margin-top: 15px;\n    margin-bottom: 0;\n    font-size: 0.9rem;\n    text-decoration: none !important;\n    color: black\n}\n\n.ProductCard p {\n    margin: 5px 0 0;\n    font-size: .8rem;\n    color: #333;\n    text-decoration: none;\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    overflow: hidden;\n    -webkit-line-clamp: 3;\n    /* Adjust the value to the maximum number of lines */\n    text-overflow: ellipsis;\n    max-height: 5em;\n    /* Adjust the value as needed for browsers without -webkit prefix */\n    white-space: normal;\n    /* Reset white-space property */\n}\n\n/* Dark mode styles */\n@media (prefers-color-scheme: dark) {\n    [data-color-mode=\"system\"] .ProductCard p {\n        color: white;\n    }\n\n    [data-color-mode=\"system\"] .SDKCard h4 {\n        color: white;\n    }\n\n    [data-color-mode=\"system\"] .SDKCard path[fill=\"white\"] {\n    /* Override the previous rule and set the fill color to transparent */\n    fill: var(--color-bg-page);\n}\n      [data-color-mode=\"system\"] .SDKCard path {\n    fill: white;\n}\n  /* Target only the MAUI logo by using its specific container */\n[data-color-mode=\"system\"] .SDKCard path[fill=\"#A213EC\"] {\n    fill: var(--color-bg-page); /* Makes the purple background transparent */\n}\n\n[data-color-mode=\"system\"] .SDKCard svg[title=\"MAUI\"] path[fill=\"#FFFFFF\"] {\n    fill: #FFFFFF;\n}\n\n\n    [data-color-mode=\"system\"] .ProductCard:hover {\n        box-shadow: 0 4px 8px rgba(255, 255, 255, 0.1);\n          transform: translateY(-2px);\n    }\n  \t[data-color-mode=\"system\"] .SDKCard:hover {\n        box-shadow: 0 4px 8px rgba(255, 255, 255, 0.1);\n          transform: translateY(-2px);\n    }\n}\n\n@media (prefers-color-scheme: dark) {\n    [data-color-mode=\"system\"] .ProductCard_dark_icon {\n        display: inline-block !important;\n        /* Display light image in light mode */\n    }\n\n}\n\n@media (prefers-color-scheme: dark) {\n    [data-color-mode=\"system\"] .ProductCard_light_icon {\n        display: none;\n        /* Display light image in light mode */\n    }\n\n}\n\n[data-color-mode=\"dark\"] .SDKCard h4 {\n    color: white;\n}\n\n[data-color-mode=\"dark\"] .ProductCard:hover {\n    box-shadow: 0 4px 8px rgba(255, 255, 255, 0.1);\n      transform: translateY(-2px);\n}\n\n[data-color-mode=\"dark\"] .SDKCard:hover {\n    box-shadow: 0 4px 8px rgba(255, 255, 255, 0.1);\n      transform: translateY(-2px);\n}\n\n[data-color-mode=\"dark\"] .SDKCard path[fill=\"white\"] {\n    /* Override the previous rule and set the fill color to transparent */\n    fill: var(--color-bg-page);\n}\n[data-color-mode=\"dark\"] .SDKCard path {\n    fill: white;\n}\n\n/* Target only the MAUI logo by using its specific container */\n[data-color-mode=\"dark\"] .SDKCard path[fill=\"#A213EC\"] {\n    fill: var(--color-bg-page); /* Makes the purple background transparent */\n}\n[data-color-mode=\"dark\"] .SDKCard svg[title=\"MAUI\"] path[fill=\"#FFFFFF\"] {\n    fill: #FFFFFF;\n}\n\n[data-color-mode=\"dark\"] .ProductCard p {\n    color: white;\n}\n\n[data-color-mode=\"dark\"] .ProductCard_dark_icon {\n    display: inline-block !important;\n    /* Display light image in light mode */\n}\n\n[data-color-mode=\"dark\"] .ProductCard_light_icon {\n    display: none;\n    /* Display light image in light mode */\n}\n\n/* Grid box for footer */\n.slds-p-top_xx-large,\n.slds-p-top--xx-large {\n    padding-top: var(--lwc-spacingXxLarge, 3rem)\n}\n\n.slds-p-bottom_xx-large,\n.slds-p-bottom--xx-large {\n    padding-bottom: var(--lwc-spacingXxLarge, 3rem)\n}\n\n.slds-grid {\n    display: flex\n}\n\n.slds-wrap {\n    flex-wrap: wrap;\n    align-items: flex-start\n}\n\n.slds-p-around_small,\n.slds-p-around--small {\n    padding: var(--lwc-spacingSmall, 0.75rem)\n}\n\n.slds-size_1-of-1,\n.slds-size--1-of-1 {\n    width: 100%\n}\n\n.slds-medium-size_3-of-12,\n.slds-medium-size--3-of-12 {\n    width: 25%\n}\n\n.slds-large-size_2-of-12,\n.slds-large-size--2-of-12 {\n    width: 16.6666666667%\n}\n\n.slds-p-top_small,\n.slds-p-top--small {\n    padding-top: var(--lwc-spacingSmall, 0.75rem)\n}\n\n.slds-medium-size_12-of-12,\n.slds-medium-size--12-of-12 {\n    width: 100%\n}\n\n.slds-medium-size_12-of-12,\n.slds-medium-size--12-of-12 {\n    width: 100%\n}\n\n.slds-grid_overflow .slds-col,\n.slds-grid--overflow .slds-col {\n    min-width: 11.25em;\n    max-width: 22.5em\n}\n\n/* Changes size of the main OneTrust Logo */\nbody {\n    --header-logo-height: 30px;\n}\n\n/* Changes HR element to a white line */\nhr {\n    border: solid rgba(255, 255, 255) !important;\n    border-width: 1px 0 0 !important;\n}\n\n/* Needed for Footer */\n.cMyOT_FooterComponent.myOTFooter {\n    background-color: #2c3643;\n    color: white;\n    font-family: \"Open Sans\"\n}\n\n.cMyOT_FooterComponent .myOTFooterHeading {\n    font-size: 18px;\n    font-weight: 500\n}\n\n.cMyOT_FooterComponent .myOTFooterLink,\n.cMyOT_FooterComponent .myOTPrivacySection {\n    font-size: 16px;\n    font-weight: 200;\n    color: white !important\n}\n\n.cMyOT_FooterComponent .myOT2020-onetrust-all,\n.cMyOT_FooterComponent .myOTPrivacySection {\n    font-weight: 200;\n    font-size: 14px;\n    line-height: 19px\n}\n\n.cMyOT_FooterComponent.myOTFooter a:hover {\n    text-decoration: none !important;\n    color: rgb(108, 192, 74) !important\n}\n\n.cMyOT_FooterComponent hr {\n    margin: 0\n}\n\n@media only screen and (max-width:800px) {\n    .cMyOT_FooterComponent .myOTEventsHeading {\n        font-size: 25px !important;\n        padding: 1rem !important\n    }\n}\n\n@media only screen and (min-width:1025px) {\n    .cMyOT_FooterComponent .myOTFooterOTSection {\n        margin-left: 10%;\n        margin-right: 10%\n    }\n\n    .cMyOT_FooterComponent .myOT2020-onetrust-all {\n        float: left\n    }\n\n    .cMyOT_FooterComponent .myOTPrivacySection {\n        float: right;\n        display: flex\n    }\n}","js":"// START hides pages tab from search  \n (function hidePagesTab() {\n    const hide = (root = document) => {\n      root.querySelectorAll('.Tabs-listItem[aria-label=\"Pages\"]').forEach(el => {\n        el.style.display = 'none';\n      });\n    };\n\n    // Initial try (covers already-rendered nodes)\n    hide();\n\n    // Observe future changes\n    const observer = new MutationObserver(mutations => {\n      for (const m of mutations) {\n        // Check new nodes and attribute changes\n        if (m.type === 'childList') {\n          m.addedNodes.forEach(node => {\n            if (node.nodeType === 1) {\n              if (node.matches?.('.Tabs-listItem[aria-label=\"Pages\"]')) {\n                node.style.display = 'none';\n              }\n              // Also scan descendants in case a container was added\n              hide(node);\n            }\n          });\n        } else if (m.type === 'attributes') {\n          const target = m.target;\n          if (target.matches?.('.Tabs-listItem[aria-label=\"Pages\"]')) {\n            target.style.display = 'none';\n          }\n        }\n      }\n    });\n\n    // Pick the narrowest stable container if possible\n    const tablist = document.querySelector('.Tabs[role=\"tablist\"], .Tabs.Tabs-list, .Tabs');\n    observer.observe(tablist || document.body, {\n      childList: true,\n      subtree: true,\n      attributes: true,\n      attributeFilter: ['class', 'style', 'aria-label'] // keep it efficient\n    });\n   })();\n// END hides pages tab from search  \n\n\n\n// Check if the current path matches the target path\nif (window.location.pathname === \"/onetrust/page/partners\") {\n   document.getElementById(\"checklist-steps\").insertAdjacentHTML('afterbegin', `\n          \u003cdiv class=\"checklist-progress_inner__step\">\n            \u003clabel for=\"step-1\">Sign Up\u003c/label>\n          \u003c/div>\n          \u003cdiv class=\"checklist-progress_inner__step\">\n            \u003clabel for=\"step-2\">System Info\u003c/label>\n          \u003c/div>\n          \u003cdiv class=\"checklist-progress_inner__step\">\n            \u003clabel for=\"step-3\">Integration Details\u003c/label>\n          \u003c/div>\n          \u003cdiv class=\"checklist-progress_inner__step\">\n            \u003clabel for=\"step-4\">Publishing\u003c/label>\n          \u003c/div>\n          \u003cdiv class=\"checklist-progress_inner__step\">\n            \u003clabel for=\"step-5\">Resources\u003c/label>\n          \u003c/div>\n            `); \n   document.getElementById(\"checklist-container\").insertAdjacentHTML('beforeend', `\n  \t\t\u003ca class=\"btn btn-light-checklist\" href=\"javascript:void(0);\" onclick=\"showModal()\">Jump into the Detailed Requirements\u003c/a>\n\t\t\t`);\n  document.getElementById(\"checklist-radios\").outerHTML = `\n                \u003cinput checked=\"checked\" id=\"step-1\" name=\"step\" type=\"radio\">\n                \u003cinput id=\"step-2\" name=\"step\" type=\"radio\">\n                \u003cinput id=\"step-3\" name=\"step\" type=\"radio\">\n                \u003cinput id=\"step-4\" name=\"step\" type=\"radio\">\n                \u003cinput id=\"step-5\" name=\"step\" type=\"radio\">\n            `;\ndocument.querySelectorAll('.step-navigation').forEach(element => {\n            element.innerHTML = `\n                \u003cbutton id=\"prev-button\" onclick=\"moveStep(-1)\">\u003cspan>&#9664;\u003c/span>\u003c/button>\n          \t\t\t\u003cbutton id=\"next-button\" onclick=\"moveStep(1)\">\u003cspan>&#9654;\u003c/span>\u003c/button>\n            `;\n        });  \n    // Function to load a script and call a callback once it's loaded\n    function loadScript(src, callback) {\n        var script = document.createElement('script');\n        script.src = src;\n        script.crossOrigin = \"anonymous\";\n        script.referrerPolicy = \"no-referrer\";\n        script.onload = callback;\n        document.head.appendChild(script);\n    }\n\n    // Function to load a stylesheet\n    function loadStylesheet(href) {\n        var link = document.createElement('link');\n        link.href = href;\n        link.rel = \"stylesheet\";\n        link.crossOrigin = \"anonymous\";\n        link.referrerPolicy = \"no-referrer\";\n        document.head.appendChild(link);\n    }\n    // Load stylesheets\n    const stylesheets = [\n        \"https://cdnjs.cloudflare.com/ajax/libs/bootstrap/4.5.3/css/bootstrap.min.css\",\n        \"https://cdn.lineicons.com/4.0/lineicons.css\",\n        \"https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.min.css\",\n        \"https://cdnjs.cloudflare.com/ajax/libs/nivo-lightbox/1.3.1/nivo-lightbox.css\",\n        \"https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.theme.default.css\",\n        \"https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/magnific-popup.css\"\n    ];\n\n    stylesheets.forEach(loadStylesheet);\n\n    // Load jQuery first, then other scripts, and finally the scroll function\n    loadScript(\"https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js\", function () {\n        const scripts = [\n            \"https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.7.1/modernizr.min.js\",\n            \"https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/js/bootstrap.min.js\",\n            \"https://cdnjs.cloudflare.com/ajax/libs/stickyNavbar.js/1.3.5/jquery.stickyNavbar.min.js\",\n            \"https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js\",\n            \"https://cdnjs.cloudflare.com/ajax/libs/popper.js/2.9.3/umd/popper.min.js\",\n            \"https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js\",\n            \"https://cdnjs.cloudflare.com/ajax/libs/nivo-lightbox/1.3.1/nivo-lightbox.js\",\n            \"https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/jquery.magnific-popup.min.js\",\n            'https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.10/vue.min.js'\n        ];\n\n        scripts.forEach(function (src, index) {\n            loadScript(src, index === scripts.length - 1);\n        });\n    });\n\n\n\n\n    /*! modernizr 3.7.1 (Custom Build) | MIT *\n    * https://modernizr.com/download/?-cssanimations-csscolumns-customelements-flexbox-history-picture-pointerevents-postmessage-sizes-srcset-webgl-websockets-webworkers-addtest-domprefixes-hasevent-mq-prefixedcssvalue-prefixes-setclasses-testallprops-testprop-teststyles !*/\n    !function (e, t, n) { function r(e, t) { return typeof e === t } function o(e) { var t = b.className, n = Modernizr._config.classPrefix || \"\"; if (S && (t = t.baseVal), Modernizr._config.enableJSClass) { var r = new RegExp(\"(^|\\\\s)\" + n + \"no-js(\\\\s|$)\"); t = t.replace(r, \"$1\" + n + \"js$2\") } Modernizr._config.enableClasses && (e.length > 0 && (t += \" \" + n + e.join(\" \" + n)), S ? b.className.baseVal = t : b.className = t) } function i(e, t) { if (\"object\" == typeof e) for (var n in e) E(e, n) && i(n, e[n]); else { e = e.toLowerCase(); var r = e.split(\".\"), s = Modernizr[r[0]]; if (2 === r.length && (s = s[r[1]]), void 0 !== s) return Modernizr; t = \"function\" == typeof t ? t() : t, 1 === r.length ? Modernizr[r[0]] = t : (!Modernizr[r[0]] || Modernizr[r[0]] instanceof Boolean || (Modernizr[r[0]] = new Boolean(Modernizr[r[0]])), Modernizr[r[0]][r[1]] = t), o([(t && !1 !== t ? \"\" : \"no-\") + r.join(\"-\")]), Modernizr._trigger(e, t) } return Modernizr } function s() { return \"function\" != typeof t.createElement ? t.createElement(arguments[0]) : S ? t.createElementNS.call(t, \"http://www.w3.org/2000/svg\", arguments[0]) : t.createElement.apply(t, arguments) } function a() { var e = t.body; return e || (e = s(S ? \"svg\" : \"body\"), e.fake = !0), e } function l(e, n, r, o) { var i, l, u, f, c = \"modernizr\", d = s(\"div\"), p = a(); if (parseInt(r, 10)) for (; r--;)u = s(\"div\"), u.id = o ? o[r] : c + (r + 1), d.appendChild(u); return i = s(\"style\"), i.type = \"text/css\", i.id = \"s\" + c, (p.fake ? p : d).appendChild(i), p.appendChild(d), i.styleSheet ? i.styleSheet.cssText = e : i.appendChild(t.createTextNode(e)), d.id = c, p.fake && (p.style.background = \"\", p.style.overflow = \"hidden\", f = b.style.overflow, b.style.overflow = \"hidden\", b.appendChild(p)), l = n(d, e), p.fake ? (p.parentNode.removeChild(p), b.style.overflow = f, b.offsetHeight) : d.parentNode.removeChild(d), !!l } function u(e, t) { return !!~(\"\" + e).indexOf(t) } function f(e) { return e.replace(/([A-Z])/g, function (e, t) { return \"-\" + t.toLowerCase() }).replace(/^ms-/, \"-ms-\") } function c(t, n, r) { var o; if (\"getComputedStyle\" in e) { o = getComputedStyle.call(e, t, n); var i = e.console; if (null !== o) r && (o = o.getPropertyValue(r)); else if (i) { var s = i.error ? \"error\" : \"log\"; i[s].call(i, \"getComputedStyle returning null, its possible modernizr test results are inaccurate\") } } else o = !n && t.currentStyle && t.currentStyle[r]; return o } function d(t, r) { var o = t.length; if (\"CSS\" in e && \"supports\" in e.CSS) { for (; o--;)if (e.CSS.supports(f(t[o]), r)) return !0; return !1 } if (\"CSSSupportsRule\" in e) { for (var i = []; o--;)i.push(\"(\" + f(t[o]) + \":\" + r + \")\"); return i = i.join(\" or \"), l(\"@supports (\" + i + \") { #modernizr { position: absolute; } }\", function (e) { return \"absolute\" === c(e, null, \"position\") }) } return n } function p(e) { return e.replace(/([a-z])-([a-z])/g, function (e, t, n) { return t + n.toUpperCase() }).replace(/^-/, \"\") } function m(e, t, o, i) { function a() { f && (delete L.style, delete L.modElem) } if (i = !r(i, \"undefined\") && i, !r(o, \"undefined\")) { var l = d(e, o); if (!r(l, \"undefined\")) return l } for (var f, c, m, h, v, A = [\"modernizr\", \"tspan\", \"samp\"]; !L.style && A.length;)f = !0, L.modElem = s(A.shift()), L.style = L.modElem.style; for (m = e.length, c = 0; c \u003c m; c++)if (h = e[c], v = L.style[h], u(h, \"-\") && (h = p(h)), L.style[h] !== n) { if (i || r(o, \"undefined\")) return a(), \"pfx\" !== t || h; try { L.style[h] = o } catch (e) { } if (L.style[h] !== v) return a(), \"pfx\" !== t || h } return a(), !1 } function h(e, t) { return function () { return e.apply(t, arguments) } } function v(e, t, n) { var o; for (var i in e) if (e[i] in t) return !1 === n ? e[i] : (o = t[e[i]], r(o, \"function\") ? h(o, n || t) : o); return !1 } function A(e, t, n, o, i) { var s = e.charAt(0).toUpperCase() + e.slice(1), a = (e + \" \" + z.join(s + \" \") + s).split(\" \"); return r(t, \"string\") || r(t, \"undefined\") ? m(a, t, o, i) : (a = (e + \" \" + x.join(s + \" \") + s).split(\" \"), v(a, t, n)) } function g(e, t, r) { return A(e, n, n, t, r) } var y = [], w = { _version: \"3.7.1\", _config: { classPrefix: \"\", enableClasses: !0, enableJSClass: !0, usePrefixes: !0 }, _q: [], on: function (e, t) { var n = this; setTimeout(function () { t(n[e]) }, 0) }, addTest: function (e, t, n) { y.push({ name: e, fn: t, options: n }) }, addAsyncTest: function (e) { y.push({ name: null, fn: e }) } }, Modernizr = function () { }; Modernizr.prototype = w, Modernizr = new Modernizr; var C = [], b = t.documentElement, S = \"svg\" === b.nodeName.toLowerCase(), _ = \"Moz O ms Webkit\", x = w._config.usePrefixes ? _.toLowerCase().split(\" \") : []; w._domPrefixes = x; var T = w._config.usePrefixes ? \" -webkit- -moz- -o- -ms- \".split(\" \") : [\"\", \"\"]; w._prefixes = T; var E; !function () { var e = {}.hasOwnProperty; E = r(e, \"undefined\") || r(e.call, \"undefined\") ? function (e, t) { return t in e && r(e.constructor.prototype[t], \"undefined\") } : function (t, n) { return e.call(t, n) } }(), w._l = {}, w.on = function (e, t) { this._l[e] || (this._l[e] = []), this._l[e].push(t), Modernizr.hasOwnProperty(e) && setTimeout(function () { Modernizr._trigger(e, Modernizr[e]) }, 0) }, w._trigger = function (e, t) { if (this._l[e]) { var n = this._l[e]; setTimeout(function () { var e; for (e = 0; e \u003c n.length; e++)(0, n[e])(t) }, 0), delete this._l[e] } }, Modernizr._q.push(function () { w.addTest = i }); var P = function () { function e(e, r) { var o; return !!e && (r && \"string\" != typeof r || (r = s(r || \"div\")), e = \"on\" + e, o = e in r, !o && t && (r.setAttribute || (r = s(\"div\")), r.setAttribute(e, \"\"), o = \"function\" == typeof r[e], r[e] !== n && (r[e] = n), r.removeAttribute(e)), o) } var t = !(\"onblur\" in b); return e }(); w.hasEvent = P; var k = function () { var t = e.matchMedia || e.msMatchMedia; return t ? function (e) { var n = t(e); return n && n.matches || !1 } : function (t) { var n = !1; return l(\"@media \" + t + \" { #modernizr { position: absolute; } }\", function (t) { n = \"absolute\" === (e.getComputedStyle ? e.getComputedStyle(t, null) : t.currentStyle).position }), n } }(); w.mq = k; var B = function (e, t) { var n = !1, r = s(\"div\"), o = r.style; if (e in o) { var i = x.length; for (o[e] = t, n = o[e]; i-- && !n;)o[e] = \"-\" + x[i] + \"-\" + t, n = o[e] } return \"\" === n && (n = !1), n }; w.prefixedCSSValue = B; var z = w._config.usePrefixes ? _.split(\" \") : []; w._cssomPrefixes = z; var O = { elem: s(\"modernizr\") }; Modernizr._q.push(function () { delete O.elem }); var L = { style: O.elem.style }; Modernizr._q.unshift(function () { delete L.style }), w.testAllProps = A, w.testAllProps = g; w.testProp = function (e, t, r) { return m([e], n, t, r) }, w.testStyles = l; Modernizr.addTest(\"customelements\", \"customElements\" in e), Modernizr.addTest(\"history\", function () { var t = navigator.userAgent; return (-1 === t.indexOf(\"Android 2.\") && -1 === t.indexOf(\"Android 4.0\") || -1 === t.indexOf(\"Mobile Safari\") || -1 !== t.indexOf(\"Chrome\") || -1 !== t.indexOf(\"Windows Phone\") || \"file:\" === location.protocol) && (e.history && \"pushState\" in e.history) }), Modernizr.addTest(\"pointerevents\", function () { var e = !1, t = x.length; for (e = Modernizr.hasEvent(\"pointerdown\"); t-- && !e;)P(x[t] + \"pointerdown\") && (e = !0); return e }); var N = new Boolean(\"postMessage\" in e); N.structuredclones = !0; try { e.postMessage({ toString: function () { N.structuredclones = !1 } }, \"*\") } catch (e) { } Modernizr.addTest(\"postmessage\", N), Modernizr.addTest(\"webgl\", function () { return \"WebGLRenderingContext\" in e }); var R = !1; try { R = \"WebSocket\" in e && 2 === e.WebSocket.CLOSING } catch (e) { } Modernizr.addTest(\"websockets\", R), Modernizr.addTest(\"cssanimations\", g(\"animationName\", \"a\", !0)), function () { Modernizr.addTest(\"csscolumns\", function () { var e = !1, t = g(\"columnCount\"); try { e = !!t, e && (e = new Boolean(e)) } catch (e) { } return e }); for (var e, t, n = [\"Width\", \"Span\", \"Fill\", \"Gap\", \"Rule\", \"RuleColor\", \"RuleStyle\", \"RuleWidth\", \"BreakBefore\", \"BreakAfter\", \"BreakInside\"], r = 0; r \u003c n.length; r++)e = n[r].toLowerCase(), t = g(\"column\" + n[r]), \"breakbefore\" !== e && \"breakafter\" !== e && \"breakinside\" !== e || (t = t || g(n[r])), Modernizr.addTest(\"csscolumns.\" + e, t) }(), Modernizr.addTest(\"flexbox\", g(\"flexBasis\", \"1px\", !0)), Modernizr.addTest(\"picture\", \"HTMLPictureElement\" in e), Modernizr.addAsyncTest(function () { var e, t, n, r = s(\"img\"), o = \"sizes\" in r; !o && \"srcset\" in r ? (t = \"data:image/gif;base64,R0lGODlhAgABAPAAAP///wAAACH5BAAAAAAALAAAAAACAAEAAAICBAoAOw==\", e = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\", n = function () { i(\"sizes\", 2 === r.width) }, r.onload = n, r.onerror = n, r.setAttribute(\"sizes\", \"9px\"), r.srcset = e + \" 1w,\" + t + \" 8w\", r.src = e) : i(\"sizes\", o) }), Modernizr.addTest(\"srcset\", \"srcset\" in s(\"img\")), Modernizr.addTest(\"webworkers\", \"Worker\" in e), function () { var e, t, n, o, i, s, a; for (var l in y) if (y.hasOwnProperty(l)) { if (e = [], t = y[l], t.name && (e.push(t.name.toLowerCase()), t.options && t.options.aliases && t.options.aliases.length)) for (n = 0; n \u003c t.options.aliases.length; n++)e.push(t.options.aliases[n].toLowerCase()); for (o = r(t.fn, \"function\") ? t.fn() : t.fn, i = 0; i \u003c e.length; i++)s = e[i], a = s.split(\".\"), 1 === a.length ? Modernizr[a[0]] = o : (!Modernizr[a[0]] || Modernizr[a[0]] instanceof Boolean || (Modernizr[a[0]] = new Boolean(Modernizr[a[0]])), Modernizr[a[0]][a[1]] = o), C.push((o ? \"\" : \"no-\") + a.join(\"-\")) } }(), o(C), delete w.addTest, delete w.addAsyncTest; for (var j = 0; j \u003c Modernizr._q.length; j++)Modernizr._q[j](); e.Modernizr = Modernizr }(window, document);\n    (function ($) {\n\n        \"use strict\";\n\n\n        /* Screens Shot Slider\n        =============================*/\n        var owl = $(\".touch-slider\");\n        owl.owlCarousel({\n            center: true,\n            navigation: false,\n            pagination: true,\n            slideSpeed: 1000,\n            stopOnHover: true,\n            autoPlay: true,\n            touchDrag: true,\n            responsive: {\n                0: {\n                    items: 1\n                },\n\n                480: {\n                    items: 2\n                },\n\n                768: {\n                    items: 3\n                },\n\n                992: {\n                    items: 4\n                },\n\n                1199: {\n                    items: 5\n                }\n            },\n            items: 5,\n            itemsDesktopSmall: [1024, 3],\n            itemsTablet: [600, 1],\n            itemsMobile: [479, 1]\n        });\n\n\n        // for menu scroll \n        $('.page-scroll').click(function () {\n            var hash = this.hash;\n            var position = $(hash).offset().top - 60;\n            $('html').animate({\n                scrollTop: position\n            }, 900);\n        });\n\n\n        /* \n         One Page Navigation & wow js\n         ========================================================================== */\n\n        $(window).on('load', function () {\n\n            $('body').scrollspy({\n                target: '.navbar-collapse',\n                offset: 195\n            });\n\n            $(window).on('scroll', function () {\n                if ($(window).scrollTop() > 100) {\n                    $('.fixed-top').addClass('menu-bg');\n                } else {\n                    $('.fixed-top').removeClass('menu-bg');\n                }\n            });\n\n        });\n\n        /* Auto Close Responsive Navbar on Click\n        ========================================================*/\n        function close_toggle() {\n            if ($(window).width() \u003c= 768) {\n                $('.navbar-collapse a').on('click', function () {\n                    $('.navbar-collapse').collapse('hide');\n                });\n            }\n            else {\n                $('.navbar .navbar-inverse a').off('click');\n            }\n        }\n        close_toggle();\n        $(window).resize(close_toggle);\n\n        /* Nivo Lightbox\n        ========================================================*/\n        $('.lightbox').nivoLightbox({\n            effect: 'fadeScale',\n            keyboardNav: true,\n        });\n\n    });\n\n    /*\n     * jQuery One Page Nav Plugin\n     * http://github.com/davist11/jQuery-One-Page-Nav\n     *\n     * Copyright (c) 2010 Trevor Davis (http://trevordavis.net)\n     * Dual licensed under the MIT and GPL licenses.\n     * Uses the same license as jQuery, see:\n     * http://jquery.org/license\n     *\n     * @version 3.0.0\n     *\n     * Example usage:\n     * $('#nav').onePageNav({\n     *   currentClass: 'current',\n     *   changeHash: false,\n     *   scrollSpeed: 750\n     * });\n     */\n\n    (function ($, window, document, undefined) {\n\n        // our plugin constructor\n        var OnePageNav = function (elem, options) {\n            this.elem = elem;\n            this.$elem = $(elem);\n            this.options = options;\n            this.metadata = this.$elem.data('plugin-options');\n            this.$win = $(window);\n            this.sections = {};\n            this.didScroll = false;\n            this.$doc = $(document);\n            this.docHeight = this.$doc.height();\n        };\n\n        // the plugin prototype\n        OnePageNav.prototype = {\n            defaults: {\n                navItems: 'a',\n                currentClass: 'current',\n                changeHash: false,\n                easing: 'swing',\n                filter: '',\n                scrollSpeed: 750,\n                scrollThreshold: 0.5,\n                begin: false,\n                end: false,\n                scrollChange: false\n            },\n\n            init: function () {\n                // Introduce defaults that can be extended either\n                // globally or using an object literal.\n                this.config = $.extend({}, this.defaults, this.options, this.metadata);\n\n                this.$nav = this.$elem.find(this.config.navItems);\n\n                //Filter any links out of the nav\n                if (this.config.filter !== '') {\n                    this.$nav = this.$nav.filter(this.config.filter);\n                }\n\n                //Handle clicks on the nav\n                this.$nav.on('click.onePageNav', $.proxy(this.handleClick, this));\n\n                //Get the section positions\n                this.getPositions();\n\n                //Handle scroll changes\n                this.bindInterval();\n\n                //Update the positions on resize too\n                this.$win.on('resize.onePageNav', $.proxy(this.getPositions, this));\n\n                return this;\n            },\n\n            adjustNav: function (self, $parent) {\n                self.$elem.find('.' + self.config.currentClass).removeClass(self.config.currentClass);\n                $parent.addClass(self.config.currentClass);\n            },\n\n            bindInterval: function () {\n                var self = this;\n                var docHeight;\n\n                self.$win.on('scroll.onePageNav', function () {\n                    self.didScroll = true;\n                });\n\n                self.t = setInterval(function () {\n                    docHeight = self.$doc.height();\n\n                    //If it was scrolled\n                    if (self.didScroll) {\n                        self.didScroll = false;\n                        self.scrollChange();\n                    }\n\n                    //If the document height changes\n                    if (docHeight !== self.docHeight) {\n                        self.docHeight = docHeight;\n                        self.getPositions();\n                    }\n                }, 250);\n            },\n\n            getHash: function ($link) {\n                return $link.attr('href').split('#')[1];\n            },\n\n            getPositions: function () {\n                var self = this;\n                var linkHref;\n                var topPos;\n                var $target;\n\n                self.$nav.each(function () {\n                    linkHref = self.getHash($(this));\n                    $target = $('#' + linkHref);\n\n                    if ($target.length) {\n                        topPos = $target.offset().top;\n                        self.sections[linkHref] = Math.round(topPos);\n                    }\n                });\n            },\n\n            getSection: function (windowPos) {\n                var returnValue = null;\n                var windowHeight = Math.round(this.$win.height() * this.config.scrollThreshold);\n\n                for (var section in this.sections) {\n                    if ((this.sections[section] - windowHeight) \u003c windowPos) {\n                        returnValue = section;\n                    }\n                }\n\n                return returnValue;\n            },\n\n            handleClick: function (e) {\n                var self = this;\n                var $link = $(e.currentTarget);\n                var $parent = $link.parent();\n                var newLoc = '#' + self.getHash($link);\n\n                if (!$parent.hasClass(self.config.currentClass)) {\n                    //Start callback\n                    if (self.config.begin) {\n                        self.config.begin();\n                    }\n\n                    //Change the highlighted nav item\n                    self.adjustNav(self, $parent);\n\n                    //Removing the auto-adjust on scroll\n                    self.unbindInterval();\n\n                    //Scroll to the correct position\n                    self.scrollTo(newLoc, function () {\n                        //Do we need to change the hash?\n                        if (self.config.changeHash) {\n                            window.location.hash = newLoc;\n                        }\n\n                        //Add the auto-adjust on scroll back in\n                        self.bindInterval();\n\n                        //End callback\n                        if (self.config.end) {\n                            self.config.end();\n                        }\n                    });\n                }\n\n                e.preventDefault();\n            },\n\n            scrollChange: function () {\n                var windowTop = this.$win.scrollTop();\n                var position = this.getSection(windowTop);\n                var $parent;\n\n                //If the position is set\n                if (position !== null) {\n                    $parent = this.$elem.find('a[href$=\"#' + position + '\"]').parent();\n\n                    //If it's not already the current section\n                    if (!$parent.hasClass(this.config.currentClass)) {\n                        //Change the highlighted nav item\n                        this.adjustNav(this, $parent);\n\n                        //If there is a scrollChange callback\n                        if (this.config.scrollChange) {\n                            this.config.scrollChange($parent);\n                        }\n                    }\n                }\n            },\n\n            scrollTo: function (target, callback) {\n                var offset = $(target).offset().top;\n\n                $('html, body').animate({\n                    scrollTop: offset\n                }, this.config.scrollSpeed, this.config.easing, callback);\n            },\n\n            unbindInterval: function () {\n                clearInterval(this.t);\n                this.$win.unbind('scroll.onePageNav');\n            }\n        };\n      \n      \n\n        OnePageNav.defaults = OnePageNav.prototype.defaults;\n\n        $.fn.onePageNav = function (options) {\n            return this.each(function () {\n                new OnePageNav(this, options).init();\n            });\n        };\n\n    });\n\n\n    //jQuery to collapse the navbar on scroll\n    window.addEventListener('scroll', function () {\n        if (window.pageYOffset > 50) {\n            $(\".navbar-fixed-top\").addClass(\"top-nav-collapse\");\n        } else {\n            $(\".navbar-fixed-top\").removeClass(\"top-nav-collapse\");\n        }\n    });\n    //jQuery for page scrolling feature - requires jQuery Easing plugin\n    $(function () {\n\n        $('a.page-scroll[href*=\"#\"]:not([href=\"#\"])').on('click', function () {\n            if (location.pathname.replace(/^\\//, '') == this.pathname.replace(/^\\//, '') && location.hostname == this.hostname) {\n                var target = $(this.hash);\n                target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');\n                if (target.length) {\n                    $('html, body').animate({\n                        scrollTop: (target.offset().top - 80)\n                    }, 1500, \"easeInOutExpo\");\n                    return false;\n                }\n            }\n        });\n\n    });\n  // sticky menu \n$(window).on('scroll', function (event) {\n    var scroll = $(window).scrollTop();\n    if (scroll \u003c 20) {\n        $(\".navbar-area\").removeClass(\"sticky menu-bg\");\n    } else {\n        $(\".navbar-area\").addClass(\"sticky menu-bg\");\n    }\n    //===== Section Menu Active\n    var scrollLink = $('.page-scroll');\n    var scrollbarLocation = $(this).scrollTop();\n    scrollLink.each(function () {\n        var sectionOffset = $(this.hash).offset().top - 73;\n        if (sectionOffset \u003c= scrollbarLocation) {\n            $(this).parent().addClass('active');\n            $(this).parent().siblings().removeClass('active');\n        }\n    });\n});\n\n\n//checklist modal \n  function showModal() {\n        \n    document.getElementById(\"checklist-modal\").style.display = \"block\";\n    \n  }\n\n  function closeModal() {\n    document.getElementById(\"checklist-modal\").style.display = \"none\";\n  }\n\n  window.onclick = function (event) {\n    var modal = document.getElementById(\"checklist-modal\");\n    if (event.target == modal) {\n      modal.style.display = \"none\";\n    }\n  }\n\n//===== close navbar-collapse when a  clicked\n\n$(\".navbar-nav a\").on('click', function () {\n    $(\".navbar-collapse\").removeClass(\"show\");\n});\n\n$(\".navbar-toggler\").on('click', function () {\n    $(this).toggleClass(\"active\");\n});\n\n$(\".navbar-nav a\").on('click', function () {\n    $(\".navbar-toggler\").removeClass('active');\n}); \n\n            const steps = document.querySelectorAll('input[name=\"step\"]');\n            let currentStep = 0;\n\n            function updateButtons() {\n                const buttons = document.getElementsByTagName('button');\n                for (let button of buttons) {\n                    if (button.id === 'prev-button') {\n                        button.disabled = currentStep === 0;\n                    } else if (button.id === 'next-button') {\n                      if(currentStep === steps.length - 1){\n                      button.outerHTML = '\u003cbutton id=\"next-button\" onclick=\"closeModal()\">\u003cspan>Finish\u003c/span>\u003c/button>';\n                      }else{\n                        button.outerHTML = '\u003cbutton id=\"next-button\" onclick=\"moveStep(1)\">\u003cspan>&#9654;\u003c/span>\u003c/button>'\n                      }\n                       \n                    }\n                }\n            }\n\n            function moveStep(direction) {\n                steps[currentStep].checked = false;\n                currentStep += direction;\n                steps[currentStep].checked = true;\n                updateButtons();\n            }\n\n            // Initial button state\n            updateButtons();\n}\n// Replace client flow with bearer token flow\nlet capturedScopes = [];\n\nconsole.log('[Scopes] Script loaded');\n\n// Extract scopes from the Tippy dropdown after clicking\nfunction captureScopesFromDropdown() {\n  console.log('[Scopes] captureScopesFromDropdown called');\n  \n  if (capturedScopes.length > 0) {\n    console.log('[Scopes] Already have scopes:', capturedScopes);\n    return;\n  }\n  \n  const scopesButton = document.querySelector('.rm-APIAuth [class*=\"oauth-scopes\"] .Dropdown-toggle');\n  console.log('[Scopes] Scopes button found:', !!scopesButton);\n  \n  if (!scopesButton) return;\n  \n  // Click to open the Tippy dropdown\n  console.log('[Scopes] Clicking dropdown to reveal scopes...');\n  scopesButton.click();\n  \n  setTimeout(() => {\n    // Find scope items in the Tippy popup - look for Menu-Item elements\n    const menuItems = document.querySelectorAll('.tippy-box .Menu-Item, [data-tippy-root] .Menu-Item');\n    console.log('[Scopes] Menu items found:', menuItems.length);\n    \n    menuItems.forEach(item => {\n      // Get scope name from the scopes-text span\n      const nameEl = item.querySelector('[class*=\"oauth-scopes-text\"]');\n      const descEl = item.querySelector('.Menu-Item-description');\n      \n      const name = nameEl?.textContent?.trim();\n      const description = descEl?.textContent?.trim() || `OAuth2 scope: ${name}`;\n      \n      console.log('[Scopes] Found scope:', name, '-', description);\n      \n      if (name && !capturedScopes.find(s => s.name === name)) {\n        capturedScopes.push({ name, description });\n      }\n    });\n    \n    console.log('[Scopes] Captured scopes:', capturedScopes);\n    \n    // Close the dropdown\n    scopesButton.click();\n  }, 0);\n}\n\n// Create custom scopes pills\nfunction createScopesPills(scopes) {\n  const container = document.createElement('div');\n  container.className = 'custom-scopes';\n  \n  if (scopes.length === 0) {\n    container.innerHTML = '\u003cdiv class=\"custom-scopes-label\">No scopes required\u003c/div>';\n    return container;\n  }\n  \n  const label = document.createElement('div');\n  label.className = 'custom-scopes-label';\n  label.textContent = 'Scopes';\n  container.appendChild(label);\n  \n  scopes.forEach(scope => {\n    const pill = document.createElement('span');\n    pill.className = 'scope-pill';\n    pill.textContent = scope.name;\n    \n    const tooltip = document.createElement('span');\n    tooltip.className = 'scope-tooltip';\n    tooltip.textContent = scope.description;\n    pill.appendChild(tooltip);\n    \n    container.appendChild(pill);\n  });\n  \n  return container;\n}\n\n// Inject scopes after token input\nfunction injectCustomScopes() {\n  console.log('[Scopes] injectCustomScopes called');\n  const tokenRow = document.querySelector('.InputGroup-oauth-flow-token');\n  const existing = document.querySelector('.custom-scopes');\n  \n  console.log('[Scopes] Token row found:', !!tokenRow);\n  console.log('[Scopes] Existing custom scopes:', !!existing);\n  console.log('[Scopes] Captured scopes count:', capturedScopes.length);\n  \n  if (tokenRow && !existing && capturedScopes.length > 0) {\n    console.log('[Scopes] Injecting scopes pills...');\n    tokenRow.after(createScopesPills(capturedScopes));\n  } else if (tokenRow && !existing && capturedScopes.length === 0) {\n    console.log('[Scopes] No scopes to inject');\n  }\n}\n\n// Click \"Use Your Own Token\" button\nfunction clickUseOwnToken() {\n  console.log('[Scopes] clickUseOwnToken called');\n  const buttons = document.querySelectorAll('.rm-APIAuth button');\n  console.log('[Scopes] Found buttons:', buttons.length);\n  \n  for (const btn of buttons) {\n    console.log('[Scopes] Button text:', btn.textContent.trim());\n    if (btn.textContent.trim() === 'Use Your Own Token') {\n      console.log('[Scopes] Clicking \"Use Your Own Token\" button');\n      btn.click();\n      return true;\n    }\n  }\n  console.log('[Scopes] \"Use Your Own Token\" button not found');\n  return false;\n}\n\n// Main flow - runs on each page load\nfunction initBearerTokenMode() {\n  console.log('[Scopes] initBearerTokenMode called');\n  capturedScopes = []; // Reset for new page\n  \n  const scopesDropdown = document.querySelector('.rm-APIAuth [class*=\"oauth-scopes\"]');\n  const clientFlow = document.querySelector('.InputGroup-oauth-flow-client');\n  \n  console.log('[Scopes] Scopes dropdown found:', !!scopesDropdown);\n  console.log('[Scopes] Client flow found:', !!clientFlow);\n  \n  // First capture scopes while original dropdown exists\n  if (scopesDropdown) {\n    captureScopesFromDropdown();\n  }\n  \n  // Delay to allow scope capture (dropdown opens, captures, closes), then switch to token mode\n  setTimeout(() => {\n    console.log('[Scopes] After 500ms delay, captured scopes:', capturedScopes);\n    if (document.querySelector('.InputGroup-oauth-flow-client')) {\n      clickUseOwnToken();\n    }\n    \n    // Inject custom scopes after switching\n    setTimeout(() => {\n      console.log('[Scopes] After 400ms delay, injecting...');\n      if (document.querySelector('.InputGroup-oauth-flow-token')) {\n        injectCustomScopes();\n      } else {\n        console.log('[Scopes] Token flow not found after switching');\n      }\n    }, 400);\n  }, 500);\n}\n\n// Use ReadMe's pageLoad event\n$(window).on('pageLoad', () => {\n  console.log('[Scopes] pageLoad event fired');\n  initBearerTokenMode();\n});\n\n// Also run on initial load\n$(document).ready(() => {\n  console.log('[Scopes] document.ready fired');\n  initBearerTokenMode();\n});\n\n\n\n\n// Track the current URL path to detect changes\nvar lastPath = window.location.pathname;\n\n// Simple banner display function\nfunction displayBanner() {\n    // Get the container element\n    var contentElement = document.getElementById('hub-search-results');\n    if (!contentElement) return;\n    \n    // Update lastPath for future comparisons\n    lastPath = window.location.pathname;\n    \n    // Remove any existing banners first\n    var existingRecipeCallout = contentElement.querySelector('.onetrust-custom-callout');\n  \tvar existingCMPCallout = contentElement.querySelector('.onetrust-custom-callout-cmp');    \n\t\tvar existingOASCallout = contentElement.querySelector('.onetrust-custom-callout-oas');\n\n\n    \n    if (existingRecipeCallout && existingRecipeCallout.parentElement) {\n        existingRecipeCallout.parentElement.removeChild(existingRecipeCallout);\n    }\n    if (existingCMPCallout && existingCMPCallout.parentElement) {\n        existingCMPCallout.parentElement.removeChild(existingCMPCallout);\n    }\n\t\tif (existingOASCallout && existingOASCallout.parentElement) {\n        existingOASCallout.parentElement.removeChild(existingOASCallout);\n    }\n    \n    // Get current path\n    var path = window.location.pathname;\n    \n    // New element for banner\n    var newElement = document.createElement('div');\n    newElement.className = 'rm-Markdown markdown-body';\n    newElement.setAttribute('data-testid', 'RDMD');\n    \n    // Choose banner based on path\n    if (path === '/onetrust/recipes') {\n        //console.log('Displaying Recipe banner');\n        newElement.innerHTML = `\u003cblockquote class=\"callout callout_warning onetrust-custom-callout\" theme=\"🚧\">\n            \u003cp>The code samples provided here are intended as starting points for various use cases. We encourage you to thoroughly test any code. Use of these samples is at your own risk. Please note that OneTrust does not offer implementation support for these Recipes but welcomes your feedback and suggestions for new Recipes. If you want to provide feedback, please leverage the Help widget in the bottom right corner of your screen.\u003c/p>\n        \u003c/blockquote>`;\n        contentElement.insertBefore(newElement, contentElement.firstChild);\n    } else if (path.includes('/docs/')) {\n        //console.log('Displaying CMP banner');\n        newElement.innerHTML = `\u003cblockquote class=\"callout callout_error onetrust-custom-callout-cmp\" theme=\"❗\">\n            \u003cp style=\"color: black;\">We strongly recommend all CMP users deploying Mobile &amp; OTT/CTV SDKs to migrate to our next generation of CMP SDKs for a seamless experience and enhanced efficiency and scalability. For more information, see \u003ca href=\"https://developer.onetrust.com/onetrust/docs/onetrusts-next-generation-cmp-sdks\" target=\"_blank\" rel=\"noopener noreferrer\">OneTrust Next Generation CMP SDKs\u003c/a>.\u003c/p>\n        \u003c/blockquote>`;\n        contentElement.insertBefore(newElement, contentElement.firstChild);\n    } else {\n        //console.log('No banner needed for path: ' + path);\n    }\n}\n\n// Check if URL has changed\nfunction checkURLChange() {\n    var currentPath = window.location.pathname;\n    if (currentPath !== lastPath) {\n        //console.log('URL changed from', lastPath, 'to', currentPath);\n        setTimeout(displayBanner, 500);\n    }\n}\n\n// Hook into history API to detect client-side navigation\nfunction addHistoryChangeListener() {\n    // Store references to original history methods\n    var originalPushState = history.pushState;\n    var originalReplaceState = history.replaceState;\n    \n    // Override history.pushState\n    history.pushState = function() {\n        originalPushState.apply(this, arguments);\n        setTimeout(displayBanner, 500);\n    };\n    \n    // Override history.replaceState\n    history.replaceState = function() {\n        originalReplaceState.apply(this, arguments);\n        setTimeout(displayBanner, 500);\n    };\n}\n\n// Set up periodic URL checking\nfunction startURLMonitoring() {\n    // Check URL every 500ms\n    setInterval(checkURLChange, 500);\n    \n    // Add listener for click events on anchor tags\n    document.addEventListener('click', function(e) {\n        if (e.target.tagName === 'A' || e.target.closest('a')) {\n            // A link was clicked, check for URL change after a delay\n            setTimeout(checkURLChange, 500);\n        }\n    });\n}\n\n// Set up one-time event listeners\ndocument.addEventListener('DOMContentLoaded', function() {\n    // First attempt when DOM is ready with 1000ms delay\n    setTimeout(displayBanner, 1000);\n    \n    // Hook into history API\n    addHistoryChangeListener();\n    \n    // Start URL monitoring\n    startURLMonitoring();\n    \n    // Set up a single listener for popstate (browser back/forward)\n    window.addEventListener('popstate', function() {\n        // Add delay before showing banner after navigation\n        setTimeout(displayBanner, 500);\n    });\n});\n\n// Add banner when page load is complete (backup)\nwindow.addEventListener('load', function() {\n    setTimeout(displayBanner, 1000);\n});\n\n\n// Brave Shield Warning \nfunction isBraveShieldsUp() {\n    if (window.navigator.brave != undefined) {\n        if (window.navigator.brave.isBrave.name == \"isBrave\") {\n            //if (!window.navigator.plugins[0][0].type){\n            document.getElementById(\"brave-warning\").style.display = \"block\";\n            return true;\n            // }\n        } else {\n            return false;\n        }\n    } else {\n        return false;\n    }\n}\nisBraveShieldsUp();\n\n// start of x-onetrust\n// Creates x-onetrust Tags in UI \n// function createTags(tags, data, oasUrl, callback) {\n//     /*\n//     \"x-onetrust\": {\n//        \"highly-available\": true,\n//        \"highly-available-link\": \"Helpful Link for HA\",\n//        \"release-status\": \"Public Preview | Sunset Period | Deprecated\",\n//        \"release-status-link\": \"link to changelog if needed\",\n//        \"spec-label\": \"OpenAPI 3.1.0\"\n//      }\n//      */\n//     const fragment = document.createDocumentFragment();\n//     const divTags = document.createElement(\"div\");\n//     divTags.className = \"ot-tags-container\";\n//     divTags.id = \"ot-tags-container\";\n\n//     // Check if highly-available is true\n//     if (tags && tags[\"highly-available\"] === true) {\n//         const haSpan = document.createElement(\"span\");\n//         haSpan.className = \"ot-tags ot-tags-ha\";\n//         haSpan.onclick = function () {\n//             window.open(\"https://developer.onetrust.com/onetrust/reference/consent-preference-management-api-service-level-objectives\", \"_blank\");\n//         };\n//         haSpan.setAttribute(\"style\", \"float: right;margin-top: 10px;\");\n//         haSpan.setAttribute(\"apimethod_version\", \"\");\n//         haSpan.textContent = \"Highly Available\";\n//         divTags.appendChild(haSpan);\n//     }\n\n//     // Check if release-status exists\n//     if (tags && tags[\"release-status\"]) {\n//         const rsSpan = document.createElement(\"span\");\n//         rsSpan.className = \"ot-tags ot-tags-rs\";\n//         rsSpan.onclick = function () {\n//             if (tags[\"release-status-link\"]) {\n//                 window.open(tags[\"release-status-link\"], \"_blank\");\n//             }\n//         };\n//         rsSpan.setAttribute(\"style\", \"float: right;margin-top: 10px;\");\n//         rsSpan.setAttribute(\"apimethod_version\", \"\");\n//         rsSpan.textContent = tags[\"release-status\"];\n//         divTags.appendChild(rsSpan);\n\n//         // Add hover CSS\n//         rsSpan.addEventListener('mouseenter', function () {\n//             if (tags[\"release-status-link\"]) {\n//                 rsSpan.style.background = \"firebrick\";\n//                 rsSpan.style.cursor = \"pointer\";\n//             }\n//         });\n\n//         rsSpan.addEventListener('mouseleave', function () {\n//             if (tags[\"release-status-link\"]) {\n//                 rsSpan.style.background = \"\"; // Reset to default\n//                 rsSpan.style.cursor = \"\"; // Reset to default\n//             }\n//         });\n//     }\n\n//     // Check if spec version exists\n//     if (data[\"x-onetrust\"][\"spec-label\"]) {\n//         const slSpan = document.createElement(\"span\");\n//         slSpan.className = \"ot-tags ot-tags-sl\";\n//         slSpan.onclick = function () {\n//             window.open(oasUrl, \"_blank\"); // Replace with the actual hyperlink\n//         };\n//         slSpan.setAttribute(\"style\", \"float: right;margin-top: 10px;\");\n//         slSpan.setAttribute(\"apimethod_version\", \"\");\n//         slSpan.textContent = data[\"x-onetrust\"][\"spec-label\"];\n//         divTags.appendChild(slSpan);\n//     }\n\n//     fragment.appendChild(divTags);\n\n//     // Call the callback function with the created element\n//     callback(fragment);\n// }\n\n\n// Creates Scopes Element in UI \nfunction createScopeElement(scopes, data, callback) {\n    // Create a new div element to contain the scopes\n    const newElement = document.createElement('div');\n    newElement.classList.add('Info-infoBadge3luOwOnjfNiR');\n    newElement.setAttribute('role', '');\n\n    // Create the heading for scopes\n    const heading = document.createElement('div');\n    heading.classList.add('APISectionHeader-heading4MUMLbp4_nLs');\n    heading.textContent = 'SCOPES';\n    heading.title = 'The scope signifies the level of access granted to the API endpoint. It is recommended to always choose the scope with the least access to minimize security risks.';\n    newElement.appendChild(heading);\n\n    // Create a container for badges\n    const badgesContainer = document.createElement('div');\n    badgesContainer.classList.add('badges-container');\n    badgesContainer.style.paddingLeft = '3px';\n\n    // Create and append badge elements for each scope\n    for (const scope of Object.values(scopes)) {\n        const badge = document.createElement('span');\n        badge.classList.add('Badge', 'Badge_light', 'Badge_circular');\n        badge.style.marginLeft = '3px';\n        badge.textContent = scope;\n        badge.title = data.components.securitySchemes.oauth2.flows.clientCredentials.scopes[scope];\n        badgesContainer.appendChild(badge);\n    }\n\n    newElement.appendChild(badgesContainer);\n\n    // Call the callback function with the created element\n    callback(newElement);\n}\n\n\n// Check for data-raycast-oas attribute and invoke tag/scope rendering\n// If data-raycast-oas is missing, \"false\", or \"[object Object]\", fetch \u003ccurrent URL>?json=on and use doc.api.apiSetting as fallback\n(async function resolveOasAndRender() {\n    let oasValue = null;\n    let operationId = null;\n\n    // Check for data-raycast-oas\n    const raycastOas = document.querySelector('[data-raycast-oas]');\n    const raycastOperationId = document.querySelector('[data-raycast-operation-id]');\n\n    if (raycastOas && raycastOas.dataset.raycastOas !== 'false' && raycastOas.dataset.raycastOas !== '[object Object]') {\n        oasValue = raycastOas.dataset.raycastOas;\n        operationId = raycastOperationId?.dataset.raycastOperationId;\n    }\n\n    // If no valid OAS value found, try to get it from the URL\n    if (!oasValue) {\n        const urlParams = new URLSearchParams(window.location.search);\n        if (urlParams.has('json') && urlParams.get('json') === 'on') {\n            try {\n                const response = await fetch(window.location.href);\n                const data = await response.json();\n                oasValue = data.api.apiSetting;\n                operationId = urlParams.get('operationId');\n            } catch (error) {\n                console.error('Error fetching JSON:', error);\n            }\n        }\n    }\n\n    if (oasValue) {\n        const oasUrl = URLValidator.constructOasUrl(oasValue);\n        await printScopesEnhanced(oasUrl, operationId);\n    }\n})();\n\n// Gets the Scopes from the OAS spec\nasync function printScopesEnhanced(oasUrl, operationIdToFind) {\n    try {\n        const response = await fetch(oasUrl);\n        if (!response.ok) {\n            throw new Error('Failed to fetch OpenAPI spec');\n        }\n        const data = await response.json();\n        const paths = data.paths;\n        for (const [path, pathValue] of Object.entries(paths)) {\n            for (const [method, methodValue] of Object.entries(pathValue)) {\n                if (methodValue.operationId && methodValue.operationId.toLowerCase() === operationIdToFind.toLowerCase()) {\n                    if (methodValue.security && methodValue.security.length > 0) {\n                        for (const security of methodValue.security) {\n                            for (const [securityKey, scopes] of Object.entries(security)) {\n                                if (securityKey === 'oauth2' && scopes.length > 0) {\n                                    await new Promise(r => setTimeout(r, 200));\n                                    createScopeElement(scopes, data, function (newElement) {\n                                        const elementToReplace = document.querySelector('.Info-infoBadge3luOwOnjfNiR');\n                                        if (elementToReplace) {\n                                            elementToReplace.parentNode.replaceChild(newElement, elementToReplace);\n                                        }\n                                    });\n                                    return;\n                                }\n                            }\n                        }\n                    }\n                    return;\n                }\n            }\n        }\n    } catch (error) {\n        console.error('Error fetching or processing OpenAPI spec:', error);\n    }\n}\n// end of x-onetrust\n\n\n// Scripts for Partner Page\n// Guard to ensure jQuery is loaded before running the UI enhancement block\nif (typeof window.jQuery !== 'undefined') {\n    (function ($) {\n\n        \"use strict\";\n\n        /* Page Loader active\n        ========================================================*/\n        $('#preloader').fadeOut();\n\n\n        /* Screens Shot Slider\n        =============================*/\n        var owl = $(\".touch-slider\");\n        owl.owlCarousel({\n            center: true,\n            navigation: false,\n            pagination: true,\n            slideSpeed: 1000,\n            stopOnHover: true,\n            autoPlay: true,\n            touchDrag: true,\n            responsive: {\n                0: {\n                    items: 1\n                },\n\n                480: {\n                    items: 2\n                },\n\n                768: {\n                    items: 3\n                },\n\n                992: {\n                    items: 4\n                },\n\n                1199: {\n                    items: 5\n                }\n            },\n            items: 5,\n            itemsDesktopSmall: [1024, 3],\n            itemsTablet: [600, 1],\n            itemsMobile: [479, 1]\n        });\n\n\n        // sticky menu \n        $(window).on('scroll', function (event) {\n            var scroll = $(window).scrollTop();\n            if (scroll \u003c 20) {\n                $(\".navbar-area\").removeClass(\"sticky menu-bg\");\n            } else {\n                $(\".navbar-area\").addClass(\"sticky menu-bg\");\n            }\n        });\n\n        // for menu scroll \n        $('.page-scroll').click(function () {\n            var hash = this.hash;\n            var position = $(hash).offset().top - 60;\n            $('html').animate({\n                scrollTop: position\n            }, 900);\n        });\n\n        //===== Section Menu Active\n\n        var scrollLink = $('.page-scroll');\n        // Active link switching\n        $(window).scroll(function () {\n            var scrollbarLocation = $(this).scrollTop();\n\n            scrollLink.each(function () {\n\n                var sectionOffset = $(this.hash).offset().top - 73;\n\n                if (sectionOffset \u003c= scrollbarLocation) {\n                    $(this).parent().addClass('active');\n                    $(this).parent().siblings().removeClass('active');\n                }\n            });\n        });\n\n\n        //===== close navbar-collapse when a  clicked\n\n        $(\".navbar-nav a\").on('click', function () {\n            $(\".navbar-collapse\").removeClass(\"show\");\n        });\n\n        $(\".navbar-toggler\").on('click', function () {\n            $(this).toggleClass(\"active\");\n        });\n\n        $(\".navbar-nav a\").on('click', function () {\n            $(\".navbar-toggler\").removeClass('active');\n        });\n\n\n\n        /* \n         Back Top Link\n         ========================================================================== */\n        var offset = 200;\n        var duration = 500;\n        $(window).scroll(function () {\n            if ($(this).scrollTop() > offset) {\n                $('.back-to-top').fadeIn(400);\n            } else {\n                $('.back-to-top').fadeOut(400);\n            }\n        });\n\n        $('.back-to-top').on('click', function (event) {\n            event.preventDefault();\n            $('html, body').animate({\n                scrollTop: 0\n            }, 600);\n            return false;\n        })\n\n        /* \n         One Page Navigation & wow js\n         ========================================================================== */\n\n        $(window).on('load', function () {\n\n            $('body').scrollspy({\n                target: '.navbar-collapse',\n                offset: 195\n            });\n\n            $(window).on('scroll', function () {\n                if ($(window).scrollTop() > 100) {\n                    $('.fixed-top').addClass('menu-bg');\n                } else {\n                    $('.fixed-top').removeClass('menu-bg');\n                }\n            });\n\n        });\n\n        /* Auto Close Responsive Navbar on Click\n        ========================================================*/\n        function close_toggle() {\n            if ($(window).width() \u003c= 768) {\n                $('.navbar-collapse a').on('click', function () {\n                    $('.navbar-collapse').collapse('hide');\n                });\n            }\n            else {\n                $('.navbar .navbar-inverse a').off('click');\n            }\n        }\n        close_toggle();\n        $(window).resize(close_toggle);\n\n        /* Nivo Lightbox\n        ========================================================*/\n        $('.lightbox').nivoLightbox({\n            effect: 'fadeScale',\n            keyboardNav: true,\n        });\n\n    }(window.jQuery));\n} // end jQuery guard\n\n/*\n// Load Vue.js if not already loaded\nif (typeof Vue === 'undefined') {\n    const script = document.createElement('script');\n    script.src = 'https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.10/vue.min.js';\n    script.onload = initVueComponents;\n    document.head.appendChild(script);\n} else {\n    initVueComponents();\n}\n*/\n\n/*\nfunction initVueComponents() {\n    Vue.component('boardal', {\n        template: `\n        \u003ctransition name=\"boardal\">\n          \u003cdiv class=\"boardal\">\n            \u003cdiv class=\"boardal__mask\" v-if=\"hasMask\" @click=\"clickMask\">\u003c/div>\n            \u003cdiv class=\"boardal__wrapper\">\n              \u003cslot>\u003c/slot>\n              \u003cdiv class=\"boardal__x\" v-if=\"hasX\" @click=\"clickX\">&times;\u003c/div>\n            \u003c/div>\n          \u003c/div>\n        \u003c/transition>\n        `,\n        props: [\n            'hasX',\n            'hasMask',\n            'canClickMask'\n        ],\n        methods: {\n            clickX: function () {\n                this.$emit('toggle')\n            },\n            clickMask: function () {\n                if (this.canClickMask) {\n                    this.$emit('toggle')\n                }\n            }\n        }\n    })\n\n    let vm = new Vue({\n        el: 'main',\n        data: {\n            modal: {\n                isOpen: false,\n                hasMask: true,\n                canClickMask: false,\n                hasX: false\n            },\n            step: 1,\n            max: 1,\n            showDots: true,\n            orientation: 'row',\n            xray: 'hidden',\n            currentSection: null,\n            $sections: []\n        },\n        mounted() {\n            // Initialize any mounted logic here\n            this.$sections = this.$el.querySelectorAll('section');\n            this.max = this.$sections.length;\n            this.setCssVars();\n        },\n        computed: {\n            isFirstStep: function () {\n                return (this.step === 1)\n            },\n            isLastStep: function () {\n                return (this.step === this.max)\n            },\n            hasDots: function () {\n                return (this.max > 1 && this.showDots)\n            },\n            x_multiplier: function () {\n                return (this.orientation === 'row' ? -1 : 0)\n            },\n            y_multiplier: function () {\n                return (this.orientation === 'row' ? 0 : -1)\n            },\n            axis: function () {\n                return (this.orientation === 'row' ? 'row' : 'column')\n            },\n            axisReverse: function () {\n                return (this.orientation === 'row' ? 'row-reverse' : 'column-reverse')\n            },\n            cross: function () {\n                return (this.orientation === 'row' ? 'column' : 'row')\n            },\n            crossReverse: function () {\n                return (this.orientation === 'row' ? 'column-reverse' : 'row-reverse')\n            },\n            nextIcon: function () {\n                return (this.orientation === 'row' ? 'fa-arrow-right' : 'fa-arrow-down')\n            },\n            backIcon: function () {\n                return (this.orientation === 'row' ? 'fa-arrow-left' : 'fa-arrow-up')\n            },\n        },\n        watch: {\n            orientation: 'setCssVars',\n        },\n        methods: {\n            toggleChecklistModal(step) {\n                step = step || 1;\n                this.modal.isOpen = !this.modal.isOpen;\n                if (this.modal.isOpen) {\n                    let self = this;\n                    setTimeout(function () {\n                        self.$sections = self.$el.querySelectorAll('section');\n                        self.max = self.$sections.length;\n                        self.goToStep(step);\n                    }, 1);\n                }\n            },\n            setCssVars() {\n                this.$el.style.setProperty('--x', (((this.step * 100) - 100) * this.x_multiplier) + '%');\n                this.$el.style.setProperty('--y', (((this.step * 100) - 100) * this.y_multiplier) + '%');\n                this.$el.style.setProperty('--axis', this.axis);\n                this.$el.style.setProperty('--axis-reverse', this.axisReverse);\n                this.$el.style.setProperty('--cross', this.cross);\n                this.$el.style.setProperty('--cross-reverse', this.crossReverse);\n            },\n            goToStep(step) {\n                this.step = step > this.max ? this.max : step \u003c 1 ? 1 : step;\n                this.currentSection = this.$sections[this.step - 1];\n                this.$sections.forEach(function (section) {\n                    section.classList.remove('current');\n                });\n                this.currentSection.classList.add('current');\n                this.currentSection.scrollTop = 0;\n                this.setCssVars();\n            },\n            skip(step) {\n                this.step += step;\n                this.goToStep(this.step);\n            },\n            resetChecklist() {\n                this.goToStep(1);\n            },\n            finish() {\n                this.toggleChecklistModal();\n                return (this.max > 1 && this.showDots);\n            }\n        }\n    })\n    }\n*/\n\n//Help Widget\n   // Function to extract data-raycast-oas value from HTML\n        async function getLinksfromSpec() {\n            let oasValue = null;\n\n            // Primary: try the data-raycast-oas attribute\n            const headerElement = document.querySelector('[data-raycast-oas]');\n            if (headerElement) {\n                const attr = headerElement.getAttribute('data-raycast-oas');\n                if (attr && attr !== 'false' && attr !== '[object Object]') {\n                    oasValue = attr.trim();\n                }\n            }\n\n            // Fallback: fetch the current page and get from URL params\n            if (!oasValue) {\n                const urlParams = new URLSearchParams(window.location.search);\n                if (urlParams.has('json') && urlParams.get('json') === 'on') {\n                    try {\n                        const response = await fetch(window.location.href);\n                        const data = await response.json();\n                        oasValue = data.api.apiSetting;\n                    } catch (error) {\n                        console.error('Error fetching JSON:', error);\n                    }\n                }\n            }\n\n            if (oasValue) {\n                const oasUrl = `https://developer.onetrust.com/onetrust/openapi/${oasValue}`;\n                try {\n                    const response = await fetch(oasUrl);\n                    if (!response.ok) {\n                        throw new Error('Failed to fetch OpenAPI spec');\n                    }\n                    const data = await response.json();\n                    if (data.hasOwnProperty(\"x-onetrust\")) {\n                        return data[\"x-onetrust\"][\"links\"];\n                    }\n                } catch (error) {\n                    //console.error('Error fetching or processing OpenAPI spec:', error);\n                    return null;\n                }\n            }\n            return null;\n        }\n        // Initialize the OneTrust container and help button\n        function initHelpWidget() {\n            console.log('Initializing help widget');\n            var container = document.getElementById('onetrust-container');\n            var helpButton = document.getElementById('helpButton');\n\n            if (container) {\n                container.style.display = 'none';\n            }\n\n            if (helpButton) {\n                console.log('Adding click event to help button');\n                helpButton.onclick = toggleHelpContainer;\n            } else {\n                console.error('Help button not found');\n            }\n\n            // Initialize rating feature buttons\n            console.log('Setting up rating feature buttons');\n\n            // Rate your Experience button functionality\n            var rateExperienceBtn = document.getElementById('rateExperienceBtn');\n            if (rateExperienceBtn) {\n                console.log('Adding click event to rate experience button');\n                rateExperienceBtn.addEventListener('click', function () {\n                    document.getElementById('thumbsOptions').style.display = 'flex';\n                    document.getElementById('rateExperienceBtn').style.display = 'none';\n                    document.getElementById('voteNewFeatures').style.display = 'none';\n                });\n            } else {\n                console.error('Rate experience button not found');\n            }\n\n            // Thumbs Up button functionality\n            var thumbsUpBtn = document.getElementById('thumbsUpBtn');\n            if (thumbsUpBtn) {\n                thumbsUpBtn.addEventListener('click', function () {\n                    document.getElementById('commentInput').style.display = 'block';\n                    document.getElementById('thumbsUpBtn').style.color = 'darkgreen';\n                    document.getElementById('thumbsDownBtn').style.color = 'currentcolor';\n                    document.getElementById('thumbsOptions').style.display = 'flex';\n                    document.getElementById('submitButton').style.display = 'block';\n                });\n            }\n\n            // Thumbs Down button functionality\n            var thumbsDownBtn = document.getElementById('thumbsDownBtn');\n            if (thumbsDownBtn) {\n                thumbsDownBtn.addEventListener('click', function () {\n                    document.getElementById('commentInput').style.display = 'block';\n                    document.getElementById('thumbsUpBtn').style.color = 'currentcolor';\n                    document.getElementById('thumbsDownBtn').style.color = 'darkred';\n                    document.getElementById('thumbsOptions').style.display = 'flex';\n                    document.getElementById('submitButton').style.display = 'block';\n                });\n            }\n\n            // Submit button functionality\n            var submitButton = document.getElementById('submitButton');\n            if (submitButton) {\n                submitButton.addEventListener('click', async function () {\n                    var feedback = document.getElementById(\"feedbackTextarea\").value;\n                    if (!feedback.trim()) {\n                        document.getElementById(\"commentError\").style.display = \"block\";\n                        return;\n                    } else {\n                        document.getElementById(\"commentError\").style.display = \"none\";\n                    }\n\n                    try {\n                        const scriptElement = document.getElementById(\"hub-me\");\n                        // Get the value of the data-json attribute\n                        const jsonData = scriptElement ? scriptElement.getAttribute(\"data-json\") : null;\n                        // Parse the JSON data if available\n                        const parsedData = jsonData ? JSON.parse(jsonData) : {};\n\n                        // Get email if available\n                        const emailElement = document.getElementById(\"feedbackEmail\");\n                        const email = emailElement ? emailElement.value.trim() || null : null;\n\n                        var feedbackData = {\n                            vote: document.getElementById(\"thumbsUpBtn\").style.color === \"darkgreen\" ? 1 : 0,\n                            comments: document.getElementById(\"commentInput\").querySelector('textarea').value,\n                            path: window.location.pathname,\n                            requestType: \"pageQuality\",\n                            type: \"doc\"\n                        };\n\n                        // Adding the email to the comment since readme changed the api to not accept email\n                        if (email) {\n                            feedbackData.comments = email + \": \" + feedbackData.comments;\n                            feedbackData.email = email; // Doesn't seem to be used anymore by readme via the API\n                        }\n\n                        // Show success message immediately\n                        document.getElementById('successMessage').style.display = 'block';\n                        document.getElementById('commentInput').style.display = 'none';\n                        document.getElementById('submitButton').style.display = 'none';\n                        document.getElementById('thumbsOptions').style.display = 'none';\n\n                        // Send feedback to API\n                        fetch('https://developer.onetrust.com/onetrust/api-next/v2/versions/1.0/metrics-proxy/create/thumb', {\n                            method: 'POST',\n                            headers: {\n                                'Content-Type': 'application/json',\n                            },\n                            body: JSON.stringify(feedbackData),\n                        })\n                            .then(response => {\n                                if (!response.ok) {\n                                    throw new Error('Network response was not ok');\n                                }\n                                return response.json();\n                            })\n                            .then(data => {\n                                console.log('Feedback submitted successfully');\n                            })\n                            .catch(error => {\n                                console.error('Error submitting feedback:', error);\n                            });\n\n                        // Reset after delay regardless of API response\n                        setTimeout(function () {\n                            resetRateExperience();\n                            populateLinks();\n                        }, 3000);\n\n                    } catch (error) {\n                        console.error('Error processing feedback:', error);\n                        resetRateExperience();\n                    }\n                });\n            }\n        }\n\n        // Function to toggle OneTrust container visibility\n        function toggleHelpContainer() {\n            console.log('Help button clicked');\n            var container = document.getElementById('onetrust-container');\n            if (!container) {\n                console.error('Container not found');\n                return;\n            }\n\n            if (container.style.display === 'none') {\n                fetchHighestComponentGroupStatus();\n                container.style.display = \"block\";\n                document.querySelector('.help-icon').innerHTML = '\u003ci class=\"fas fa-times\">\u003c/i>';\n                // Get the \u003cscript> element by its id\n                const scriptElement = document.getElementById(\"hub-me\");\n                // Get the value of the data-json attribute\n                const jsonData = scriptElement.getAttribute(\"data-json\");\n                // Parse the JSON data\n                const parsedData = JSON.parse(jsonData);\n                // Extract the email from the parsed data\n                const name = parsedData.user?.name;\n                const email = parsedData.user?.email;\n                if (name) {\n                    const firstName = name.match(/^(\\S+)/)[1];\n                    // Updating the greeting message with the first name\n                    document.getElementById(\"greeting-name\").textContent = \"👋 Hi, \" + firstName + \"!\";\n                    document.getElementById(\"voteNewFeatures\").onclick = function () {\n                        window.open('https://ideas.onetrust.com/portal_session/new?email=' + encodeURIComponent(email), '_blank');\n                    };\n                }\n                if (email) {\n                    // Updating the email field with user's email \n                    document.getElementById(\"feedbackEmail\").value = email;\n                }\n                populateLinks();\n            } else {\n                resetRateExperience();\n                container.style.display = \"none\";\n                document.querySelector('.help-icon').innerHTML = '\u003ci class=\"fas fa-question\">\u003c/i>';\n            }\n        }\n\n        async function sleep(ms) {\n            return new Promise(resolve => setTimeout(resolve, ms));\n        }\n\n        // Function to populate Links\n        async function populateLinks() {\n            // Populate Links to Display based on current page\n            const currentPath = window.location.pathname;\n            let links = {}\n            if (currentPath.includes('/onetrust/reference')) {\n                let moduleLinks = await getLinksfromSpec();\n                links = {\n                    \"Getting Started: OneTrust APIs\": \"https://developer.onetrust.com/onetrust/reference/quick-start-guide\",\n                    \"API Rate Limiting\": \"https://developer.onetrust.com/onetrust/reference/rate-limits-overview\",\n                    \"Implementing Pagination\": \"https://developer.onetrust.com/onetrust/reference/understanding-implementing-pagination\",\n                    \"Explore our LLMs.txt file – Help AI understand our docs smarter and faster\": \"https://developer.onetrust.com/onetrust/v1.0/llms.txt\"\n                };\n                links = moduleLinks ? Object.assign(links, moduleLinks) : links;\n            } else if (currentPath.includes('/onetrust/docs')) {\n                links = {\n                    \"Getting Started: OneTrust SDKs\": \"https://my.onetrust.com/s/article/UUID-0297af95-8515-28ff-6f86-0f489f3c3e54?topicId=0TO1Q000000wxmbWAA\",\n                    \"Server-Side CMP APIs\": \"https://developer.onetrust.com/onetrust/docs/server-side-cmp-api-introduction\",\n                    \"Third-Party Integration Guides\": \"https://developer.onetrust.com/onetrust/docs/add-script-to-website\",\n                    \"Explore our LLMs.txt file – Help AI understand our docs smarter and faster\": \"https://developer.onetrust.com/onetrust/v1.0/llms.txt\"\n                };\n            } else if (currentPath.includes('/onetrust/changelog')) {\n                links = {\n                    \"Release Notes\": \"https://my.onetrust.com/s/release-notes\",\n                    \"Scheduled Maintenance\": \"https://my.onetrust.com/s/article/Scheduled-Maintenance\",\n                    \"System Status\": \"https://my.onetrust.com/s/system-status\",\n                    \"Explore our LLMs.txt file – Help AI understand our docs smarter and faster\": \"https://developer.onetrust.com/onetrust/v1.0/llms.txt\"\n                };\n            } else if (currentPath.includes('/onetrust/recipes')) {\n                links = {\n                    \"Download API Specs\": \"https://developer.onetrust.com/onetrust/openapi\",\n                    \"Integrations Knowledge Base\": \"https://my.onetrust.com/s/topic/0TO1Q000000ItT9WAK/integrations\",\n                    \"Explore our LLMs.txt file – Help AI understand our docs smarter and faster\": \"https://developer.onetrust.com/onetrust/v1.0/llms.txt\"\n                };\n            } else if (currentPath.includes('/onetrust/page/partners')) {\n                links = {\n                    \"Integrations Knowledge Base\": \"https://my.onetrust.com/s/topic/0TO1Q000000ItT9WAK/integrations\",\n                    \"Getting Started: OneTrust APIs\": \"https://developer.onetrust.com/onetrust/reference/quick-start-guide\",\n                    \"API Rate Limiting\": \"https://developer.onetrust.com/onetrust/reference/rate-limits-overview\",\n                    \"Implementing Pagination\": \"https://developer.onetrust.com/onetrust/reference/understanding-implementing-pagination\",\n                    \"Explore our LLMs.txt file – Help AI understand our docs smarter and faster\": \"https://developer.onetrust.com/onetrust/v1.0/llms.txt\"\n                };\n            } else {\n                links = {\n                    \"Developer Forum\": \"https://my.onetrust.com/s/group/0F91Q000000hGyPSAU/developer-experience\",\n                    \"Explore our LLMs.txt file – Help AI understand our docs smarter and faster\": \"https://developer.onetrust.com/onetrust/v1.0/llms.txt\"\n                };\n            }\n\n            // Get the Links Div\n            const container = document.querySelector('.onetrust-floating-links');\n            // Iterate over the links object and create \u003ca> elements\n            Object.entries(links).forEach(([title, url]) => {\n                const a = document.createElement('a');\n                a.href = url;\n                a.target = '_blank';\n                a.textContent = title;\n                container.appendChild(a);\n            });\n        }\n        // Function to reset Rate your Experience button\n        function resetRateExperience() {\n            document.getElementById(\"rateExperienceBtn\").style.display = \"flex\";\n            document.getElementById(\"voteNewFeatures\").style.display = \"flex\";\n            document.getElementById(\"thumbsOptions\").style.display = \"none\";\n            document.getElementById(\"commentInput\").style.display = \"none\";\n            document.getElementById(\"submitButton\").style.display = \"none\";\n            document.getElementById(\"thumbsUpBtn\").blur();\n            document.getElementById(\"thumbsUpBtn\").style.color = \"currentcolor\";\n            document.getElementById(\"thumbsDownBtn\").style.color = \"currentcolor\";\n            document.getElementById(\"thumbsDownBtn\").blur();\n            document.getElementById(\"commentInput\").querySelector('textarea').value = \"\";\n            document.getElementById(\"otStatusAlert\").style.display = \"none\";\n            document.getElementById(\"successMessage\").style.display = \"none\";\n            const a = document.querySelectorAll('.onetrust-floating-links a');\n            a.forEach((link) => {\n                link.parentNode.removeChild(link);\n            });\n        }\n        async function fetchHighestComponentGroupStatus() {\n            const url = 'https://try.readme.io/https://onetruststatus-1564678085559.site24x7statusiq.com/sp/api/public/summary_details/statuspages/ap5x50QW8NIw4SPq2SZXYXycmr53nFVf_CF7exQFdPY=?period=27&timezone=America/Chicago';\n\n            try {\n                const response = await fetch(url, {\n                    headers: {\n                        \"Content-Type\": \"application/json\",\n                    }, referrerPolicy: \"origin\" // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url\n                });\n                if (!response.ok) {\n                    throw new Error(`HTTP error! status: ${response.status}`);\n                }\n                const data = await response.json();\n                if (data.code !== 0 || !data.data || !data.data.current_status) {\n                    throw new Error('Unexpected response format');\n                }\n                // Extract componentgroup_status values and filter out undefined or non-numeric values\n                const statuses = data.data.current_status.map(status => status.componentgroup_status).filter(status => typeof status === 'number' && !isNaN(status));\n                // Get the highest status, default to -Infinity if no valid statuses are found\n                const highestStatus = statuses.length > 0 ? Math.max(...statuses) : -Infinity;\n                if (highestStatus > 2) { //1: Good, 2: Info, 3: Maint, etc. \n                    document.getElementById(\"otStatusAlert\").style.display = \"block\";\n                }\n                return highestStatus;\n            } catch (error) {\n                console.error('Error fetching data:', error);\n            }\n        }\n\n\n        // Start Thumb Voting Spam HONEYPOT\n        document.addEventListener(\"DOMContentLoaded\", function () {\n            const observer = new MutationObserver(function () {\n                const commentTextarea = document.querySelector(\".PageThumbs-comment_input\");\n                const voteButton = document.querySelector(\".PageThumbs-comment_submit\");\n\n                // Function to evaluate the state of the form\n                const evaluateFormState = () => {\n                    const honeypot = document.querySelector(\n                        'input[name=\"commentConfirmationRequired\"]'\n                    );\n                    if (honeypot && voteButton) {\n                        // Disable the button if the honeypot is filled or the comment box is empty\n                        voteButton.disabled =\n                            commentTextarea.value.trim() === \"\" || honeypot.value.trim() !== \"\";\n                    }\n                };\n\n                if (commentTextarea && voteButton) {\n                    // If both elements exist, proceed with the rest of the code\n\n                    // Change the entire comment prompt to \"Please comment to vote\"\n                    const commentLabel = commentTextarea\n                        .closest(\".Box2uBHSWG8DzPz\")\n                        .querySelector(\"label\");\n                    if (commentLabel) {\n                        commentLabel.childNodes.forEach((node) => {\n                            if (node.nodeType === Node.TEXT_NODE) {\n                                node.nodeValue = \"Please comment to vote\";\n                            }\n                        });\n                    }\n\n                    // Continuously monitor and enforce the disabled state based on form conditions\n                    setInterval(evaluateFormState, 100);\n\n                    // Ensure the honeypot field is added only once\n                    if (\n                        !document.querySelector('input[name=\"commentConfirmationRequired\"]')\n                    ) {\n                        const honeypot = document.createElement(\"input\");\n                        honeypot.setAttribute(\"type\", \"text\");\n                        honeypot.setAttribute(\"name\", \"commentConfirmationRequired\");\n                        honeypot.style.opacity = \"0\";\n                        honeypot.style.position = \"absolute\";\n                        honeypot.setAttribute(\"tabindex\", \"-1\");\n                        commentTextarea.parentNode.insertBefore(\n                            honeypot,\n                            commentTextarea.nextSibling\n                        );\n                    }\n\n                    // Evaluate form state on input\n                    commentTextarea.addEventListener(\"input\", evaluateFormState);\n                    document\n                        .querySelector('input[name=\"commentConfirmationRequired\"]')\n                        .addEventListener(\"input\", evaluateFormState);\n\n                    // Double-check before submission\n                    const form = voteButton.closest(\"form\");\n                    if (form) {\n                        form.addEventListener(\"submit\", function (event) {\n                            evaluateFormState(); // Ensure the form state is evaluated one last time before submission\n                            if (voteButton.disabled) {\n                                event.preventDefault(); // Prevent form submission if conditions are not met\n\n                            }\n                        });\n                    }\n                }\n            });\n\n            observer.observe(document.body, { childList: true, subtree: true });\n        });\n\n        /* Disabling for now since its taking out the emails, if we get spam, we will enable \n        // Thumb Voting Spam METRICS\n        document.addEventListener(\"DOMContentLoaded\", function () {\n          // Check if fetch has already been overridden to avoid multiple overrides\n          if (window.fetch.isOverridden) return;\n        \n          // Save the original fetch function\n          const originalFetch = window.fetch;\n        \n          // Override fetch to intercept requests\n          window.fetch = async (input, init) => {\n            // Check if the request matches the voting endpoint\n            if (typeof input === 'string' && input.includes('/metrics-proxy/create/thumb')) {\n              try {\n                // Check if it's a POST request with a JSON body\n                if (init && init.method === 'POST' && init.body) {\n                  const payload = JSON.parse(init.body);\n        \n                  // Retrieve the actual comment text from the text input field on the page\n                  const commentTextarea = document.querySelector(\".PageThumbs-comment_input\");\n                  console.log(commentTextarea);\n                  const actualComment = commentTextarea ? commentTextarea.value.trim() : \"\";\n                  console.log(actualComment);\n        \n                  // Define patterns for known spam and injection attempts\n                  const suspiciousPatterns = [\n                    /\u003cscript.*?>|\u003c\\/.*?>/i, // HTML tags or any closing tags\n                    /DBMS_PIPE|PG_SLEEP|waitfor delay|sleep|sysdate/i, // SQL injection and delay keywords\n                    /['\";|&@$%\u003c>]/, // Special characters common in injection attacks\n                    /[\\'\\\"]{2,}/, // Multiple consecutive quotes (e.g., '' or \"\")\n                    /^\\s*✅ VERIFIED\\s*$/ // Matches exactly \"✅ VERIFIED\"\n                  ];\n        \n                  // Check for suspicious patterns\n                  const isSuspicious = suspiciousPatterns.some((pattern) => pattern.test(actualComment));\n                  if (isSuspicious) {\n                    console.warn(\"Blocked suspicious submission due to spam/injection pattern.\");\n                    return; // Cancel the fetch by returning early\n                  }\n        \n                  // Apply conditional verification based on actual comment field content\n                  if (actualComment !== \"\") {\n                    // If there's a non-empty comment in the input, append \" | ✅ APPROVED\"\n                    payload.comments = actualComment + \" | ✅ APPROVED\";\n                    console.log(payload.comments);\n                  } else {\n                    // If comments are empty, log and cancel the fetch\n                    console.warn(\"Blocked submission due to empty comment.\");\n                    return; // Cancel the fetch by returning early\n                  }\n        \n                  // Fallback: if payload.comments is empty after all checks, mark as \"❌ UNVERIFIED\"\n                  if (!payload.comments || payload.comments.trim() === \"\") {\n                    payload.comments = \"❌ UNVERIFIED\";\n                  }\n        \n                  // Replace the original body with the modified payload\n                  init.body = JSON.stringify(payload);\n                }\n              } catch (error) {\n                console.error(\"Error modifying payload:\", error);\n              }\n            }\n        \n            // Proceed with the original fetch function using the (potentially modified) init\n            return originalFetch(input, init);\n          };\n        \n          // Mark fetch as overridden\n          window.fetch.isOverridden = true;\n        });\n        */\n        // End Thumb Voting Spam HONEYPOT\n\n        // Initialize the help widget when the page loads\n        window.addEventListener('DOMContentLoaded', initHelpWidget);\n\n        // Fallback initialization in case DOMContentLoaded already fired\n        if (document.readyState === 'complete' || document.readyState === 'interactive') {\n            console.log('Document already loaded, initializing help widget now');\n            setTimeout(initHelpWidget, 1000);\n        }\n\n        // Add a global click handler as another fallback\n        document.addEventListener('click', function (e) {\n            if (e.target.closest('#helpButton')) {\n                console.log('Help button clicked via global handler');\n                toggleHelpContainer();\n            }\n        });","html":{"header":"\u003c!--\u003cmeta http-equiv=\"Content-Security-Policy\" content=\"block-all-mixed-content ; default-src 'self'; script-src 'self' 'report-sample' 'unsafe-inline' 'unsafe-eval' geolocation.onetrust.com privacyportal.onetrust.com cdn.cookielaw.org cdn.readme.io github.com unpkg.com cdn.onetrust.com *.wistia.com *.wistia.net *.litix.io cdnjs.cloudflare.com *.onetrust.com; style-src 'self' 'unsafe-inline' fonts.gstatic.com fonts.googleapis.com cdn.lineicons.com cdnjs.cloudflare.com cdn.readme.io unpkg.com fast.wistia.com *.onetrust.com; object-src 'none'; frame-src 'self' cdn.embedly.com fast.wistia.com fast.wistia.net *.onetrust.com; child-src 'self' *.wistia.com *.onetrust.com; img-src 'self' data: blob: cdn.cookielaw.org *.pstmn.io files.readme.io unpkg.com img.shields.io *.onetrust.com *.wistia.com *.wistia.net embedwistia-a.akamaihd.net *.onetrust.com; font-src 'self' data: cdnjs.cloudflare.com fonts.gstatic.com fonts.googleapis.com cdn.lineicons.com cdn.readme.io unpkg.com *.wistia.com *.onetrust.com; connect-src 'self' geolocation.onetrust.com privacyportal.onetrust.com cdn.cookielaw.org *.onetrust.com try.readme.io *.ingest.sentry.io *.algolianet.com *.algolia.net *.algolia.io *.wistia.com *.wistia.net embedwistia-a.akamaihd.net embed-e.wistia.com *.litix.io; manifest-src 'self'; base-uri 'self'; form-action 'self'; media-src 'self' *.wistia.net *.wistia.com embedwistia-a.akamaihd.net; worker-src 'self';\">-->\n\u003cmeta http-equiv=\"Content-Security-Policy\" content=\"block-all-mixed-content; default-src 'self'; script-src 'self' 'report-sample' 'unsafe-inline' 'unsafe-eval' geolocation.onetrust.com privacyportal.onetrust.com cdn.cookielaw.org cdn.readme.io github.com unpkg.com cdn.onetrust.com *.wistia.com *.wistia.net *.litix.io cdnjs.cloudflare.com *.onetrust.com; style-src 'self' 'unsafe-inline' fonts.gstatic.com fonts.googleapis.com cdn.lineicons.com cdnjs.cloudflare.com cdn.readme.io unpkg.com fast.wistia.com *.onetrust.com; object-src 'none'; frame-src 'self' *.readme.com *.readme.io cdn.embedly.com fast.wistia.com fast.wistia.net *.onetrust.com; child-src 'self' *.wistia.com *.onetrust.com; img-src 'self' data: blob: cdn.cookielaw.org *.pstmn.io files.readme.io unpkg.com img.shields.io *.onetrust.com *.wistia.com *.wistia.net embedwistia-a.akamaihd.net *.onetrust.com; font-src 'self' data: cdnjs.cloudflare.com fonts.gstatic.com fonts.googleapis.com cdn.lineicons.com cdn.readme.io unpkg.com *.wistia.com *.onetrust.com; connect-src 'self' geolocation.onetrust.com privacyportal.onetrust.com cdn.cookielaw.org *.onetrust.com *.readme.io *.readme.com *.ingest.sentry.io *.algolianet.com *.algolia.net *.algolia.io *.wistia.com *.wistia.net embedwistia-a.akamaihd.net embed-e.wistia.com *.litix.io; manifest-src 'self'; base-uri 'self'; form-action 'self'; media-src 'self' *.wistia.net *.wistia.com embedwistia-a.akamaihd.net *.readme.io; worker-src 'self'; frame-ancestors 'self' cdn.readme.io *.readme.io *.readme.com *.onetrust.com;\">\n\u003c!-- OneTrust Cookies Consent Notice start for developer.onetrust.com -->\n\u003cscript src=\"https://cdn.cookielaw.org/consent/018f9b70-7823-7874-9581-b4ecf0e526a2/otSDKStub.js\"  type=\"text/javascript\" charset=\"UTF-8\" data-domain-script=\"018f9b70-7823-7874-9581-b4ecf0e526a2\" >\u003c/script>\n\u003cscript type=\"text/javascript\">\nfunction OptanonWrapper() { }\n\u003c/script>\n\u003c!-- OneTrust Cookies Consent Notice end for developer.onetrust.com -->\n\u003clink href=\"https://fonts.googleapis.com/css?family=Open+Sans\" rel=\"stylesheet\">\n\u003clink rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Rubik:400,400i,500\">\n\u003clink rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Poppins:400,500,600\">\n\u003clink href=\"https://cdn.lineicons.com/4.0/lineicons.css\" rel=\"stylesheet\" />\n\u003c!-- Google Site Verication -->\n\u003cmeta name=\"google-site-verification\" content=\"uKX18lBpCRTZkC5CvXhQfZ4NFHBxaWgJmrJNopgj6KA\" />\n\u003cdiv id=\"brave-warning\" class=\"Banner2qY-Hhfqm_Gx Banner_secondary1reFai47T0j4 Banner_smUPcJRlth4_Dl Banner_fixeda1mFpjcc1TJ6\" style=\"display:none\">\u003ci class=\"icon-warning\">\u003c/i>We've detected that you are using the Brave browser. This site does not display correctly when the Brave Shields are enabled. Please set your Shields to Down.\u003c/div>\n\u003clink href='https://fonts.googleapis.com/css?family=Open Sans' rel='stylesheet'>","home_footer":"\u003cfooter class=\"ot-footer\" aria-hidden=\"false\">\n  \u003cdiv class=\"ot-footer-container ot-footer-text-color--white\">\n    \u003cdiv class=\"ot-footer-content ot-footer-padding-right-64 ot-footer-padding-left-64\">\n      \u003cdiv class=\"ot-footer-separator\">\n        \u003chr class=\"ot-footer-separator__horizontal-rule ot-footer-separator__spacing--large\">\n      \u003c/div>\n      \u003cdiv class=\"ot-footer-separator\">\n        \u003chr class=\"ot-footer-separator__horizontal-rule ot-footer-separator__spacing--large\">\n      \u003c/div>\n      \u003cdiv class=\"ot-footer-links\">\n        \u003cdiv class=\"ot-footer-links_content\">\n          \u003cdiv class=\"ot-footer-links-block\">\n            \u003cdiv class=\"ot-footer-font-weight-thin\">Getting Started\u003c/div>\n            \u003cul class=\"ot-footer-list\">\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://developer.onetrust.com/onetrust/reference/quick-start-guide\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Quick Start Guide: APIs\u003c/span>\u003c/a>\u003c/li>\n                    \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://developer.onetrust.com/onetrust/docs/onetrust-sdk-reference\">\u003cspan\n                    class=\"ot-footer-list__item-title\">SDK Reference\u003c/span>\u003c/a>\u003c/li>\n                    \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://developer.onetrust.com/onetrust/recipes\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Recipes\u003c/span>\u003c/a>\u003c/li>\n                    \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://developer.onetrust.com/onetrust/changelog\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Changelog\u003c/span>\u003c/a>\u003c/li>\n                    \n            \u003c/ul>\n          \u003c/div>\n          \u003cdiv class=\"ot-footer-links-block\">\n            \u003cdiv class=\"ot-footer-font-weight-thin\">Knowledge Base\u003c/div>\n            \u003cul class=\"ot-footer-list\">\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/topiccatalog\">\u003cspan class=\"ot-footer-list__item-title\">Articles\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/documents\">\u003cspan class=\"ot-footer-list__item-title\">Documents\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/group/0F91Q000000hGyPSAU\">\u003cspan class=\"ot-footer-list__item-title\">Developer Forum\u003c/span>\u003c/a>\u003c/li>\n            \u003c/ul>\n          \u003c/div>\n          \u003cdiv class=\"ot-footer-links-block\">\n            \u003cdiv class=\"ot-footer-font-weight-thin\">Help Options\u003c/div>\n            \u003cul class=\"ot-footer-list\">\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/contactsupport\">\u003cspan class=\"ot-footer-list__item-title\">Help\n                    Options\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/case/Case/Default\">\u003cspan class=\"ot-footer-list__item-title\">View My\n                    Cases\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/system-status\">\u003cspan class=\"ot-footer-list__item-title\">System\n                    Status\u003c/span>\u003c/a>\u003c/li>\n            \u003c/ul>\n          \u003c/div>\n        \u003c/div>\n        \u003cdiv class=\"ot-footer-links_content\">\n          \u003cdiv class=\"ot-footer-links-block\">\n            \u003cdiv class=\"ot-footer-font-weight-thin\">OneTrust Seasonal Releases\u003c/div>\n            \u003cul class=\"ot-footer-list\">\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/article/UUID-6acbde09-4c77-1494-98b0-43aac83196ff\">\u003cspan\n                    class=\"ot-footer-list__item-title\">OneTrust\n                    Seasonal Releases\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/release-notes\">\u003cspan class=\"ot-footer-list__item-title\">Release\n                    Notes\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/article/UUID-20d037bc-96c1-e6f2-28ea-2c892a25483e\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Release\n                    Videos\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/article/Scheduled-Maintenance\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Scheduled\n                    Maintenace\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/https://podcast.onetrust.com/\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Talks Tech\n                    Podcast\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/article/UUID-8ee8e008-2561-dd9e-73c7-cd5d21af75bf\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Known Defect\n                    Database\u003c/span>\u003c/a>\u003c/li>\n            \u003c/ul>\n          \u003c/div>\n          \u003cdiv class=\"ot-footer-links-block\">\n            \u003cdiv class=\"ot-footer-font-weight-thin\">Consumer Resources\u003c/div>\n            \u003cul class=\"ot-footer-list\">\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://my.onetrust.com/s/customer-resources\">\u003cspan class=\"ot-footer-list__item-title\">Consumer\n                    Resources\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://ideas.onetrust.com/\">\u003cspan class=\"ot-footer-list__item-title\">Idea\n                    Exchange\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://www.onetrust.com/news/\">\u003cspan class=\"ot-footer-list__item-title\">OneTrust\n                    News\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://developer.onetrust.com/onetrust/docs/taking-a-onetrust-hands-on-lab\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Hands-On\n                    Labs\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://www.onetrust.com/partners/\">\u003cspan class=\"ot-footer-list__item-title\">OneTrust\n                    Partner List\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://www.onetrust.com/resources/?resource-type=webinar\">\u003cspan\n                    class=\"ot-footer-list__item-title\">Product\n                    Webinars\u003c/span>\u003c/a>\u003c/li>\n              \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                  href=\"https://www.onetrust.com/certifications/\">\u003cspan class=\"ot-footer-list__item-title\">Training\n                    &amp; Certifications\u003c/span>\u003c/a>\u003c/li>\n            \u003c/ul>\n          \u003c/div>\n        \u003c/div>\n      \u003c/div>\n      \u003cdiv class=\"ot-footer-separator\">\n        \u003chr class=\"ot-footer-separator__horizontal-rule ot-footer-separator__spacing--large\">\n      \u003c/div>\n      \u003cdiv class=\"ot-footer-separator\">\n        \u003chr class=\"ot-footer-separator__horizontal-rule ot-footer-separator__spacing--large\">\n      \u003c/div>\n      \u003cdiv class=\"ot-footer-privacy-container\">\n        \u003cdiv class=\"ot-footer-privacy ot-footer-padding-left-40 ot-footer-padding-bottom-16\">\n          \u003cdiv class=\"ot-footer-separator\">\n            \u003chr class=\"ot-footer-separator__horizontal-rule ot-footer-separator__spacing--medium\">\n          \u003c/div>\n          \u003cdiv>\n            \u003ch2 class=\"ot-footer-title__text\">Privacy Matters\u003c/h2>\n            \u003ch4>\u003cspan class=\"ot-footer-body-1 ot-footer-font-weight-light ot-footer-height-38\">Our privacy center makes\n                it easy to see how\u003cbr>we collect and use your information.\u003c/span>\u003c/h4>\n          \u003c/div>\n          \u003cdiv class=\"ot-footer-separator\">\n            \u003chr class=\"ot-footer-separator__horizontal-rule ot-footer-separator__spacing--small\">\n          \u003c/div>\n          \u003cdiv class=\"ot-footer-links\">\n            \u003cdiv class=\"ot-footer-links-block ot-footer-flex-direction ot-footer-padding-right-32\">\n              \u003cdiv class=\"ot-footer-font-weight-light\">Your privacy\u003c/div>\n              \u003cp>\u003cspan class=\"ot-footer-font-weight-light\">When we\n                  collect your personal information, we always inform you of your rights\n                  and make it easy for you to exercise them. Where possible, we also let\n                  you manage your preferences about how much information you choose to\n                  share with us, or our partners.\u003c/span>\u003c/p>\n              \u003cdiv class=\"ot-footer-separator\">\n                \u003chr class=\"ot-footer-separator__horizontal-rule ot-footer-separator__spacing--small\">\n              \u003c/div>\n              \u003cp>\u003cspan class=\"ot-footer-text\">© 2026\n                  OneTrust, LLC. All Rights Reserved.\u003c/span>\u003c/p>\n            \u003c/div>\n            \u003cdiv class=\"ot-footer-links-block\">\n              \u003cdiv class=\"ot-footer-links-block ot-footer-flex-direction\">\n                \u003cdiv class=\"ot-footer-font-weight-thin\">Privacy Overview\u003c/div>\n                \u003cul class=\"ot-footer-list\">\n                  \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                      href=\"https://www.onetrust.com/privacy/\">\u003cspan class=\"ot-footer-list__item-title\">Privacy\n                        Overview\u003c/span>\u003c/a>\u003c/li>\n                  \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                      href=\"https://www.onetrust.com/privacy-notice/\">\u003cspan class=\"ot-footer-list__item-title\">Privacy\n                        Notice\u003c/span>\u003c/a>\u003c/li>\n                  \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                      href=\"https://www.onetrust.com/cookie-policy/\">\u003cspan class=\"ot-footer-list__item-title\">Cookie\n                        Notice\u003c/span>\u003c/a>\u003c/li>\n                  \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                      href=\"https://developer.onetrust.com/onetrust/page/cookie-list\">\u003cspan\n                        class=\"ot-footer-list__item-title\">Cookie List\u003c/span>\u003c/a>\u003c/li>\n                \u003c/ul>\n              \u003c/div>\n              \u003cdiv class=\"ot-footer-links-block ot-footer-flex-direction\">\n                \u003cdiv class=\"ot-footer-font-weight-thin\">Exercise Your Rights\u003c/div>\n                \u003cul class=\"ot-footer-list\">\n                  \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                      href=\"https://privacyportal-cdn.onetrust.com/dsarwebform/37bcc497-a196-48f1-a08b-e897b5a77859/08a01c64-41fd-4b4e-9d42-cde44371a422.html\">\u003cspan\n                        class=\"ot-footer-list__item-title\">Exercise Your Rights\u003c/span>\u003c/a>\u003c/li>\n                  \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                      href=\"https://trustcenter-privacy.my.onetrust.com/ui/#/preferences/multipage/login/2013df68-fd2a-4de0-89ff-973214c626b1\">\u003cspan\n                        class=\"ot-footer-list__item-title\">Manage Your Comunication\u003c/span>\u003c/a>\u003c/li>\n                  \u003cli class=\"ot-footer-list__item\">\u003ca class=\"ot-footer-list__item-link ot-footer-text-color--white\"\n                      href=\"https://trustcenter-privacy.my.onetrust.com/ui/#/preferences/multipage/login/2013df68-fd2a-4de0-89ff-973214c626b1\">\u003cspan\n                        class=\"ot-footer-list__item-title\">Prefereces\u003c/span>\u003c/a>\u003c/li>\n                \u003c/ul>\n              \u003c/div>\n            \u003c/div>\n          \u003c/div>\n        \u003c/div>\n      \u003c/div>\n    \u003c/div>\n  \u003c/div>\n\u003c/footer>\n\u003chead>\n\n\n\n\n    \u003cstyle>\n        /* Floating button */\n        .onetrust-floating-button {\n            position: fixed;\n            bottom: 20px;\n            right: 20px;\n            background: linear-gradient(to top, #4F9D81, #6672C4);\n            color: #fff;\n            width: 60px;\n            height: 60px;\n            border-radius: 50%;\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            cursor: pointer;\n            transition: transform ease-out 0.1s, background 0.2s;\n            transition: background-color 0.3s, transform 0.3s;\n            z-index: 1000;\n            box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);\n        }\n\n        .onetrust-floating-button:hover {\n            background-color: #388e3c;\n            transform: scale(1.1);\n            cursor: pointer\n        }\n\n        /* Container */\n        #onetrust-container {\n            position: fixed;\n            bottom: 90px;\n            right: 30px;\n            width: 410px;\n            border-radius: 10px;\n            box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);\n            z-index: 999;\n            overflow: hidden;\n            /* Ensure content does not overflow */\n        }\n\n        #onetrust-container>.onetrust-top {\n            background: linear-gradient(to top, #4F9D81, #6672C4);\n            color: #fff;\n            padding: 20px;\n            border-radius: 10px 10px 0 0;\n            position: relative;\n        }\n\n        #onetrust-container>.onetrust-bottom {\n            background-color: white;\n            padding: 20px;\n            border-radius: 0 0 10px 10px;\n        }\n\n        #onetrust-container>.onetrust-bottom::before {\n            content: \"\";\n            position: absolute;\n            top: -20px;\n            left: 0;\n            width: 100%;\n            height: 0px;\n            background-color: white;\n        }\n\n        #onetrust-container>.onetrust-top::after {\n            content: \"\";\n            position: absolute;\n            bottom: -20px;\n            left: 0;\n            width: 100%;\n            height: 0px;\n            background: transparent;\n        }\n\n        .onetrust-floating-header {\n            display: flex;\n            align-items: center;\n            justify-content: space-between;\n            padding-bottom: 10px;\n        }\n\n        .onetrust-floating-header h1 {\n            color: #fff;\n            font-size: 20px;\n        }\n\n        .onetrust-floating-greeting {\n            color: #fff;\n            font-size: 28px;\n            font-weight: bold;\n        }\n\n        .onetrust-floating-links {\n            margin-top: 20px;\n            color: #fff;\n        }\n\n        .onetrust-floating-links a {\n            display: list-item;\n            color: #fff;\n            margin-bottom: 5px;\n            text-decoration: none;\n            transition: color 0.3s;\n            margin-left: 30px;\n            font-size: 18px;\n        }\n\n        .onetrust-floating-links span {\n            margin-bottom: 10px;\n            display: block;\n            font-size: 18px;\n        }\n\n        .onetrust-floating-links a:hover {\n            text-decoration: underline\n        }\n\n        .onetrust-floating-buttons {\n            display: flex;\n            flex-direction: column;\n            text-align: left;\n        }\n\n        .onetrust-top {\n            max-height: 400px;\n            /* Set your desired maximum height */\n            overflow-y: auto;\n            /* Enable vertical scrolling */\n        }\n\n        .onetrust-button {\n            background-color: #fff;\n            color: #4F9D81;\n            border: 1px solid;\n            border-radius: 5px;\n            padding: 10px;\n            font-size: 16px;\n            margin-bottom: 10px;\n            display: flex;\n            align-items: center;\n            transition: background-color 0.3s;\n        }\n\n        .onetrust-button:hover {\n            background-color: #f1f1f1;\n            cursor: pointer;\n        }\n\n        .onetrust-button-span {\n            margin-left: 10px;\n            margin-right: 10px;\n            text-align: left;\n        }\n\n        i.onetrust-svg.fas {\n            font-size: xx-large;\n        }\n\n        i.onetrust-svg.fas.fa-lightbulb {\n            padding-left: 5px;\n            width: 1em;\n        }\n\n        svg.svg-inline--fa.fa-thumbs-up.fa-w-16 {\n            font-size: x-large;\n        }\n\n        svg.svg-inline--fa.fa-thumbs-down.fa-w-16 {\n            font-size: x-large;\n        }\n\n        span.onetrust-svg-inline.help-icon {\n            font-size: xx-large;\n        }\n\n        svg.onetrust-svg {\n            font-size: xx-large;\n        }\n\n        svg.svg-inline--fa.fa-lightbulb.onetrust-svg {\n            width: 1.2em;\n        }\n\n        /* Additional styles for thumbs up/down options */\n        .thumbs-options {\n            display: none;\n            justify-content: space-evenly;\n            align-items: center;\n            color: var(--slate);\n            /* Apply this rule through a CSS class */\n        }\n\n        .thumbs-options button {\n            border: none;\n            color: currentcolor;\n            margin-bottom: 0px;\n        }\n\n\n        .comment-input {\n            display: none;\n            margin-top: 10px;\n        }\n\n        .comment-input textarea {\n            width: 100%;\n            resize: vertical;\n            margin-top: 5px;\n            background: white;\n          \tcolor: var(--gray20);\n        }\n      \n        .PageThumbs-email_input {\n            width: 100%;\n            resize: vertical;\n            margin-top: 5px;\n            background: white;\n          \tcolor: var(--gray20);\n        }\n\n        .submit-btn {\n            display: none;\n            margin-top: 10px;\n            font-weight: bold;\n        }\n\n        .alert-icon {\n            position: absolute;\n            top: 35px;\n            right: 35px;\n            font-size: 25px;\n            color: white;\n            animation: pulsate 1.5s infinite;\n        }\n\n        .alert-icon:hover {\n            cursor: pointer;\n        }\n\n        @keyframes pulsate {\n            0% {\n                transform: scale(1);\n            }\n\n            50% {\n                transform: scale(1.3);\n            }\n\n            100% {\n                transform: scale(1);\n            }\n        }\n    \u003c/style>\n\u003c/head>\n\n\u003cbody>\n    \u003c!-- Floating button with help icon -->\n    \u003cdiv class=\"onetrust-floating-button\" id=\"helpButton\">\n        \u003cspan class=\"onetrust-svg-inline help-icon\">\u003ci class=\"fas fa-question\">\u003c/i>\u003c/span>\n    \u003c/div>\n    \u003c!-- OneTrust container -->\n    \u003cdiv id=\"onetrust-container\" style=\"display: none;\">\n        \u003cdiv class=\"onetrust-top\">\n            \u003ca id=\"otStatusAlert\" style=\"display: none;\"\n                href=\"https://onetruststatus-1564678085559.site24x7statusiq.com/\" target=\"_blank\">\u003ci\n                    class=\"fas fa-triangle-exclamation alert-icon\">\u003c/i>\u003c/a>\n            \u003cdiv class=\"onetrust-floating-header\">\n            \u003c/div>\n            \u003cdiv class=\"onetrust-floating-greeting\">\n                \u003cspan id=\"greeting-name\" style=\"padding-bottom:10px\">👋 Hi there!\u003c/span>\u003cbr>\u003cbr>\n                \u003cspan style=\"font-size:23px\">Start Learning.\u003c/span>\n                \u003cspan style=\"font-size:23px\">Start Building.\u003c/span>\n                \u003cspan style=\"font-size:23px\">Start Launching! 🚀\u003c/span>\n            \u003c/div>\n            \u003cdiv class=\"onetrust-floating-links\">\n                \u003cspan>These resources can help you get started:\u003c/span>\n\n            \u003c/div>\n        \u003c/div>\n        \u003cdiv class=\"onetrust-bottom\">\n            \u003cdiv class=\"onetrust-floating-buttons\">\n                \u003cbutton class=\"onetrust-button\" id=\"rateExperienceBtn\">\n                    \u003cspan class=\"onetrust-button-span\">\u003ci class=\"onetrust-svg fas fa-star\">\u003c/i>\u003c/span>\n                    \u003cspan class=\"onetrust-button-span\">\u003cstrong>Rate your Experience\u003c/strong>\u003cbr>\u003csmall>Share overall\n                            feedback\u003c/small>\u003c/span>\n                \u003c/button>\n                \u003cdiv class=\"thumbs-options\" id=\"thumbsOptions\">\n                    \u003cspan>\u003cstrong>Did this page help you?\u003c/strong>\u003c/span>\u003cbr>\u003cbr>\n                    \u003cbutton class=\"onetrust-button\" id=\"thumbsUpBtn\">\u003ci class=\"onetrust-svg fas fa-thumbs-up\">\u003c/i>\u003cspan\n                            class=\"onetrust-button-span\">Yes\u003c/span>\u003c/button>\n                    \u003cbutton class=\"onetrust-button\" id=\"thumbsDownBtn\">\u003ci\n                            class=\"onetrust-svg fas fa-thumbs-down\">\u003c/i>\u003cspan\n                            class=\"onetrust-button-span\">No\u003c/span>\u003c/button>\n                \u003c/div>\n                \u003cdiv class=\"comment-input\" id=\"commentInput\">\n                   \u003cinput id=\"feedbackEmail\"\n                        class=\"Input Input_md Input_touched PageThumbs-email_input\"\n                        placeholder=\"Optional: Provide your email for a response\">\u003c/input>\n                    \u003ctextarea id=\"feedbackTextarea\"\n                        class=\"Textarea Textarea_md Textarea_vertical PageThumbs-comment_input\"\n                        placeholder=\"Please provide additional comments...\">\u003c/textarea>\n                    \u003cspan class=\"onetrust-button-span\" id=\"commentError\" style=\"color: darkred; display: none;\">Please\n                        enter your feedback.\u003c/span>\n                    \u003cspan class=\"onetrust-button-span\" id=\"successMessage\"\n                        style=\"color: darkgreen; display: none;\">Feedback submitted\n                        successfully!\u003c/span>\n                \u003c/div>\n                \u003cbutton class=\"submit-btn onetrust-button\" id=\"submitButton\">Submit Feedback\u003c/button>\n                \u003cbutton class=\"onetrust-button\" id=\"voteNewFeatures\"\n                    onclick=\"window.open('https://ideas.onetrust.com','_blank');\" type=\"button\">\n                    \u003cspan class=\"onetrust-button-span\">\u003ci class=\"onetrust-svg fas fa-lightbulb\">\u003c/i>\u003c/span>\n                    \u003cspan class=\"onetrust-button-span\">\u003cstrong>Vote on New Features\u003c/strong>\u003cbr>\u003csmall>Have a say in\n                            what we build\n                            next\u003c/small>\u003c/span>\n                \u003c/button>\n\n            \u003c/div>\n        \u003c/div>\n    \u003c/div>\n\u003c/body>\n\n\u003c/html>","page_footer":null}},"header":{"type":"solid","gradient_color":"#2C6145","link_style":"buttons","overlay":{"fill":"cover","type":"triangles","position":"top-left","image":{"uri":"/images/6942ed9682fc97a0bb01ce5f","url":"https://files.readme.io/32e2a364828b6b166fdd52768a9ee523d5481289d3a9406df47108ba727edaad-myot-hero-background.svg","name":"32e2a364828b6b166fdd52768a9ee523d5481289d3a9406df47108ba727edaad-myot-hero-background.svg","width":null,"height":null,"color":"#007cc0","links":{"original_url":null}}}},"navigation":{"collapsible_categories":"enabled","breadcrumbs":"enabled","first_page":"reference","left":[{"type":"link_url","title":"myOneTrust","url":"https://my.onetrust.com/s","custom_page":null},{"type":"link_url","title":"Developer Forum","url":"https://my.onetrust.com/s/group/0F91Q000000hGyPSAU/developer-experience","custom_page":null},{"type":"link_url","title":"Technology Partners","url":"https://developer.onetrust.com/onetrust/page/partners","custom_page":null}],"logo_link":"homepage","page_icons":"enabled","right":[{"type":"link_url","title":"Subscribe via RSS","url":"http://developer.onetrust.com/onetrust/changelog.rss","custom_page":null}],"sub_nav":[],"subheader_layout":"links","version":"disabled","links":{"home":{"label":"Home","visibility":"disabled"},"graphql":{"label":"GraphQL","visibility":"disabled","schema":null},"guides":{"label":"Guides","alias":"SDK Reference","visibility":"enabled"},"reference":{"label":"API Reference","alias":"API Reference","visibility":"enabled"},"recipes":{"label":"Recipes","alias":null,"visibility":"enabled"},"changelog":{"label":"Changelog","alias":null,"visibility":"enabled"},"discussions":{"label":"Discussions","alias":null,"visibility":"disabled"}}}},"i18n":{"languages":["en"],"defaultLanguage":"en","state":"disabled"}}},"version":{"_id":"620d23a542d78f05786a49c9","version":"1.0","version_clean":"1.0.0","codename":"Production","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["620d23a542d78f05786a49cb","620d23a542d78f05786a49cb","620d23a542d78f05786a49d1","620d2473d0e93a0147577007","620d24bdce6893002929091f","620d24f39b83cd06aa74818b","620d2523ffedb003e024ee7d","620d253c5a8ec60044cc283f","620d2f503f575f0085357683","620d2f58437c7300888cc8f1","620d2f5d1e70820053c8487e","620d3836756e210058c8f904","620d392a6e2aca0044c89703","620d394f133c23001469f94a","620d396849cf95003a296c15","620d39822fe6720123696ca9","620d39986d0c04003b89a588","620d3a056e2c5400134ae12e","620d3a11577d610014f942da","620d4f093501e50025da3212","620ead7670bf16002edfdeca","6213cf63166006002168275b","6213cfc142398701b6d559c7","6213d01e35c08e007af7154e","6217e4335f381d001a78bc95","6217e43d9d7459003dbe8442","6217e4457029dc0020f7a893","621d3b0fb07102002a0e46c2","621d3b880d8c0c00213c6aaf","621d3ba768e9e4005b6f28f4","621d3bb77f33770040d05b8b","621d3ca7feb971003d2e3dab","621d3d1a11141b009f241f66","621d3d7b5b549100464cf12b","621d3eed7df382001a7dc122","621e150f426ad900815c8491","621e495197363c00436e3247","621e508a7df382001a7ea87d","621e5253289e5a006ca29d2a","621e52a695667403d2657576","621e53c07826e100adbe4cd5","621e7683435d5500363e1e95","621e8c0e5b94ce0075e62d12","621e8d4ee2fa0e008d3ccb8b","621e8f3f96ccb200471ddedf","622101ba4bc000001a016fc1","622102c286d2e2004f070ed0","622102d6c3194a00401b1d03","622102e935622f01dffaa381","622102fe4bf43c00a1417ec0","62210322bd9404003e1a870d","6221033a312cfa003e1238af","622103f685254100359a8248","6221040a86f1860190999f3b","6221041698a26c0047d21499","6221042e02a8d1079728a975","62210458c3194a00401b2836","6221046a3ca945005896fcc8","62210481d7cabb02ac5c6b96","622104918be6c7003d11efb0","6221049cc50c02009fe0f2d9","622104b68be6c7003d11efc3","622104de6f7bf000421eea6f","62210511a99212005f069a8e","6221052135622f01dffab79c","6228bfe79fe43b003f2127b1","622a6c844a5d000091300995","622a6c9e2446cc004cc46cf3","622a6cb0020e410074215bc1","622a6cb9e73c66008dee09c7","622a6cbf8e69bf0086f1bf7d","622a6ccc25abea003782a791","622a6cd626b4b50044a9b5db","622a6cde93edf00092acfb57","622a6ce529777b007a3e3316","622a6ced29777b007a3e331a","622a6cf4ea012e004fdf7e3b","622a6cfc5a803d0014e6e66c","622a6d02a2dd3f003c2b4aee","622a6d1013a7100089b3609d","622f990bd149b3008faddff6","622f9f2ca14b00008866facd","622fa9fb7533ad031d14edae","622fadadf8045d03b4d06eb8","622fae8ab9d6dd001ac8536c","6242fcdd99025f003c836934","6242fce9f0b51d0013ef9567","624b3e735eb3110095b1ec88","624b3e97e621ce002e254018","624b408f80c997003962cb20","6269121b2948cb0043e0fd9b","62703cd945a84b005640a4b8","62863f09fcb84a028b91dc48","62863f556b5973009111f664","629a06719db2f70031f95f05","62b9c2bb676200008bee9bef","62b9c2e93ccfa0009d8c8881","62b9c3038c4c5d06d2e369fb","62b9c31b72164000486fd934","62dee51f9cc634007e756e2c","62dee540fd6d6b0094ad8e0f","6358300ad7c471001d6d36ed","6391cca17cc244002b43c1a4","63d9543d6b4b0d19521728e7","63d9a05a7f835300035f2b0f","6479029db81cb5005a012048","6479fa8f720835004fb08246","64b95979e8502b000ccaf692","64b95a52368bd1005e4fff54","64b96245c8d2760038e965ea","64b965d14dbc6500739de189","64b9a5f94ad6b7003cbe792d","64ba94b7385cf30074f2cbd2","64ba9773aa051f005ca2904c","64bab48a979377004a34a38e","64c021ade74ed2005220657d","64c028de30d55000431dbeeb","64c11e81f81ed315ad24eb5e","64c80f25e27d92004f1a92f6","65b1516e955afb00754bf2b8","65b16dbb846cfe004de567e3","65b9576864527400108c5f6b","65b9583b892ec00010a2de5d","65bbaff57adc2c00383c3eb7","660f0303ee20bf003603e699","662a626351f93800535e9b51","662a69b1de615f002bef2cab","6644d947d6d5c8005c6a25c0","66450590673d11005b075f09","665f23eeab28bc0024f024c3","66bb7b65404f700019a8c9b4","672aa7a509edfd001fd040bc","6762ed423e11680011660959","6785760141701b002a4933d7","67afa752428e61000ffcf09a","681a7964406a2b0020109f91","681a7b85bf5e2800320eba27","681a7ba44c52140067f7a67c","6877f036758df1087935898f","688ba11b0bb443d7cdaad7b3","688bb4c2ea0d0a4819368dcf","690266a365832928e04369a5","69036d7b6f266244b20e6755","69036f40ce5bb6d1ffd961ff"],"project":"620d23a442d78f05786a49c4","releaseDate":"2022-02-16T16:17:41.641Z","createdAt":"2022-02-16T16:17:41.641Z","__v":41,"pdfStatus":"complete","updatedAt":"2026-06-01T14:16:31.376Z","apiRegistries":[{"filename":"platform-access-management.json","uuid":"f9wagt2dmnf371hp"},{"filename":"consent-preferences-cross-device-consent.json","uuid":"17nirfrynmioyml91"},{"filename":"consent-preferences-consent-receipts.json","uuid":"djg2b1cmm5atb97"},{"filename":"data-use-governance-data-discovery.json","uuid":"f9y5bq4dmnf38yzh"},{"filename":"privacy-automation-data-subject-request-dsr-automation.json","uuid":"126cy96fmo00l53y"},{"filename":"platform-documents.json","uuid":"16f24a6mkbnajog"},{"filename":"privacy-automation-incident-management.json","uuid":"ed1q7xmpr23f44"},{"filename":"platform-integrations.json","uuid":"2ir2z8amkbnch3s"},{"filename":"consent-preferences-mobile-app-consent.json","uuid":"g12drq1cmha0gi7u"},{"filename":"consent-preferences-policy-notice-management.json","uuid":"dpouuafmkbnb6sv"},{"filename":"third-party-management-third-party-risk-management.json","uuid":"jnbn9omngaalfe"},{"filename":"tech-risk-compliance-it-risk-management.json","uuid":"1836s2zesmoiolqt7"},{"filename":"platform-user-provisioning.json","uuid":"2918ezf1cmnxsw93o"},{"filename":"tech-risk-compliance-training.json","uuid":"61jz5pmk4h6i1f"},{"filename":"platform-inventory.json","uuid":"5exah7omkbndrdk"},{"filename":"data-use-governance-data-catalog.json","uuid":"f9wagt1vmnf38yyy"},{"filename":"platform-object-manager.json","uuid":"d8d2i1dmo0txyoc"},{"filename":"data-use-governance-data-discovery-worker-node.json","uuid":"e9e7umls790bq"},{"filename":"tech-risk-compliance-audit-management.json","uuid":"1ddzbc29mls74i7m"},{"filename":"consent-preferences-cookie-domain-data.json","uuid":"m0wxemha0eww7"},{"filename":"esg-program-reporting-disclosures.json","uuid":"42ftpumls77pyw"},{"filename":"privacy-automation-assessment-automation.json","uuid":"35gzyjmowx7gao"},{"filename":"consent-preferences-consent-management-platform-cmp.json","uuid":"4hsgrw1ympr207cc"},{"filename":"platform-bulk-export.json","uuid":"5lumsmmm1qloo"},{"filename":"privacy-automation-data-mapping-automation.json","uuid":"1ddzbcjmls77q38"},{"filename":"tech-risk-compliance-issues-management.json","uuid":"dpouua7mkbndrde"},{"filename":"consent-preferences-consent-interfaces.json","uuid":"dpouua7mkbn7z36"},{"filename":"consent-preferences-universal-consent-preference-management-oas.json","uuid":"1pz7ampr8tonz"},{"filename":"platform-task-management.json","uuid":"4nl9g3nmon9lrsb"},{"filename":"tech-risk-compliance-compliance-automation.json","uuid":"b8hzre1gmls77q09"},{"filename":"consent-preferences-cookie-consent-swagger.json","uuid":"abzq02omhcdes8d"},{"filename":"privacy-automation-data-mapping-automation-swagger.json","uuid":"aafw8q5mmkn2zat4"},{"filename":"ai-governance.json","uuid":"3v3tt88mo0j5hoc"},{"filename":"tech-risk-compliance-enterprise-policy-management.json","uuid":"5ayeflmmm4cho3"},{"filename":"consent-preferences-cookie-consent.json","uuid":"duel7u20mo24pycm"}],"source":"readme"}},"i18n":{"language":"en","translations":{"en":{"common":{"ai":{"aiOpenFailed":"Failed to open SuperHub AI panel.","askAi":"Ask AI","askAiAriaLabel":"Open Ask AI Assistant","mdCopy":"Copy Page","mdOpenFailed":"Failed to open as markdown","mdView":"View as Markdown","mcp":{"appNotFound":"{{app}} does not appear to be installed.","command":"Copy MCP Command","config":"Copy MCP Config","copied":"Copied to clipboard!","cursor":"Connect to Cursor","downloadApp":"Download {{app}}","header":"MCP","vscode":"Connect to VS Code"},"noMdToCopy":"No markdown content available to copy.","openFailed":"Failed to open {{option}}.","settings":{"askAiRequired":"Ask AI must be enabled for your project","description":"Adds a dropdown menu for sharing docs with AI assistants.","disabledInternal":"Disabled for internal docs — set to public to enable","dropdownOptions":"Dropdown Options","preview":"Preview","saveFailed":"Failed to save AI dropdown configuration. Please try again.","title":"AI Dropdown"}},"apiConfig":{"allRequests":"All Requests","allRequestsFilter":"All Requests","apiKeysNotFound":"No API keys found.","apiKeysNotSynced":"API keys are not synced with this developer hub.","apiRequests":"API Requests","authentication":"Authentication","credentials":"Credentials","dayFilter":"Last 24 Hours","emptyStatePrompt":"Make a request to see them here or \u003ca>Try It\u003c/a>!","error":"Error","errorRequestsFilter":"400 & 500","gettingStarted":"Getting Started","logInPrompt":"Log in to see your API keys","monthFilter":"Last 30 Days","moreErrors":"More Errors","moreRequests":"More Requests","myRecentErrors":"My Recent Errors","myRecentRequests":"My Recent Requests","myRequests":"My Requests","myTopEndpoints":"My Top Endpoints","personalizedDocsSetup":"Set up \u003cButton>Personalized Docs\u003c/Button> to show users their API keys.","pickALanguage":"Pick a language","popularEndpoints":"Popular Endpoints","success":"Success","weekFilter":"Past week","yourApiKeys":"Your API Keys"},"attribution":"by {{attribution}}","auth":{"any":"any","apiKey":"API Key","apiKeyPrompt":"Get API Key","apiKeyShow":"Show API Key","apiKeyHide":"Hide API Key","apiKeyToggle":"Toggle API Key","apiInfo":"API Info","authenticate":"Authenticate","authorize":"Authorize","authorizationUrl":"Authorization URL","authorizedScopes":"Authorized scopes for this token","authorizedScopesEmpty":"Token has no authorized scopes","bearer":"Bearer","clearSelection":"Clear Selection","clientId":"Client ID","deselectAll":"Deselect All","credentialMessage":"{{projectName}} accepts {{count}} credential methods. You can use {{option}} of them.","credentialsFor":"Credentials for {{name}}","credentialsForMd":"Credentials for `{{name}}`","either":"eitherLog in to use your API keys","grantType":"Grant Type","info":{"base64":"Your username and password will be combined with a : to form a base64-encoded string: `ENCODED_TOKEN`","basic":"Your username and password are being sent in the [header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization) of the request.","bearer":"\n  Bearer authentication gives access to the “bearer of the token” and must be sent in the Authorization header. For example:\n  ```bash\n  curl --request POST \\\n       --url https://httpbin.org/anything/bearer\n       --header 'Authorization: Bearer BEARER_TOKEN'\n  ```\n  ","cookie":"Your API Key is being sent as a [cookie](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies).","header":"Your API Key is sent in the request [header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers).","jwt":"The bearer token's format is JSON Web Token (JWT). Read more at [JWT.io](https://jwt.io/).","query":"Your API Key is being sent as a query parameter in the [URL](https://developer.mozilla.org/en-US/docs/Web/API/URL)."},"infoTable":{"contact":"Contact","description":"Description","identifier":"Identifier","license":"License","name":"Name","termsOfService":"Terms of Service","title":"Title","summary":"Summary","url":"URL","version":"Version"},"information":"Information","label":"Label","lastUsed":"Last Used","logInPrompt":"Log in to use your API keys","logIn":"Log In","logOut":"Log Out","or":"or","password":"password","passwordHideLabel":"Hide","passwordShowLabel":"Show","reAuthorize":"Re-Authorize","required":"required","requiredScopes":"Required Scopes","requiredScopesMissingMsg_one":"Missing {{count}} required scope","requiredScopesMissingMsg_other":"Missing {{count}} required scopes","scopes":"Scopes","scopeGroupAllRequired":"All {{count}} scopes required","scopesOrRequired":"At least 1 scope group required","scopesMissingCount":"({{count}} missing from this token)","scopesMissingMsg_one":"This operation requires {{count}} additional scope","scopesMissingMsg_other":"This operation requires {{count}} additional scopes","scopesRequiredMsg":"Scopes required for this operation","scopesRequiredNoneMsg":"No scopes required for this operation","selectAll":"Select All","selectCredentials":"Select Credentials","token":"token","tokenDetails":"Token Details","tokenRotationMessage":"We recommend you rotate this token.","tokenUrl":"Token URL","useOwnToken":"Use Your Own Token","username":"username"},"close":"Close","colorScheme":{"dark":"Dark","light":"Light","system":"System","title":"Color Scheme"},"changelog":{"added":"Added","deprecated":"Deprecated","fixed":"Fixed","improved":"Improved","removed":"Removed","title":"Changelog"},"copyToClipboard":{"copiedFull":"Copied to clipboard!","copiedShort":"Copied!","copyFull":"Copy to clipboard","copyShort":"Copy","failed":"Failed to copy to clipboard.","unable":"Unable to copy"},"discussions":{"addCommentLabel":"Add Comment","adminLabel":"Admin","answered":"Answered","askQuestion":"Ask a Question","backToAll":"Back to all","blankBodyError":"Your post body cannot be blank.","blankCommentError":"Your comment cannot be blank.","blankPostError":"Your post cannot be blank.","blankTitleError":"Your post title cannot be blank.","cancelButtonLabel":"Cancel","commentAndMarkAnswered":"Comment and mark answered","commentAndReopen":"Comment and reopen","deleteButtonLabel":"Delete","deleteCommentConfirmation":"Are you sure you want to delete this comment?","deleteCommentPermanentConfirmation":"Are you sure you want to permanently delete this comment?","deleteComentSuccess":"This comment has been deleted","deletePermanentlyButtonLabel":"Permanently Delete","deletePostConfirmation":"Are you sure you want to delete this post?","editButtonLabel":"Edit","editedLabel":"edited","emailInputAriaLabel":"name@email.com","emailInputPlaceholder":"Your Email","errorMessagePrefix":"Error:","faqAddLabel":"Add to FAQ","faqRemoveLabel":"Remove from FAQ","faqsLabel":"FAQs","logInToComment":"\u003cb>Log in\u003c/b> to add a comment.","markAsAnswered":"Mark as answered","markAsUnanswered":"Mark as unanswered","markCommentSpamLabel":"Mark this comment as spam","markPostSpamLabel":"Mark this post as spam","nameAndEmailError":"Please fill out your name and email.","nameInputAriaLabel":"Your name","nameInputPlaceholder":"Full name","permanentlyDeleteLabel":"Permanently delete","questionInputAriaLabel":"New question","recaptchaInvalidError":"Invalid ReCaptcha tokens.","recaptchaRequiredError":"Please complete the reCaptcha verification.","recentLabel":"Recent","saveButtonLabel":"Save","submitButtonLabel":"Post Question","tagButtonLabel":"Tag","tagInputPlaceholder":"Enter tag","titleInputAriaLabel":"Question title","titleInputPlaceholder":"Your question title","unansweredLabel":"Unanswered","voteCountLabel":"{{count}} vote","voteCountLabel_plural":"{{count}} votes"},"emptyState":{"changelog":{"title":"No Changelogs"},"discussion":{"actionLabel":"New Question","description":"Nobody's asked a question yet. Be the first!","title":"No Discussions"},"guide":{"title":"No Guides"},"recipe":{"title":"No Recipes"},"reference":{"title":"No API Endpoints"}},"more":"more…","next":"Next","onlyVisibleToAdmins":"Only visible to ReadMe admins","owlbotChat":{"assistant":"Assistant","clearChat":"Clear chat history","closeChat":"Close chat","emptyMessage":"I’ll help you find answers in the docs","emptyTitle":"Ask AI","failureTitle":"Ask AI","fallbackHeading":"Something went wrong with Ask AI","fallbackMessage":"Please try refreshing the page or contact support if the problem persists.","inputPlaceholder":"Ask AI anything…","sendFailure":"Failed to send message. Please try again.","resend":"Resend?","streamError":"...Something went wrong.","tryAgain":"Try Again","typingLabel":"Generating","voteFailure":"Failed to record vote. It may take a moment for the message to be saved. Please try again.","aiDisclaimer":"AI can get things wrong, so double check any info or code. You're responsible for verifying results are accurate and fit your needs before taking action. Do not input sensitive information.","voteLabelDown":"Not helpful","voteLabelUp":"Helpful","thinkingDefault":"Thinking...","thinkingSearchKnowledge":"Searching knowledge base...","thinkingSearchPages":"Searching for keywords...","thinkingListPages":"Looking up pages...","thinkingReadPage":"Reading relevant pages..."},"pageNotFound":{"heading":"Page Not Found","metaTitle":"404 Not Found"},"pageThumbs":{"no":"No","placeHolder":"Leave an optional comment…","prompt":"Did this page help you?","submit":"Vote","thankYou":"Thanks for voting!","yes":"Yes"},"poweredBy":"Powered by","recipes":{"inThisRecipe":"In this Recipe","openRecipe":"Open Recipe","step_one":"{{count}} step","step_other":"{{count}} steps"},"reference":{"callback":"Callback","clearExample":"Clear Example","clearResponse":"Clear Response","data":"Data","example":"Example","examplePrompt":"Choose an example","examplePromptOr":"Or choose an example","examples":"Examples","headers":"Headers","invalidJSON":"Invalid JSON","inspectRequest":"Inspect Request","jsonEditorAriaLabel":"Toggle Raw JSON Editor","jsonEditorLabel":"Edit JSON Body","language":"Language","library":"Library","log":"Log","logsLoading":"Retrieving recent requests…","logsPrompt":"Make a request to see history.","logsSeeAllLabel":"See All Requests","logsStatusLabel":"Status","logsThisMonth_one":"{{count}} Request This Month","logsThisMonth_other":"{{count}} Requests This Month","logsTimeLabel":"Time","logsUserAgentLabel":"User Agent","payloadExample":"Payload Example","recentRequests":"Recent Requests","replayRequest":"Replay Request","request":"Request","requestExample":"Request Example","requestExamples":"Request Examples","requestHistoryPrompt":"Log in to see full request history","requestInstructions":"Request instructions","resetBody":"Reset Body","response":"Response","showDescription":"Show Description","hideDescription":"Hide Description","sdkCodeEmpty":"No SDK code available","sdkCodeError":"Error retrieving SDK code. Please try again later.","tryIt":"Try It","tryItPrompt":"Click \u003ccode>Try It!\u003c/code> to start a request and see the response here!","tryItPunctuated":"Try It!"},"search":{"askFailure":"We had an issue responding, please try again later","filtersLabel":"Filters","filtersPlaceholder":"Filter","forMore":"for more","fromTheDocs":"From the Docs","inProject":"in {{project}}","noResults":"No search results for '{{query}}'","placeholder":"Search","pressEnterToAskAi":"Press \u003ckbd>Enter\u003c/kbd> to ask AI","promptEmpty":"Start typing to search…","promptLoading":"Keep typing to search…","searching":"Searching…","thinking":"Thinking"},"sections":{"all":"All","apiLogs":"API Logs","changelog":"Changelog","discussions":"Discussions","guides":"Guides","graphql":"GraphQL","home":"Home","pages":"Pages","recipes":"Recipes","reference":"API Reference"},"tableOfContents":"Table of Contents","time":{"absolute":{"noPrefix":"{{time}}","noPrefixAttributed":"{{time}} by {{attribution}}","postedPrefix":"Posted {{time}}","postedPrefixAttributed":"Posted {{time}} by {{attribution}}","updatedPrefix":"Updated {{time}}","updatedPrefixAttributed":"Updated {{time}} by {{attribution}}"},"justNow":{"noPrefix":"Less than a minute ago","noPrefixAttributed":"Less than a minute ago by {{attribution}}","postedPrefix":"Posted just now","postedPrefixAttributed":"Posted just now by {{attribution}}","updatedPrefix":"Updated just now","updatedPrefixAttributed":"Updated just now by {{attribution}}"},"relative":{"noPrefix":"{{time}}","noPrefixAttributed":"{{time}} by {{attribution}}","postedPrefix":"Posted {{time}}","postedPrefixAttributed":"Posted {{time}} by {{attribution}}","updatedPrefix":"Updated {{time}}","updatedPrefixAttributed":"Updated {{time}} by {{attribution}}"}},"unableToCopy":"Unable to copy","version":{"beta":"Beta","default":"Default","deprecated":"Deprecated","hiddenLabel":"Hidden Version"},"whatsNext":"What’s Next"}}}},"is404":false,"isFramePreview":false,"isStreamingSSR":false,"isDetachedProductionSite":false,"lang":"en","langFull":"Default","reqUrl":"/onetrust/docs/android-sdk-next-gen","version":{"_id":"620d23a542d78f05786a49c9","version":"1.0","version_clean":"1.0.0","codename":"Production","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["620d23a542d78f05786a49cb","620d23a542d78f05786a49cb","620d23a542d78f05786a49d1","620d2473d0e93a0147577007","620d24bdce6893002929091f","620d24f39b83cd06aa74818b","620d2523ffedb003e024ee7d","620d253c5a8ec60044cc283f","620d2f503f575f0085357683","620d2f58437c7300888cc8f1","620d2f5d1e70820053c8487e","620d3836756e210058c8f904","620d392a6e2aca0044c89703","620d394f133c23001469f94a","620d396849cf95003a296c15","620d39822fe6720123696ca9","620d39986d0c04003b89a588","620d3a056e2c5400134ae12e","620d3a11577d610014f942da","620d4f093501e50025da3212","620ead7670bf16002edfdeca","6213cf63166006002168275b","6213cfc142398701b6d559c7","6213d01e35c08e007af7154e","6217e4335f381d001a78bc95","6217e43d9d7459003dbe8442","6217e4457029dc0020f7a893","621d3b0fb07102002a0e46c2","621d3b880d8c0c00213c6aaf","621d3ba768e9e4005b6f28f4","621d3bb77f33770040d05b8b","621d3ca7feb971003d2e3dab","621d3d1a11141b009f241f66","621d3d7b5b549100464cf12b","621d3eed7df382001a7dc122","621e150f426ad900815c8491","621e495197363c00436e3247","621e508a7df382001a7ea87d","621e5253289e5a006ca29d2a","621e52a695667403d2657576","621e53c07826e100adbe4cd5","621e7683435d5500363e1e95","621e8c0e5b94ce0075e62d12","621e8d4ee2fa0e008d3ccb8b","621e8f3f96ccb200471ddedf","622101ba4bc000001a016fc1","622102c286d2e2004f070ed0","622102d6c3194a00401b1d03","622102e935622f01dffaa381","622102fe4bf43c00a1417ec0","62210322bd9404003e1a870d","6221033a312cfa003e1238af","622103f685254100359a8248","6221040a86f1860190999f3b","6221041698a26c0047d21499","6221042e02a8d1079728a975","62210458c3194a00401b2836","6221046a3ca945005896fcc8","62210481d7cabb02ac5c6b96","622104918be6c7003d11efb0","6221049cc50c02009fe0f2d9","622104b68be6c7003d11efc3","622104de6f7bf000421eea6f","62210511a99212005f069a8e","6221052135622f01dffab79c","6228bfe79fe43b003f2127b1","622a6c844a5d000091300995","622a6c9e2446cc004cc46cf3","622a6cb0020e410074215bc1","622a6cb9e73c66008dee09c7","622a6cbf8e69bf0086f1bf7d","622a6ccc25abea003782a791","622a6cd626b4b50044a9b5db","622a6cde93edf00092acfb57","622a6ce529777b007a3e3316","622a6ced29777b007a3e331a","622a6cf4ea012e004fdf7e3b","622a6cfc5a803d0014e6e66c","622a6d02a2dd3f003c2b4aee","622a6d1013a7100089b3609d","622f990bd149b3008faddff6","622f9f2ca14b00008866facd","622fa9fb7533ad031d14edae","622fadadf8045d03b4d06eb8","622fae8ab9d6dd001ac8536c","6242fcdd99025f003c836934","6242fce9f0b51d0013ef9567","624b3e735eb3110095b1ec88","624b3e97e621ce002e254018","624b408f80c997003962cb20","6269121b2948cb0043e0fd9b","62703cd945a84b005640a4b8","62863f09fcb84a028b91dc48","62863f556b5973009111f664","629a06719db2f70031f95f05","62b9c2bb676200008bee9bef","62b9c2e93ccfa0009d8c8881","62b9c3038c4c5d06d2e369fb","62b9c31b72164000486fd934","62dee51f9cc634007e756e2c","62dee540fd6d6b0094ad8e0f","6358300ad7c471001d6d36ed","6391cca17cc244002b43c1a4","63d9543d6b4b0d19521728e7","63d9a05a7f835300035f2b0f","6479029db81cb5005a012048","6479fa8f720835004fb08246","64b95979e8502b000ccaf692","64b95a52368bd1005e4fff54","64b96245c8d2760038e965ea","64b965d14dbc6500739de189","64b9a5f94ad6b7003cbe792d","64ba94b7385cf30074f2cbd2","64ba9773aa051f005ca2904c","64bab48a979377004a34a38e","64c021ade74ed2005220657d","64c028de30d55000431dbeeb","64c11e81f81ed315ad24eb5e","64c80f25e27d92004f1a92f6","65b1516e955afb00754bf2b8","65b16dbb846cfe004de567e3","65b9576864527400108c5f6b","65b9583b892ec00010a2de5d","65bbaff57adc2c00383c3eb7","660f0303ee20bf003603e699","662a626351f93800535e9b51","662a69b1de615f002bef2cab","6644d947d6d5c8005c6a25c0","66450590673d11005b075f09","665f23eeab28bc0024f024c3","66bb7b65404f700019a8c9b4","672aa7a509edfd001fd040bc","6762ed423e11680011660959","6785760141701b002a4933d7","67afa752428e61000ffcf09a","681a7964406a2b0020109f91","681a7b85bf5e2800320eba27","681a7ba44c52140067f7a67c","6877f036758df1087935898f","688ba11b0bb443d7cdaad7b3","688bb4c2ea0d0a4819368dcf","690266a365832928e04369a5","69036d7b6f266244b20e6755","69036f40ce5bb6d1ffd961ff"],"project":"620d23a442d78f05786a49c4","releaseDate":"2022-02-16T16:17:41.641Z","createdAt":"2022-02-16T16:17:41.641Z","__v":41,"pdfStatus":"complete","updatedAt":"2026-06-01T14:16:31.376Z","apiRegistries":[{"filename":"platform-access-management.json","uuid":"f9wagt2dmnf371hp"},{"filename":"consent-preferences-cross-device-consent.json","uuid":"17nirfrynmioyml91"},{"filename":"consent-preferences-consent-receipts.json","uuid":"djg2b1cmm5atb97"},{"filename":"data-use-governance-data-discovery.json","uuid":"f9y5bq4dmnf38yzh"},{"filename":"privacy-automation-data-subject-request-dsr-automation.json","uuid":"126cy96fmo00l53y"},{"filename":"platform-documents.json","uuid":"16f24a6mkbnajog"},{"filename":"privacy-automation-incident-management.json","uuid":"ed1q7xmpr23f44"},{"filename":"platform-integrations.json","uuid":"2ir2z8amkbnch3s"},{"filename":"consent-preferences-mobile-app-consent.json","uuid":"g12drq1cmha0gi7u"},{"filename":"consent-preferences-policy-notice-management.json","uuid":"dpouuafmkbnb6sv"},{"filename":"third-party-management-third-party-risk-management.json","uuid":"jnbn9omngaalfe"},{"filename":"tech-risk-compliance-it-risk-management.json","uuid":"1836s2zesmoiolqt7"},{"filename":"platform-user-provisioning.json","uuid":"2918ezf1cmnxsw93o"},{"filename":"tech-risk-compliance-training.json","uuid":"61jz5pmk4h6i1f"},{"filename":"platform-inventory.json","uuid":"5exah7omkbndrdk"},{"filename":"data-use-governance-data-catalog.json","uuid":"f9wagt1vmnf38yyy"},{"filename":"platform-object-manager.json","uuid":"d8d2i1dmo0txyoc"},{"filename":"data-use-governance-data-discovery-worker-node.json","uuid":"e9e7umls790bq"},{"filename":"tech-risk-compliance-audit-management.json","uuid":"1ddzbc29mls74i7m"},{"filename":"consent-preferences-cookie-domain-data.json","uuid":"m0wxemha0eww7"},{"filename":"esg-program-reporting-disclosures.json","uuid":"42ftpumls77pyw"},{"filename":"privacy-automation-assessment-automation.json","uuid":"35gzyjmowx7gao"},{"filename":"consent-preferences-consent-management-platform-cmp.json","uuid":"4hsgrw1ympr207cc"},{"filename":"platform-bulk-export.json","uuid":"5lumsmmm1qloo"},{"filename":"privacy-automation-data-mapping-automation.json","uuid":"1ddzbcjmls77q38"},{"filename":"tech-risk-compliance-issues-management.json","uuid":"dpouua7mkbndrde"},{"filename":"consent-preferences-consent-interfaces.json","uuid":"dpouua7mkbn7z36"},{"filename":"consent-preferences-universal-consent-preference-management-oas.json","uuid":"1pz7ampr8tonz"},{"filename":"platform-task-management.json","uuid":"4nl9g3nmon9lrsb"},{"filename":"tech-risk-compliance-compliance-automation.json","uuid":"b8hzre1gmls77q09"},{"filename":"consent-preferences-cookie-consent-swagger.json","uuid":"abzq02omhcdes8d"},{"filename":"privacy-automation-data-mapping-automation-swagger.json","uuid":"aafw8q5mmkn2zat4"},{"filename":"ai-governance.json","uuid":"3v3tt88mo0j5hoc"},{"filename":"tech-risk-compliance-enterprise-policy-management.json","uuid":"5ayeflmmm4cho3"},{"filename":"consent-preferences-cookie-consent.json","uuid":"duel7u20mo24pycm"}],"source":"readme"},"gitVersion":{"base":null,"display_name":"Production","i18n":{"lang":"en","parsed_version":"1.0"},"name":"1.0","release_stage":"release","source":"readme","state":"current","updated_at":"2026-06-05T13:31:56.000Z","uri":"/branches/1.0","privacy":{"view":"default"}},"versions":{"total":1,"data":[{"base":null,"display_name":"Production","i18n":{"lang":"en","parsed_version":"1.0"},"name":"1.0","release_stage":"release","source":"readme","state":"current","updated_at":"2026-06-05T13:31:56.624Z","uri":"/branches/1.0","privacy":{"view":"default"}}],"type":"version"}}</script></div><div id="hub-container"><div class="hub-container"><div state-container ng-attr-id="{{state.current().root !== 'docs' &amp;&amp; 'react-app-content-container'}}"><div id="replace-view" ng-non-bindable></div></div></div></div><script>var is_hub = true;
var is_hub2 = true;
var is_hub_edit = true;
</script><div id="ssr-end"><script id="__LOADABLE_REQUIRED_CHUNKS__" type="application/json">[2852,4863,7783,5386,1456,3307,2759,6146,6328,9503,5446,8836,1347,8209,4089,3230,5330,3477,2575,5939,9405,8719,1924,3946,4745,8788,6121,6212,3747,86,5798]</script><script id="__LOADABLE_REQUIRED_CHUNKS___ext" type="application/json">{"namedChunks":["routes-SuperHub","Containers-EndUserContainer","Header","routes-SuperHub-Routes","Doc","ConnectMetadata","RMDXISH","SuperHub-components-AIDropdown","Footer"]}</script>
<script async data-chunk="main" src="https://cdn.readme.io/public/hub/web/main.e16518e000f37a0a49e4.js"></script>
<script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/routes-SuperHub.d60c68197e49023c5d61.js"></script>
<script async data-chunk="Containers-EndUserContainer" src="https://cdn.readme.io/public/hub/web/Containers-EndUserContainer.2b3a9d22bd82de494d4a.js"></script>
<script async data-chunk="Header" src="https://cdn.readme.io/public/hub/web/7783.6c85fd5bfa2f92d27907.js"></script>
<script async data-chunk="Header" src="https://cdn.readme.io/public/hub/web/5386.a8d8ffc9cabcb88dfb4d.js"></script>
<script async data-chunk="Header" src="https://cdn.readme.io/public/hub/web/Header.844fd0ad0a0eca39fda2.js"></script>
<script async data-chunk="routes-SuperHub-Routes" src="https://cdn.readme.io/public/hub/web/routes-SuperHub-Routes.a8d97e343be9684e1a3a.js"></script>
<script async data-chunk="Doc" src="https://cdn.readme.io/public/hub/web/2759.882d2382a880e326c276.js"></script>
<script async data-chunk="Doc" src="https://cdn.readme.io/public/hub/web/6146.e0750bc6839fd326854d.js"></script>
<script async data-chunk="Doc" src="https://cdn.readme.io/public/hub/web/6328.8423262497f7b1a95f69.js"></script>
<script async data-chunk="Doc" src="https://cdn.readme.io/public/hub/web/9503.6b7c733b45b4d59122ea.js"></script>
<script async data-chunk="Doc" src="https://cdn.readme.io/public/hub/web/5446.1dae54f5c68a97708554.js"></script>
<script async data-chunk="Doc" src="https://cdn.readme.io/public/hub/web/8836.278c0fa83edd766823b0.js"></script>
<script async data-chunk="Doc" src="https://cdn.readme.io/public/hub/web/1347.6265ddeff9b9202723b8.js"></script>
<script async data-chunk="Doc" src="https://cdn.readme.io/public/hub/web/8209.7406e3a73d200034cb61.js"></script>
<script async data-chunk="Doc" src="https://cdn.readme.io/public/hub/web/4089.13723ecc93c3e9fdf340.js"></script>
<script async data-chunk="Doc" src="https://cdn.readme.io/public/hub/web/3230.b311c63199128cd7599e.js"></script>
<script async data-chunk="Doc" src="https://cdn.readme.io/public/hub/web/5330.b8498cc13fcf60fc2bb1.js"></script>
<script async data-chunk="Doc" src="https://cdn.readme.io/public/hub/web/3477.c98d94926fe56e847dc7.js"></script>
<script async data-chunk="Doc" src="https://cdn.readme.io/public/hub/web/2575.c4e61bd32afe1ebb101c.js"></script>
<script async data-chunk="Doc" src="https://cdn.readme.io/public/hub/web/5939.fb69e6e7dc2b79fb1476.js"></script>
<script async data-chunk="Doc" src="https://cdn.readme.io/public/hub/web/9405.b6d8abd05899c05e15b1.js"></script>
<script async data-chunk="Doc" src="https://cdn.readme.io/public/hub/web/Doc.57af249e6ee0d2ab76bf.js"></script>
<script async data-chunk="ConnectMetadata" src="https://cdn.readme.io/public/hub/web/ConnectMetadata.439a67eac4a4a70f40b3.js"></script>
<script async data-chunk="RMDXISH" src="https://cdn.readme.io/public/hub/web/3946.1da4c5e474b668485d12.js"></script>
<script async data-chunk="RMDXISH" src="https://cdn.readme.io/public/hub/web/4745.5b0c242639836215dcbb.js"></script>
<script async data-chunk="RMDXISH" src="https://cdn.readme.io/public/hub/web/8788.4c1c0cfabf94ec8acb88.js"></script>
<script async data-chunk="RMDXISH" src="https://cdn.readme.io/public/hub/web/6121.f2d3a0efda039dbd2717.js"></script>
<script async data-chunk="RMDXISH" src="https://cdn.readme.io/public/hub/web/RMDXISH.481f398e8547ee826d84.js"></script>
<script async data-chunk="SuperHub-components-AIDropdown" src="https://cdn.readme.io/public/hub/web/3747.cfbb89e56e8b8759a44f.js"></script>
<script async data-chunk="SuperHub-components-AIDropdown" src="https://cdn.readme.io/public/hub/web/SuperHub-components-AIDropdown.d91ecbf3871e9e2f9289.js"></script>
<script async data-chunk="Footer" src="https://cdn.readme.io/public/hub/web/Footer.04a4d0368fb206901c95.js"></script></div><script id="customJS">// START hides pages tab from search  
 (function hidePagesTab() {
    const hide = (root = document) => {
      root.querySelectorAll('.Tabs-listItem[aria-label="Pages"]').forEach(el => {
        el.style.display = 'none';
      });
    };

    // Initial try (covers already-rendered nodes)
    hide();

    // Observe future changes
    const observer = new MutationObserver(mutations => {
      for (const m of mutations) {
        // Check new nodes and attribute changes
        if (m.type === 'childList') {
          m.addedNodes.forEach(node => {
            if (node.nodeType === 1) {
              if (node.matches?.('.Tabs-listItem[aria-label="Pages"]')) {
                node.style.display = 'none';
              }
              // Also scan descendants in case a container was added
              hide(node);
            }
          });
        } else if (m.type === 'attributes') {
          const target = m.target;
          if (target.matches?.('.Tabs-listItem[aria-label="Pages"]')) {
            target.style.display = 'none';
          }
        }
      }
    });

    // Pick the narrowest stable container if possible
    const tablist = document.querySelector('.Tabs[role="tablist"], .Tabs.Tabs-list, .Tabs');
    observer.observe(tablist || document.body, {
      childList: true,
      subtree: true,
      attributes: true,
      attributeFilter: ['class', 'style', 'aria-label'] // keep it efficient
    });
   })();
// END hides pages tab from search  



// Check if the current path matches the target path
if (window.location.pathname === "/onetrust/page/partners") {
   document.getElementById("checklist-steps").insertAdjacentHTML('afterbegin', `
          <div class="checklist-progress_inner__step">
            <label for="step-1">Sign Up</label>
          </div>
          <div class="checklist-progress_inner__step">
            <label for="step-2">System Info</label>
          </div>
          <div class="checklist-progress_inner__step">
            <label for="step-3">Integration Details</label>
          </div>
          <div class="checklist-progress_inner__step">
            <label for="step-4">Publishing</label>
          </div>
          <div class="checklist-progress_inner__step">
            <label for="step-5">Resources</label>
          </div>
            `); 
   document.getElementById("checklist-container").insertAdjacentHTML('beforeend', `
  		<a class="btn btn-light-checklist" href="javascript:void(0);" onclick="showModal()">Jump into the Detailed Requirements</a>
			`);
  document.getElementById("checklist-radios").outerHTML = `
                <input checked="checked" id="step-1" name="step" type="radio">
                <input id="step-2" name="step" type="radio">
                <input id="step-3" name="step" type="radio">
                <input id="step-4" name="step" type="radio">
                <input id="step-5" name="step" type="radio">
            `;
document.querySelectorAll('.step-navigation').forEach(element => {
            element.innerHTML = `
                <button id="prev-button" onclick="moveStep(-1)"><span>&#9664;</span></button>
          			<button id="next-button" onclick="moveStep(1)"><span>&#9654;</span></button>
            `;
        });  
    // Function to load a script and call a callback once it's loaded
    function loadScript(src, callback) {
        var script = document.createElement('script');
        script.src = src;
        script.crossOrigin = "anonymous";
        script.referrerPolicy = "no-referrer";
        script.onload = callback;
        document.head.appendChild(script);
    }

    // Function to load a stylesheet
    function loadStylesheet(href) {
        var link = document.createElement('link');
        link.href = href;
        link.rel = "stylesheet";
        link.crossOrigin = "anonymous";
        link.referrerPolicy = "no-referrer";
        document.head.appendChild(link);
    }
    // Load stylesheets
    const stylesheets = [
        "https://cdnjs.cloudflare.com/ajax/libs/bootstrap/4.5.3/css/bootstrap.min.css",
        "https://cdn.lineicons.com/4.0/lineicons.css",
        "https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.min.css",
        "https://cdnjs.cloudflare.com/ajax/libs/nivo-lightbox/1.3.1/nivo-lightbox.css",
        "https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.theme.default.css",
        "https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/magnific-popup.css"
    ];

    stylesheets.forEach(loadStylesheet);

    // Load jQuery first, then other scripts, and finally the scroll function
    loadScript("https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js", function () {
        const scripts = [
            "https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.7.1/modernizr.min.js",
            "https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/js/bootstrap.min.js",
            "https://cdnjs.cloudflare.com/ajax/libs/stickyNavbar.js/1.3.5/jquery.stickyNavbar.min.js",
            "https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js",
            "https://cdnjs.cloudflare.com/ajax/libs/popper.js/2.9.3/umd/popper.min.js",
            "https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js",
            "https://cdnjs.cloudflare.com/ajax/libs/nivo-lightbox/1.3.1/nivo-lightbox.js",
            "https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/jquery.magnific-popup.min.js",
            'https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.10/vue.min.js'
        ];

        scripts.forEach(function (src, index) {
            loadScript(src, index === scripts.length - 1);
        });
    });




    /*! modernizr 3.7.1 (Custom Build) | MIT *
    * https://modernizr.com/download/?-cssanimations-csscolumns-customelements-flexbox-history-picture-pointerevents-postmessage-sizes-srcset-webgl-websockets-webworkers-addtest-domprefixes-hasevent-mq-prefixedcssvalue-prefixes-setclasses-testallprops-testprop-teststyles !*/
    !function (e, t, n) { function r(e, t) { return typeof e === t } function o(e) { var t = b.className, n = Modernizr._config.classPrefix || ""; if (S && (t = t.baseVal), Modernizr._config.enableJSClass) { var r = new RegExp("(^|\\s)" + n + "no-js(\\s|$)"); t = t.replace(r, "$1" + n + "js$2") } Modernizr._config.enableClasses && (e.length > 0 && (t += " " + n + e.join(" " + n)), S ? b.className.baseVal = t : b.className = t) } function i(e, t) { if ("object" == typeof e) for (var n in e) E(e, n) && i(n, e[n]); else { e = e.toLowerCase(); var r = e.split("."), s = Modernizr[r[0]]; if (2 === r.length && (s = s[r[1]]), void 0 !== s) return Modernizr; t = "function" == typeof t ? t() : t, 1 === r.length ? Modernizr[r[0]] = t : (!Modernizr[r[0]] || Modernizr[r[0]] instanceof Boolean || (Modernizr[r[0]] = new Boolean(Modernizr[r[0]])), Modernizr[r[0]][r[1]] = t), o([(t && !1 !== t ? "" : "no-") + r.join("-")]), Modernizr._trigger(e, t) } return Modernizr } function s() { return "function" != typeof t.createElement ? t.createElement(arguments[0]) : S ? t.createElementNS.call(t, "http://www.w3.org/2000/svg", arguments[0]) : t.createElement.apply(t, arguments) } function a() { var e = t.body; return e || (e = s(S ? "svg" : "body"), e.fake = !0), e } function l(e, n, r, o) { var i, l, u, f, c = "modernizr", d = s("div"), p = a(); if (parseInt(r, 10)) for (; r--;)u = s("div"), u.id = o ? o[r] : c + (r + 1), d.appendChild(u); return i = s("style"), i.type = "text/css", i.id = "s" + c, (p.fake ? p : d).appendChild(i), p.appendChild(d), i.styleSheet ? i.styleSheet.cssText = e : i.appendChild(t.createTextNode(e)), d.id = c, p.fake && (p.style.background = "", p.style.overflow = "hidden", f = b.style.overflow, b.style.overflow = "hidden", b.appendChild(p)), l = n(d, e), p.fake ? (p.parentNode.removeChild(p), b.style.overflow = f, b.offsetHeight) : d.parentNode.removeChild(d), !!l } function u(e, t) { return !!~("" + e).indexOf(t) } function f(e) { return e.replace(/([A-Z])/g, function (e, t) { return "-" + t.toLowerCase() }).replace(/^ms-/, "-ms-") } function c(t, n, r) { var o; if ("getComputedStyle" in e) { o = getComputedStyle.call(e, t, n); var i = e.console; if (null !== o) r && (o = o.getPropertyValue(r)); else if (i) { var s = i.error ? "error" : "log"; i[s].call(i, "getComputedStyle returning null, its possible modernizr test results are inaccurate") } } else o = !n && t.currentStyle && t.currentStyle[r]; return o } function d(t, r) { var o = t.length; if ("CSS" in e && "supports" in e.CSS) { for (; o--;)if (e.CSS.supports(f(t[o]), r)) return !0; return !1 } if ("CSSSupportsRule" in e) { for (var i = []; o--;)i.push("(" + f(t[o]) + ":" + r + ")"); return i = i.join(" or "), l("@supports (" + i + ") { #modernizr { position: absolute; } }", function (e) { return "absolute" === c(e, null, "position") }) } return n } function p(e) { return e.replace(/([a-z])-([a-z])/g, function (e, t, n) { return t + n.toUpperCase() }).replace(/^-/, "") } function m(e, t, o, i) { function a() { f && (delete L.style, delete L.modElem) } if (i = !r(i, "undefined") && i, !r(o, "undefined")) { var l = d(e, o); if (!r(l, "undefined")) return l } for (var f, c, m, h, v, A = ["modernizr", "tspan", "samp"]; !L.style && A.length;)f = !0, L.modElem = s(A.shift()), L.style = L.modElem.style; for (m = e.length, c = 0; c < m; c++)if (h = e[c], v = L.style[h], u(h, "-") && (h = p(h)), L.style[h] !== n) { if (i || r(o, "undefined")) return a(), "pfx" !== t || h; try { L.style[h] = o } catch (e) { } if (L.style[h] !== v) return a(), "pfx" !== t || h } return a(), !1 } function h(e, t) { return function () { return e.apply(t, arguments) } } function v(e, t, n) { var o; for (var i in e) if (e[i] in t) return !1 === n ? e[i] : (o = t[e[i]], r(o, "function") ? h(o, n || t) : o); return !1 } function A(e, t, n, o, i) { var s = e.charAt(0).toUpperCase() + e.slice(1), a = (e + " " + z.join(s + " ") + s).split(" "); return r(t, "string") || r(t, "undefined") ? m(a, t, o, i) : (a = (e + " " + x.join(s + " ") + s).split(" "), v(a, t, n)) } function g(e, t, r) { return A(e, n, n, t, r) } var y = [], w = { _version: "3.7.1", _config: { classPrefix: "", enableClasses: !0, enableJSClass: !0, usePrefixes: !0 }, _q: [], on: function (e, t) { var n = this; setTimeout(function () { t(n[e]) }, 0) }, addTest: function (e, t, n) { y.push({ name: e, fn: t, options: n }) }, addAsyncTest: function (e) { y.push({ name: null, fn: e }) } }, Modernizr = function () { }; Modernizr.prototype = w, Modernizr = new Modernizr; var C = [], b = t.documentElement, S = "svg" === b.nodeName.toLowerCase(), _ = "Moz O ms Webkit", x = w._config.usePrefixes ? _.toLowerCase().split(" ") : []; w._domPrefixes = x; var T = w._config.usePrefixes ? " -webkit- -moz- -o- -ms- ".split(" ") : ["", ""]; w._prefixes = T; var E; !function () { var e = {}.hasOwnProperty; E = r(e, "undefined") || r(e.call, "undefined") ? function (e, t) { return t in e && r(e.constructor.prototype[t], "undefined") } : function (t, n) { return e.call(t, n) } }(), w._l = {}, w.on = function (e, t) { this._l[e] || (this._l[e] = []), this._l[e].push(t), Modernizr.hasOwnProperty(e) && setTimeout(function () { Modernizr._trigger(e, Modernizr[e]) }, 0) }, w._trigger = function (e, t) { if (this._l[e]) { var n = this._l[e]; setTimeout(function () { var e; for (e = 0; e < n.length; e++)(0, n[e])(t) }, 0), delete this._l[e] } }, Modernizr._q.push(function () { w.addTest = i }); var P = function () { function e(e, r) { var o; return !!e && (r && "string" != typeof r || (r = s(r || "div")), e = "on" + e, o = e in r, !o && t && (r.setAttribute || (r = s("div")), r.setAttribute(e, ""), o = "function" == typeof r[e], r[e] !== n && (r[e] = n), r.removeAttribute(e)), o) } var t = !("onblur" in b); return e }(); w.hasEvent = P; var k = function () { var t = e.matchMedia || e.msMatchMedia; return t ? function (e) { var n = t(e); return n && n.matches || !1 } : function (t) { var n = !1; return l("@media " + t + " { #modernizr { position: absolute; } }", function (t) { n = "absolute" === (e.getComputedStyle ? e.getComputedStyle(t, null) : t.currentStyle).position }), n } }(); w.mq = k; var B = function (e, t) { var n = !1, r = s("div"), o = r.style; if (e in o) { var i = x.length; for (o[e] = t, n = o[e]; i-- && !n;)o[e] = "-" + x[i] + "-" + t, n = o[e] } return "" === n && (n = !1), n }; w.prefixedCSSValue = B; var z = w._config.usePrefixes ? _.split(" ") : []; w._cssomPrefixes = z; var O = { elem: s("modernizr") }; Modernizr._q.push(function () { delete O.elem }); var L = { style: O.elem.style }; Modernizr._q.unshift(function () { delete L.style }), w.testAllProps = A, w.testAllProps = g; w.testProp = function (e, t, r) { return m([e], n, t, r) }, w.testStyles = l; Modernizr.addTest("customelements", "customElements" in e), Modernizr.addTest("history", function () { var t = navigator.userAgent; return (-1 === t.indexOf("Android 2.") && -1 === t.indexOf("Android 4.0") || -1 === t.indexOf("Mobile Safari") || -1 !== t.indexOf("Chrome") || -1 !== t.indexOf("Windows Phone") || "file:" === location.protocol) && (e.history && "pushState" in e.history) }), Modernizr.addTest("pointerevents", function () { var e = !1, t = x.length; for (e = Modernizr.hasEvent("pointerdown"); t-- && !e;)P(x[t] + "pointerdown") && (e = !0); return e }); var N = new Boolean("postMessage" in e); N.structuredclones = !0; try { e.postMessage({ toString: function () { N.structuredclones = !1 } }, "*") } catch (e) { } Modernizr.addTest("postmessage", N), Modernizr.addTest("webgl", function () { return "WebGLRenderingContext" in e }); var R = !1; try { R = "WebSocket" in e && 2 === e.WebSocket.CLOSING } catch (e) { } Modernizr.addTest("websockets", R), Modernizr.addTest("cssanimations", g("animationName", "a", !0)), function () { Modernizr.addTest("csscolumns", function () { var e = !1, t = g("columnCount"); try { e = !!t, e && (e = new Boolean(e)) } catch (e) { } return e }); for (var e, t, n = ["Width", "Span", "Fill", "Gap", "Rule", "RuleColor", "RuleStyle", "RuleWidth", "BreakBefore", "BreakAfter", "BreakInside"], r = 0; r < n.length; r++)e = n[r].toLowerCase(), t = g("column" + n[r]), "breakbefore" !== e && "breakafter" !== e && "breakinside" !== e || (t = t || g(n[r])), Modernizr.addTest("csscolumns." + e, t) }(), Modernizr.addTest("flexbox", g("flexBasis", "1px", !0)), Modernizr.addTest("picture", "HTMLPictureElement" in e), Modernizr.addAsyncTest(function () { var e, t, n, r = s("img"), o = "sizes" in r; !o && "srcset" in r ? (t = "data:image/gif;base64,R0lGODlhAgABAPAAAP///wAAACH5BAAAAAAALAAAAAACAAEAAAICBAoAOw==", e = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==", n = function () { i("sizes", 2 === r.width) }, r.onload = n, r.onerror = n, r.setAttribute("sizes", "9px"), r.srcset = e + " 1w," + t + " 8w", r.src = e) : i("sizes", o) }), Modernizr.addTest("srcset", "srcset" in s("img")), Modernizr.addTest("webworkers", "Worker" in e), function () { var e, t, n, o, i, s, a; for (var l in y) if (y.hasOwnProperty(l)) { if (e = [], t = y[l], t.name && (e.push(t.name.toLowerCase()), t.options && t.options.aliases && t.options.aliases.length)) for (n = 0; n < t.options.aliases.length; n++)e.push(t.options.aliases[n].toLowerCase()); for (o = r(t.fn, "function") ? t.fn() : t.fn, i = 0; i < e.length; i++)s = e[i], a = s.split("."), 1 === a.length ? Modernizr[a[0]] = o : (!Modernizr[a[0]] || Modernizr[a[0]] instanceof Boolean || (Modernizr[a[0]] = new Boolean(Modernizr[a[0]])), Modernizr[a[0]][a[1]] = o), C.push((o ? "" : "no-") + a.join("-")) } }(), o(C), delete w.addTest, delete w.addAsyncTest; for (var j = 0; j < Modernizr._q.length; j++)Modernizr._q[j](); e.Modernizr = Modernizr }(window, document);
    (function ($) {

        "use strict";


        /* Screens Shot Slider
        =============================*/
        var owl = $(".touch-slider");
        owl.owlCarousel({
            center: true,
            navigation: false,
            pagination: true,
            slideSpeed: 1000,
            stopOnHover: true,
            autoPlay: true,
            touchDrag: true,
            responsive: {
                0: {
                    items: 1
                },

                480: {
                    items: 2
                },

                768: {
                    items: 3
                },

                992: {
                    items: 4
                },

                1199: {
                    items: 5
                }
            },
            items: 5,
            itemsDesktopSmall: [1024, 3],
            itemsTablet: [600, 1],
            itemsMobile: [479, 1]
        });


        // for menu scroll 
        $('.page-scroll').click(function () {
            var hash = this.hash;
            var position = $(hash).offset().top - 60;
            $('html').animate({
                scrollTop: position
            }, 900);
        });


        /* 
         One Page Navigation & wow js
         ========================================================================== */

        $(window).on('load', function () {

            $('body').scrollspy({
                target: '.navbar-collapse',
                offset: 195
            });

            $(window).on('scroll', function () {
                if ($(window).scrollTop() > 100) {
                    $('.fixed-top').addClass('menu-bg');
                } else {
                    $('.fixed-top').removeClass('menu-bg');
                }
            });

        });

        /* Auto Close Responsive Navbar on Click
        ========================================================*/
        function close_toggle() {
            if ($(window).width() <= 768) {
                $('.navbar-collapse a').on('click', function () {
                    $('.navbar-collapse').collapse('hide');
                });
            }
            else {
                $('.navbar .navbar-inverse a').off('click');
            }
        }
        close_toggle();
        $(window).resize(close_toggle);

        /* Nivo Lightbox
        ========================================================*/
        $('.lightbox').nivoLightbox({
            effect: 'fadeScale',
            keyboardNav: true,
        });

    });

    /*
     * jQuery One Page Nav Plugin
     * http://github.com/davist11/jQuery-One-Page-Nav
     *
     * Copyright (c) 2010 Trevor Davis (http://trevordavis.net)
     * Dual licensed under the MIT and GPL licenses.
     * Uses the same license as jQuery, see:
     * http://jquery.org/license
     *
     * @version 3.0.0
     *
     * Example usage:
     * $('#nav').onePageNav({
     *   currentClass: 'current',
     *   changeHash: false,
     *   scrollSpeed: 750
     * });
     */

    (function ($, window, document, undefined) {

        // our plugin constructor
        var OnePageNav = function (elem, options) {
            this.elem = elem;
            this.$elem = $(elem);
            this.options = options;
            this.metadata = this.$elem.data('plugin-options');
            this.$win = $(window);
            this.sections = {};
            this.didScroll = false;
            this.$doc = $(document);
            this.docHeight = this.$doc.height();
        };

        // the plugin prototype
        OnePageNav.prototype = {
            defaults: {
                navItems: 'a',
                currentClass: 'current',
                changeHash: false,
                easing: 'swing',
                filter: '',
                scrollSpeed: 750,
                scrollThreshold: 0.5,
                begin: false,
                end: false,
                scrollChange: false
            },

            init: function () {
                // Introduce defaults that can be extended either
                // globally or using an object literal.
                this.config = $.extend({}, this.defaults, this.options, this.metadata);

                this.$nav = this.$elem.find(this.config.navItems);

                //Filter any links out of the nav
                if (this.config.filter !== '') {
                    this.$nav = this.$nav.filter(this.config.filter);
                }

                //Handle clicks on the nav
                this.$nav.on('click.onePageNav', $.proxy(this.handleClick, this));

                //Get the section positions
                this.getPositions();

                //Handle scroll changes
                this.bindInterval();

                //Update the positions on resize too
                this.$win.on('resize.onePageNav', $.proxy(this.getPositions, this));

                return this;
            },

            adjustNav: function (self, $parent) {
                self.$elem.find('.' + self.config.currentClass).removeClass(self.config.currentClass);
                $parent.addClass(self.config.currentClass);
            },

            bindInterval: function () {
                var self = this;
                var docHeight;

                self.$win.on('scroll.onePageNav', function () {
                    self.didScroll = true;
                });

                self.t = setInterval(function () {
                    docHeight = self.$doc.height();

                    //If it was scrolled
                    if (self.didScroll) {
                        self.didScroll = false;
                        self.scrollChange();
                    }

                    //If the document height changes
                    if (docHeight !== self.docHeight) {
                        self.docHeight = docHeight;
                        self.getPositions();
                    }
                }, 250);
            },

            getHash: function ($link) {
                return $link.attr('href').split('#')[1];
            },

            getPositions: function () {
                var self = this;
                var linkHref;
                var topPos;
                var $target;

                self.$nav.each(function () {
                    linkHref = self.getHash($(this));
                    $target = $('#' + linkHref);

                    if ($target.length) {
                        topPos = $target.offset().top;
                        self.sections[linkHref] = Math.round(topPos);
                    }
                });
            },

            getSection: function (windowPos) {
                var returnValue = null;
                var windowHeight = Math.round(this.$win.height() * this.config.scrollThreshold);

                for (var section in this.sections) {
                    if ((this.sections[section] - windowHeight) < windowPos) {
                        returnValue = section;
                    }
                }

                return returnValue;
            },

            handleClick: function (e) {
                var self = this;
                var $link = $(e.currentTarget);
                var $parent = $link.parent();
                var newLoc = '#' + self.getHash($link);

                if (!$parent.hasClass(self.config.currentClass)) {
                    //Start callback
                    if (self.config.begin) {
                        self.config.begin();
                    }

                    //Change the highlighted nav item
                    self.adjustNav(self, $parent);

                    //Removing the auto-adjust on scroll
                    self.unbindInterval();

                    //Scroll to the correct position
                    self.scrollTo(newLoc, function () {
                        //Do we need to change the hash?
                        if (self.config.changeHash) {
                            window.location.hash = newLoc;
                        }

                        //Add the auto-adjust on scroll back in
                        self.bindInterval();

                        //End callback
                        if (self.config.end) {
                            self.config.end();
                        }
                    });
                }

                e.preventDefault();
            },

            scrollChange: function () {
                var windowTop = this.$win.scrollTop();
                var position = this.getSection(windowTop);
                var $parent;

                //If the position is set
                if (position !== null) {
                    $parent = this.$elem.find('a[href$="#' + position + '"]').parent();

                    //If it's not already the current section
                    if (!$parent.hasClass(this.config.currentClass)) {
                        //Change the highlighted nav item
                        this.adjustNav(this, $parent);

                        //If there is a scrollChange callback
                        if (this.config.scrollChange) {
                            this.config.scrollChange($parent);
                        }
                    }
                }
            },

            scrollTo: function (target, callback) {
                var offset = $(target).offset().top;

                $('html, body').animate({
                    scrollTop: offset
                }, this.config.scrollSpeed, this.config.easing, callback);
            },

            unbindInterval: function () {
                clearInterval(this.t);
                this.$win.unbind('scroll.onePageNav');
            }
        };
      
      

        OnePageNav.defaults = OnePageNav.prototype.defaults;

        $.fn.onePageNav = function (options) {
            return this.each(function () {
                new OnePageNav(this, options).init();
            });
        };

    });


    //jQuery to collapse the navbar on scroll
    window.addEventListener('scroll', function () {
        if (window.pageYOffset > 50) {
            $(".navbar-fixed-top").addClass("top-nav-collapse");
        } else {
            $(".navbar-fixed-top").removeClass("top-nav-collapse");
        }
    });
    //jQuery for page scrolling feature - requires jQuery Easing plugin
    $(function () {

        $('a.page-scroll[href*="#"]:not([href="#"])').on('click', function () {
            if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
                var target = $(this.hash);
                target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
                if (target.length) {
                    $('html, body').animate({
                        scrollTop: (target.offset().top - 80)
                    }, 1500, "easeInOutExpo");
                    return false;
                }
            }
        });

    });
  // sticky menu 
$(window).on('scroll', function (event) {
    var scroll = $(window).scrollTop();
    if (scroll < 20) {
        $(".navbar-area").removeClass("sticky menu-bg");
    } else {
        $(".navbar-area").addClass("sticky menu-bg");
    }
    //===== Section Menu Active
    var scrollLink = $('.page-scroll');
    var scrollbarLocation = $(this).scrollTop();
    scrollLink.each(function () {
        var sectionOffset = $(this.hash).offset().top - 73;
        if (sectionOffset <= scrollbarLocation) {
            $(this).parent().addClass('active');
            $(this).parent().siblings().removeClass('active');
        }
    });
});


//checklist modal 
  function showModal() {
        
    document.getElementById("checklist-modal").style.display = "block";
    
  }

  function closeModal() {
    document.getElementById("checklist-modal").style.display = "none";
  }

  window.onclick = function (event) {
    var modal = document.getElementById("checklist-modal");
    if (event.target == modal) {
      modal.style.display = "none";
    }
  }

//===== close navbar-collapse when a  clicked

$(".navbar-nav a").on('click', function () {
    $(".navbar-collapse").removeClass("show");
});

$(".navbar-toggler").on('click', function () {
    $(this).toggleClass("active");
});

$(".navbar-nav a").on('click', function () {
    $(".navbar-toggler").removeClass('active');
}); 

            const steps = document.querySelectorAll('input[name="step"]');
            let currentStep = 0;

            function updateButtons() {
                const buttons = document.getElementsByTagName('button');
                for (let button of buttons) {
                    if (button.id === 'prev-button') {
                        button.disabled = currentStep === 0;
                    } else if (button.id === 'next-button') {
                      if(currentStep === steps.length - 1){
                      button.outerHTML = '<button id="next-button" onclick="closeModal()"><span>Finish</span></button>';
                      }else{
                        button.outerHTML = '<button id="next-button" onclick="moveStep(1)"><span>&#9654;</span></button>'
                      }
                       
                    }
                }
            }

            function moveStep(direction) {
                steps[currentStep].checked = false;
                currentStep += direction;
                steps[currentStep].checked = true;
                updateButtons();
            }

            // Initial button state
            updateButtons();
}
// Replace client flow with bearer token flow
let capturedScopes = [];

console.log('[Scopes] Script loaded');

// Extract scopes from the Tippy dropdown after clicking
function captureScopesFromDropdown() {
  console.log('[Scopes] captureScopesFromDropdown called');
  
  if (capturedScopes.length > 0) {
    console.log('[Scopes] Already have scopes:', capturedScopes);
    return;
  }
  
  const scopesButton = document.querySelector('.rm-APIAuth [class*="oauth-scopes"] .Dropdown-toggle');
  console.log('[Scopes] Scopes button found:', !!scopesButton);
  
  if (!scopesButton) return;
  
  // Click to open the Tippy dropdown
  console.log('[Scopes] Clicking dropdown to reveal scopes...');
  scopesButton.click();
  
  setTimeout(() => {
    // Find scope items in the Tippy popup - look for Menu-Item elements
    const menuItems = document.querySelectorAll('.tippy-box .Menu-Item, [data-tippy-root] .Menu-Item');
    console.log('[Scopes] Menu items found:', menuItems.length);
    
    menuItems.forEach(item => {
      // Get scope name from the scopes-text span
      const nameEl = item.querySelector('[class*="oauth-scopes-text"]');
      const descEl = item.querySelector('.Menu-Item-description');
      
      const name = nameEl?.textContent?.trim();
      const description = descEl?.textContent?.trim() || `OAuth2 scope: ${name}`;
      
      console.log('[Scopes] Found scope:', name, '-', description);
      
      if (name && !capturedScopes.find(s => s.name === name)) {
        capturedScopes.push({ name, description });
      }
    });
    
    console.log('[Scopes] Captured scopes:', capturedScopes);
    
    // Close the dropdown
    scopesButton.click();
  }, 0);
}

// Create custom scopes pills
function createScopesPills(scopes) {
  const container = document.createElement('div');
  container.className = 'custom-scopes';
  
  if (scopes.length === 0) {
    container.innerHTML = '<div class="custom-scopes-label">No scopes required</div>';
    return container;
  }
  
  const label = document.createElement('div');
  label.className = 'custom-scopes-label';
  label.textContent = 'Scopes';
  container.appendChild(label);
  
  scopes.forEach(scope => {
    const pill = document.createElement('span');
    pill.className = 'scope-pill';
    pill.textContent = scope.name;
    
    const tooltip = document.createElement('span');
    tooltip.className = 'scope-tooltip';
    tooltip.textContent = scope.description;
    pill.appendChild(tooltip);
    
    container.appendChild(pill);
  });
  
  return container;
}

// Inject scopes after token input
function injectCustomScopes() {
  console.log('[Scopes] injectCustomScopes called');
  const tokenRow = document.querySelector('.InputGroup-oauth-flow-token');
  const existing = document.querySelector('.custom-scopes');
  
  console.log('[Scopes] Token row found:', !!tokenRow);
  console.log('[Scopes] Existing custom scopes:', !!existing);
  console.log('[Scopes] Captured scopes count:', capturedScopes.length);
  
  if (tokenRow && !existing && capturedScopes.length > 0) {
    console.log('[Scopes] Injecting scopes pills...');
    tokenRow.after(createScopesPills(capturedScopes));
  } else if (tokenRow && !existing && capturedScopes.length === 0) {
    console.log('[Scopes] No scopes to inject');
  }
}

// Click "Use Your Own Token" button
function clickUseOwnToken() {
  console.log('[Scopes] clickUseOwnToken called');
  const buttons = document.querySelectorAll('.rm-APIAuth button');
  console.log('[Scopes] Found buttons:', buttons.length);
  
  for (const btn of buttons) {
    console.log('[Scopes] Button text:', btn.textContent.trim());
    if (btn.textContent.trim() === 'Use Your Own Token') {
      console.log('[Scopes] Clicking "Use Your Own Token" button');
      btn.click();
      return true;
    }
  }
  console.log('[Scopes] "Use Your Own Token" button not found');
  return false;
}

// Main flow - runs on each page load
function initBearerTokenMode() {
  console.log('[Scopes] initBearerTokenMode called');
  capturedScopes = []; // Reset for new page
  
  const scopesDropdown = document.querySelector('.rm-APIAuth [class*="oauth-scopes"]');
  const clientFlow = document.querySelector('.InputGroup-oauth-flow-client');
  
  console.log('[Scopes] Scopes dropdown found:', !!scopesDropdown);
  console.log('[Scopes] Client flow found:', !!clientFlow);
  
  // First capture scopes while original dropdown exists
  if (scopesDropdown) {
    captureScopesFromDropdown();
  }
  
  // Delay to allow scope capture (dropdown opens, captures, closes), then switch to token mode
  setTimeout(() => {
    console.log('[Scopes] After 500ms delay, captured scopes:', capturedScopes);
    if (document.querySelector('.InputGroup-oauth-flow-client')) {
      clickUseOwnToken();
    }
    
    // Inject custom scopes after switching
    setTimeout(() => {
      console.log('[Scopes] After 400ms delay, injecting...');
      if (document.querySelector('.InputGroup-oauth-flow-token')) {
        injectCustomScopes();
      } else {
        console.log('[Scopes] Token flow not found after switching');
      }
    }, 400);
  }, 500);
}

// Use ReadMe's pageLoad event
$(window).on('pageLoad', () => {
  console.log('[Scopes] pageLoad event fired');
  initBearerTokenMode();
});

// Also run on initial load
$(document).ready(() => {
  console.log('[Scopes] document.ready fired');
  initBearerTokenMode();
});




// Track the current URL path to detect changes
var lastPath = window.location.pathname;

// Simple banner display function
function displayBanner() {
    // Get the container element
    var contentElement = document.getElementById('hub-search-results');
    if (!contentElement) return;
    
    // Update lastPath for future comparisons
    lastPath = window.location.pathname;
    
    // Remove any existing banners first
    var existingRecipeCallout = contentElement.querySelector('.onetrust-custom-callout');
  	var existingCMPCallout = contentElement.querySelector('.onetrust-custom-callout-cmp');    
		var existingOASCallout = contentElement.querySelector('.onetrust-custom-callout-oas');


    
    if (existingRecipeCallout && existingRecipeCallout.parentElement) {
        existingRecipeCallout.parentElement.removeChild(existingRecipeCallout);
    }
    if (existingCMPCallout && existingCMPCallout.parentElement) {
        existingCMPCallout.parentElement.removeChild(existingCMPCallout);
    }
		if (existingOASCallout && existingOASCallout.parentElement) {
        existingOASCallout.parentElement.removeChild(existingOASCallout);
    }
    
    // Get current path
    var path = window.location.pathname;
    
    // New element for banner
    var newElement = document.createElement('div');
    newElement.className = 'rm-Markdown markdown-body';
    newElement.setAttribute('data-testid', 'RDMD');
    
    // Choose banner based on path
    if (path === '/onetrust/recipes') {
        //console.log('Displaying Recipe banner');
        newElement.innerHTML = `<blockquote class="callout callout_warning onetrust-custom-callout" theme="🚧">
            <p>The code samples provided here are intended as starting points for various use cases. We encourage you to thoroughly test any code. Use of these samples is at your own risk. Please note that OneTrust does not offer implementation support for these Recipes but welcomes your feedback and suggestions for new Recipes. If you want to provide feedback, please leverage the Help widget in the bottom right corner of your screen.</p>
        </blockquote>`;
        contentElement.insertBefore(newElement, contentElement.firstChild);
    } else if (path.includes('/docs/')) {
        //console.log('Displaying CMP banner');
        newElement.innerHTML = `<blockquote class="callout callout_error onetrust-custom-callout-cmp" theme="❗">
            <p style="color: black;">We strongly recommend all CMP users deploying Mobile &amp; OTT/CTV SDKs to migrate to our next generation of CMP SDKs for a seamless experience and enhanced efficiency and scalability. For more information, see <a href="https://developer.onetrust.com/onetrust/docs/onetrusts-next-generation-cmp-sdks" target="_blank" rel="noopener noreferrer">OneTrust Next Generation CMP SDKs</a>.</p>
        </blockquote>`;
        contentElement.insertBefore(newElement, contentElement.firstChild);
    } else {
        //console.log('No banner needed for path: ' + path);
    }
}

// Check if URL has changed
function checkURLChange() {
    var currentPath = window.location.pathname;
    if (currentPath !== lastPath) {
        //console.log('URL changed from', lastPath, 'to', currentPath);
        setTimeout(displayBanner, 500);
    }
}

// Hook into history API to detect client-side navigation
function addHistoryChangeListener() {
    // Store references to original history methods
    var originalPushState = history.pushState;
    var originalReplaceState = history.replaceState;
    
    // Override history.pushState
    history.pushState = function() {
        originalPushState.apply(this, arguments);
        setTimeout(displayBanner, 500);
    };
    
    // Override history.replaceState
    history.replaceState = function() {
        originalReplaceState.apply(this, arguments);
        setTimeout(displayBanner, 500);
    };
}

// Set up periodic URL checking
function startURLMonitoring() {
    // Check URL every 500ms
    setInterval(checkURLChange, 500);
    
    // Add listener for click events on anchor tags
    document.addEventListener('click', function(e) {
        if (e.target.tagName === 'A' || e.target.closest('a')) {
            // A link was clicked, check for URL change after a delay
            setTimeout(checkURLChange, 500);
        }
    });
}

// Set up one-time event listeners
document.addEventListener('DOMContentLoaded', function() {
    // First attempt when DOM is ready with 1000ms delay
    setTimeout(displayBanner, 1000);
    
    // Hook into history API
    addHistoryChangeListener();
    
    // Start URL monitoring
    startURLMonitoring();
    
    // Set up a single listener for popstate (browser back/forward)
    window.addEventListener('popstate', function() {
        // Add delay before showing banner after navigation
        setTimeout(displayBanner, 500);
    });
});

// Add banner when page load is complete (backup)
window.addEventListener('load', function() {
    setTimeout(displayBanner, 1000);
});


// Brave Shield Warning 
function isBraveShieldsUp() {
    if (window.navigator.brave != undefined) {
        if (window.navigator.brave.isBrave.name == "isBrave") {
            //if (!window.navigator.plugins[0][0].type){
            document.getElementById("brave-warning").style.display = "block";
            return true;
            // }
        } else {
            return false;
        }
    } else {
        return false;
    }
}
isBraveShieldsUp();

// start of x-onetrust
// Creates x-onetrust Tags in UI 
// function createTags(tags, data, oasUrl, callback) {
//     /*
//     "x-onetrust": {
//        "highly-available": true,
//        "highly-available-link": "Helpful Link for HA",
//        "release-status": "Public Preview | Sunset Period | Deprecated",
//        "release-status-link": "link to changelog if needed",
//        "spec-label": "OpenAPI 3.1.0"
//      }
//      */
//     const fragment = document.createDocumentFragment();
//     const divTags = document.createElement("div");
//     divTags.className = "ot-tags-container";
//     divTags.id = "ot-tags-container";

//     // Check if highly-available is true
//     if (tags && tags["highly-available"] === true) {
//         const haSpan = document.createElement("span");
//         haSpan.className = "ot-tags ot-tags-ha";
//         haSpan.onclick = function () {
//             window.open("https://developer.onetrust.com/onetrust/reference/consent-preference-management-api-service-level-objectives", "_blank");
//         };
//         haSpan.setAttribute("style", "float: right;margin-top: 10px;");
//         haSpan.setAttribute("apimethod_version", "");
//         haSpan.textContent = "Highly Available";
//         divTags.appendChild(haSpan);
//     }

//     // Check if release-status exists
//     if (tags && tags["release-status"]) {
//         const rsSpan = document.createElement("span");
//         rsSpan.className = "ot-tags ot-tags-rs";
//         rsSpan.onclick = function () {
//             if (tags["release-status-link"]) {
//                 window.open(tags["release-status-link"], "_blank");
//             }
//         };
//         rsSpan.setAttribute("style", "float: right;margin-top: 10px;");
//         rsSpan.setAttribute("apimethod_version", "");
//         rsSpan.textContent = tags["release-status"];
//         divTags.appendChild(rsSpan);

//         // Add hover CSS
//         rsSpan.addEventListener('mouseenter', function () {
//             if (tags["release-status-link"]) {
//                 rsSpan.style.background = "firebrick";
//                 rsSpan.style.cursor = "pointer";
//             }
//         });

//         rsSpan.addEventListener('mouseleave', function () {
//             if (tags["release-status-link"]) {
//                 rsSpan.style.background = ""; // Reset to default
//                 rsSpan.style.cursor = ""; // Reset to default
//             }
//         });
//     }

//     // Check if spec version exists
//     if (data["x-onetrust"]["spec-label"]) {
//         const slSpan = document.createElement("span");
//         slSpan.className = "ot-tags ot-tags-sl";
//         slSpan.onclick = function () {
//             window.open(oasUrl, "_blank"); // Replace with the actual hyperlink
//         };
//         slSpan.setAttribute("style", "float: right;margin-top: 10px;");
//         slSpan.setAttribute("apimethod_version", "");
//         slSpan.textContent = data["x-onetrust"]["spec-label"];
//         divTags.appendChild(slSpan);
//     }

//     fragment.appendChild(divTags);

//     // Call the callback function with the created element
//     callback(fragment);
// }


// Creates Scopes Element in UI 
function createScopeElement(scopes, data, callback) {
    // Create a new div element to contain the scopes
    const newElement = document.createElement('div');
    newElement.classList.add('Info-infoBadge3luOwOnjfNiR');
    newElement.setAttribute('role', '');

    // Create the heading for scopes
    const heading = document.createElement('div');
    heading.classList.add('APISectionHeader-heading4MUMLbp4_nLs');
    heading.textContent = 'SCOPES';
    heading.title = 'The scope signifies the level of access granted to the API endpoint. It is recommended to always choose the scope with the least access to minimize security risks.';
    newElement.appendChild(heading);

    // Create a container for badges
    const badgesContainer = document.createElement('div');
    badgesContainer.classList.add('badges-container');
    badgesContainer.style.paddingLeft = '3px';

    // Create and append badge elements for each scope
    for (const scope of Object.values(scopes)) {
        const badge = document.createElement('span');
        badge.classList.add('Badge', 'Badge_light', 'Badge_circular');
        badge.style.marginLeft = '3px';
        badge.textContent = scope;
        badge.title = data.components.securitySchemes.oauth2.flows.clientCredentials.scopes[scope];
        badgesContainer.appendChild(badge);
    }

    newElement.appendChild(badgesContainer);

    // Call the callback function with the created element
    callback(newElement);
}


// Check for data-raycast-oas attribute and invoke tag/scope rendering
// If data-raycast-oas is missing, "false", or "[object Object]", fetch <current URL>?json=on and use doc.api.apiSetting as fallback
(async function resolveOasAndRender() {
    let oasValue = null;
    let operationId = null;

    // Check for data-raycast-oas
    const raycastOas = document.querySelector('[data-raycast-oas]');
    const raycastOperationId = document.querySelector('[data-raycast-operation-id]');

    if (raycastOas && raycastOas.dataset.raycastOas !== 'false' && raycastOas.dataset.raycastOas !== '[object Object]') {
        oasValue = raycastOas.dataset.raycastOas;
        operationId = raycastOperationId?.dataset.raycastOperationId;
    }

    // If no valid OAS value found, try to get it from the URL
    if (!oasValue) {
        const urlParams = new URLSearchParams(window.location.search);
        if (urlParams.has('json') && urlParams.get('json') === 'on') {
            try {
                const response = await fetch(window.location.href);
                const data = await response.json();
                oasValue = data.api.apiSetting;
                operationId = urlParams.get('operationId');
            } catch (error) {
                console.error('Error fetching JSON:', error);
            }
        }
    }

    if (oasValue) {
        const oasUrl = URLValidator.constructOasUrl(oasValue);
        await printScopesEnhanced(oasUrl, operationId);
    }
})();

// Gets the Scopes from the OAS spec
async function printScopesEnhanced(oasUrl, operationIdToFind) {
    try {
        const response = await fetch(oasUrl);
        if (!response.ok) {
            throw new Error('Failed to fetch OpenAPI spec');
        }
        const data = await response.json();
        const paths = data.paths;
        for (const [path, pathValue] of Object.entries(paths)) {
            for (const [method, methodValue] of Object.entries(pathValue)) {
                if (methodValue.operationId && methodValue.operationId.toLowerCase() === operationIdToFind.toLowerCase()) {
                    if (methodValue.security && methodValue.security.length > 0) {
                        for (const security of methodValue.security) {
                            for (const [securityKey, scopes] of Object.entries(security)) {
                                if (securityKey === 'oauth2' && scopes.length > 0) {
                                    await new Promise(r => setTimeout(r, 200));
                                    createScopeElement(scopes, data, function (newElement) {
                                        const elementToReplace = document.querySelector('.Info-infoBadge3luOwOnjfNiR');
                                        if (elementToReplace) {
                                            elementToReplace.parentNode.replaceChild(newElement, elementToReplace);
                                        }
                                    });
                                    return;
                                }
                            }
                        }
                    }
                    return;
                }
            }
        }
    } catch (error) {
        console.error('Error fetching or processing OpenAPI spec:', error);
    }
}
// end of x-onetrust


// Scripts for Partner Page
// Guard to ensure jQuery is loaded before running the UI enhancement block
if (typeof window.jQuery !== 'undefined') {
    (function ($) {

        "use strict";

        /* Page Loader active
        ========================================================*/
        $('#preloader').fadeOut();


        /* Screens Shot Slider
        =============================*/
        var owl = $(".touch-slider");
        owl.owlCarousel({
            center: true,
            navigation: false,
            pagination: true,
            slideSpeed: 1000,
            stopOnHover: true,
            autoPlay: true,
            touchDrag: true,
            responsive: {
                0: {
                    items: 1
                },

                480: {
                    items: 2
                },

                768: {
                    items: 3
                },

                992: {
                    items: 4
                },

                1199: {
                    items: 5
                }
            },
            items: 5,
            itemsDesktopSmall: [1024, 3],
            itemsTablet: [600, 1],
            itemsMobile: [479, 1]
        });


        // sticky menu 
        $(window).on('scroll', function (event) {
            var scroll = $(window).scrollTop();
            if (scroll < 20) {
                $(".navbar-area").removeClass("sticky menu-bg");
            } else {
                $(".navbar-area").addClass("sticky menu-bg");
            }
        });

        // for menu scroll 
        $('.page-scroll').click(function () {
            var hash = this.hash;
            var position = $(hash).offset().top - 60;
            $('html').animate({
                scrollTop: position
            }, 900);
        });

        //===== Section Menu Active

        var scrollLink = $('.page-scroll');
        // Active link switching
        $(window).scroll(function () {
            var scrollbarLocation = $(this).scrollTop();

            scrollLink.each(function () {

                var sectionOffset = $(this.hash).offset().top - 73;

                if (sectionOffset <= scrollbarLocation) {
                    $(this).parent().addClass('active');
                    $(this).parent().siblings().removeClass('active');
                }
            });
        });


        //===== close navbar-collapse when a  clicked

        $(".navbar-nav a").on('click', function () {
            $(".navbar-collapse").removeClass("show");
        });

        $(".navbar-toggler").on('click', function () {
            $(this).toggleClass("active");
        });

        $(".navbar-nav a").on('click', function () {
            $(".navbar-toggler").removeClass('active');
        });



        /* 
         Back Top Link
         ========================================================================== */
        var offset = 200;
        var duration = 500;
        $(window).scroll(function () {
            if ($(this).scrollTop() > offset) {
                $('.back-to-top').fadeIn(400);
            } else {
                $('.back-to-top').fadeOut(400);
            }
        });

        $('.back-to-top').on('click', function (event) {
            event.preventDefault();
            $('html, body').animate({
                scrollTop: 0
            }, 600);
            return false;
        })

        /* 
         One Page Navigation & wow js
         ========================================================================== */

        $(window).on('load', function () {

            $('body').scrollspy({
                target: '.navbar-collapse',
                offset: 195
            });

            $(window).on('scroll', function () {
                if ($(window).scrollTop() > 100) {
                    $('.fixed-top').addClass('menu-bg');
                } else {
                    $('.fixed-top').removeClass('menu-bg');
                }
            });

        });

        /* Auto Close Responsive Navbar on Click
        ========================================================*/
        function close_toggle() {
            if ($(window).width() <= 768) {
                $('.navbar-collapse a').on('click', function () {
                    $('.navbar-collapse').collapse('hide');
                });
            }
            else {
                $('.navbar .navbar-inverse a').off('click');
            }
        }
        close_toggle();
        $(window).resize(close_toggle);

        /* Nivo Lightbox
        ========================================================*/
        $('.lightbox').nivoLightbox({
            effect: 'fadeScale',
            keyboardNav: true,
        });

    }(window.jQuery));
} // end jQuery guard

/*
// Load Vue.js if not already loaded
if (typeof Vue === 'undefined') {
    const script = document.createElement('script');
    script.src = 'https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.10/vue.min.js';
    script.onload = initVueComponents;
    document.head.appendChild(script);
} else {
    initVueComponents();
}
*/

/*
function initVueComponents() {
    Vue.component('boardal', {
        template: `
        <transition name="boardal">
          <div class="boardal">
            <div class="boardal__mask" v-if="hasMask" @click="clickMask"></div>
            <div class="boardal__wrapper">
              <slot></slot>
              <div class="boardal__x" v-if="hasX" @click="clickX">&times;</div>
            </div>
          </div>
        </transition>
        `,
        props: [
            'hasX',
            'hasMask',
            'canClickMask'
        ],
        methods: {
            clickX: function () {
                this.$emit('toggle')
            },
            clickMask: function () {
                if (this.canClickMask) {
                    this.$emit('toggle')
                }
            }
        }
    })

    let vm = new Vue({
        el: 'main',
        data: {
            modal: {
                isOpen: false,
                hasMask: true,
                canClickMask: false,
                hasX: false
            },
            step: 1,
            max: 1,
            showDots: true,
            orientation: 'row',
            xray: 'hidden',
            currentSection: null,
            $sections: []
        },
        mounted() {
            // Initialize any mounted logic here
            this.$sections = this.$el.querySelectorAll('section');
            this.max = this.$sections.length;
            this.setCssVars();
        },
        computed: {
            isFirstStep: function () {
                return (this.step === 1)
            },
            isLastStep: function () {
                return (this.step === this.max)
            },
            hasDots: function () {
                return (this.max > 1 && this.showDots)
            },
            x_multiplier: function () {
                return (this.orientation === 'row' ? -1 : 0)
            },
            y_multiplier: function () {
                return (this.orientation === 'row' ? 0 : -1)
            },
            axis: function () {
                return (this.orientation === 'row' ? 'row' : 'column')
            },
            axisReverse: function () {
                return (this.orientation === 'row' ? 'row-reverse' : 'column-reverse')
            },
            cross: function () {
                return (this.orientation === 'row' ? 'column' : 'row')
            },
            crossReverse: function () {
                return (this.orientation === 'row' ? 'column-reverse' : 'row-reverse')
            },
            nextIcon: function () {
                return (this.orientation === 'row' ? 'fa-arrow-right' : 'fa-arrow-down')
            },
            backIcon: function () {
                return (this.orientation === 'row' ? 'fa-arrow-left' : 'fa-arrow-up')
            },
        },
        watch: {
            orientation: 'setCssVars',
        },
        methods: {
            toggleChecklistModal(step) {
                step = step || 1;
                this.modal.isOpen = !this.modal.isOpen;
                if (this.modal.isOpen) {
                    let self = this;
                    setTimeout(function () {
                        self.$sections = self.$el.querySelectorAll('section');
                        self.max = self.$sections.length;
                        self.goToStep(step);
                    }, 1);
                }
            },
            setCssVars() {
                this.$el.style.setProperty('--x', (((this.step * 100) - 100) * this.x_multiplier) + '%');
                this.$el.style.setProperty('--y', (((this.step * 100) - 100) * this.y_multiplier) + '%');
                this.$el.style.setProperty('--axis', this.axis);
                this.$el.style.setProperty('--axis-reverse', this.axisReverse);
                this.$el.style.setProperty('--cross', this.cross);
                this.$el.style.setProperty('--cross-reverse', this.crossReverse);
            },
            goToStep(step) {
                this.step = step > this.max ? this.max : step < 1 ? 1 : step;
                this.currentSection = this.$sections[this.step - 1];
                this.$sections.forEach(function (section) {
                    section.classList.remove('current');
                });
                this.currentSection.classList.add('current');
                this.currentSection.scrollTop = 0;
                this.setCssVars();
            },
            skip(step) {
                this.step += step;
                this.goToStep(this.step);
            },
            resetChecklist() {
                this.goToStep(1);
            },
            finish() {
                this.toggleChecklistModal();
                return (this.max > 1 && this.showDots);
            }
        }
    })
    }
*/

//Help Widget
   // Function to extract data-raycast-oas value from HTML
        async function getLinksfromSpec() {
            let oasValue = null;

            // Primary: try the data-raycast-oas attribute
            const headerElement = document.querySelector('[data-raycast-oas]');
            if (headerElement) {
                const attr = headerElement.getAttribute('data-raycast-oas');
                if (attr && attr !== 'false' && attr !== '[object Object]') {
                    oasValue = attr.trim();
                }
            }

            // Fallback: fetch the current page and get from URL params
            if (!oasValue) {
                const urlParams = new URLSearchParams(window.location.search);
                if (urlParams.has('json') && urlParams.get('json') === 'on') {
                    try {
                        const response = await fetch(window.location.href);
                        const data = await response.json();
                        oasValue = data.api.apiSetting;
                    } catch (error) {
                        console.error('Error fetching JSON:', error);
                    }
                }
            }

            if (oasValue) {
                const oasUrl = `https://developer.onetrust.com/onetrust/openapi/${oasValue}`;
                try {
                    const response = await fetch(oasUrl);
                    if (!response.ok) {
                        throw new Error('Failed to fetch OpenAPI spec');
                    }
                    const data = await response.json();
                    if (data.hasOwnProperty("x-onetrust")) {
                        return data["x-onetrust"]["links"];
                    }
                } catch (error) {
                    //console.error('Error fetching or processing OpenAPI spec:', error);
                    return null;
                }
            }
            return null;
        }
        // Initialize the OneTrust container and help button
        function initHelpWidget() {
            console.log('Initializing help widget');
            var container = document.getElementById('onetrust-container');
            var helpButton = document.getElementById('helpButton');

            if (container) {
                container.style.display = 'none';
            }

            if (helpButton) {
                console.log('Adding click event to help button');
                helpButton.onclick = toggleHelpContainer;
            } else {
                console.error('Help button not found');
            }

            // Initialize rating feature buttons
            console.log('Setting up rating feature buttons');

            // Rate your Experience button functionality
            var rateExperienceBtn = document.getElementById('rateExperienceBtn');
            if (rateExperienceBtn) {
                console.log('Adding click event to rate experience button');
                rateExperienceBtn.addEventListener('click', function () {
                    document.getElementById('thumbsOptions').style.display = 'flex';
                    document.getElementById('rateExperienceBtn').style.display = 'none';
                    document.getElementById('voteNewFeatures').style.display = 'none';
                });
            } else {
                console.error('Rate experience button not found');
            }

            // Thumbs Up button functionality
            var thumbsUpBtn = document.getElementById('thumbsUpBtn');
            if (thumbsUpBtn) {
                thumbsUpBtn.addEventListener('click', function () {
                    document.getElementById('commentInput').style.display = 'block';
                    document.getElementById('thumbsUpBtn').style.color = 'darkgreen';
                    document.getElementById('thumbsDownBtn').style.color = 'currentcolor';
                    document.getElementById('thumbsOptions').style.display = 'flex';
                    document.getElementById('submitButton').style.display = 'block';
                });
            }

            // Thumbs Down button functionality
            var thumbsDownBtn = document.getElementById('thumbsDownBtn');
            if (thumbsDownBtn) {
                thumbsDownBtn.addEventListener('click', function () {
                    document.getElementById('commentInput').style.display = 'block';
                    document.getElementById('thumbsUpBtn').style.color = 'currentcolor';
                    document.getElementById('thumbsDownBtn').style.color = 'darkred';
                    document.getElementById('thumbsOptions').style.display = 'flex';
                    document.getElementById('submitButton').style.display = 'block';
                });
            }

            // Submit button functionality
            var submitButton = document.getElementById('submitButton');
            if (submitButton) {
                submitButton.addEventListener('click', async function () {
                    var feedback = document.getElementById("feedbackTextarea").value;
                    if (!feedback.trim()) {
                        document.getElementById("commentError").style.display = "block";
                        return;
                    } else {
                        document.getElementById("commentError").style.display = "none";
                    }

                    try {
                        const scriptElement = document.getElementById("hub-me");
                        // Get the value of the data-json attribute
                        const jsonData = scriptElement ? scriptElement.getAttribute("data-json") : null;
                        // Parse the JSON data if available
                        const parsedData = jsonData ? JSON.parse(jsonData) : {};

                        // Get email if available
                        const emailElement = document.getElementById("feedbackEmail");
                        const email = emailElement ? emailElement.value.trim() || null : null;

                        var feedbackData = {
                            vote: document.getElementById("thumbsUpBtn").style.color === "darkgreen" ? 1 : 0,
                            comments: document.getElementById("commentInput").querySelector('textarea').value,
                            path: window.location.pathname,
                            requestType: "pageQuality",
                            type: "doc"
                        };

                        // Adding the email to the comment since readme changed the api to not accept email
                        if (email) {
                            feedbackData.comments = email + ": " + feedbackData.comments;
                            feedbackData.email = email; // Doesn't seem to be used anymore by readme via the API
                        }

                        // Show success message immediately
                        document.getElementById('successMessage').style.display = 'block';
                        document.getElementById('commentInput').style.display = 'none';
                        document.getElementById('submitButton').style.display = 'none';
                        document.getElementById('thumbsOptions').style.display = 'none';

                        // Send feedback to API
                        fetch('https://developer.onetrust.com/onetrust/api-next/v2/versions/1.0/metrics-proxy/create/thumb', {
                            method: 'POST',
                            headers: {
                                'Content-Type': 'application/json',
                            },
                            body: JSON.stringify(feedbackData),
                        })
                            .then(response => {
                                if (!response.ok) {
                                    throw new Error('Network response was not ok');
                                }
                                return response.json();
                            })
                            .then(data => {
                                console.log('Feedback submitted successfully');
                            })
                            .catch(error => {
                                console.error('Error submitting feedback:', error);
                            });

                        // Reset after delay regardless of API response
                        setTimeout(function () {
                            resetRateExperience();
                            populateLinks();
                        }, 3000);

                    } catch (error) {
                        console.error('Error processing feedback:', error);
                        resetRateExperience();
                    }
                });
            }
        }

        // Function to toggle OneTrust container visibility
        function toggleHelpContainer() {
            console.log('Help button clicked');
            var container = document.getElementById('onetrust-container');
            if (!container) {
                console.error('Container not found');
                return;
            }

            if (container.style.display === 'none') {
                fetchHighestComponentGroupStatus();
                container.style.display = "block";
                document.querySelector('.help-icon').innerHTML = '<i class="fas fa-times"></i>';
                // Get the <script> element by its id
                const scriptElement = document.getElementById("hub-me");
                // Get the value of the data-json attribute
                const jsonData = scriptElement.getAttribute("data-json");
                // Parse the JSON data
                const parsedData = JSON.parse(jsonData);
                // Extract the email from the parsed data
                const name = parsedData.user?.name;
                const email = parsedData.user?.email;
                if (name) {
                    const firstName = name.match(/^(\S+)/)[1];
                    // Updating the greeting message with the first name
                    document.getElementById("greeting-name").textContent = "👋 Hi, " + firstName + "!";
                    document.getElementById("voteNewFeatures").onclick = function () {
                        window.open('https://ideas.onetrust.com/portal_session/new?email=' + encodeURIComponent(email), '_blank');
                    };
                }
                if (email) {
                    // Updating the email field with user's email 
                    document.getElementById("feedbackEmail").value = email;
                }
                populateLinks();
            } else {
                resetRateExperience();
                container.style.display = "none";
                document.querySelector('.help-icon').innerHTML = '<i class="fas fa-question"></i>';
            }
        }

        async function sleep(ms) {
            return new Promise(resolve => setTimeout(resolve, ms));
        }

        // Function to populate Links
        async function populateLinks() {
            // Populate Links to Display based on current page
            const currentPath = window.location.pathname;
            let links = {}
            if (currentPath.includes('/onetrust/reference')) {
                let moduleLinks = await getLinksfromSpec();
                links = {
                    "Getting Started: OneTrust APIs": "https://developer.onetrust.com/onetrust/reference/quick-start-guide",
                    "API Rate Limiting": "https://developer.onetrust.com/onetrust/reference/rate-limits-overview",
                    "Implementing Pagination": "https://developer.onetrust.com/onetrust/reference/understanding-implementing-pagination",
                    "Explore our LLMs.txt file – Help AI understand our docs smarter and faster": "https://developer.onetrust.com/onetrust/v1.0/llms.txt"
                };
                links = moduleLinks ? Object.assign(links, moduleLinks) : links;
            } else if (currentPath.includes('/onetrust/docs')) {
                links = {
                    "Getting Started: OneTrust SDKs": "https://my.onetrust.com/s/article/UUID-0297af95-8515-28ff-6f86-0f489f3c3e54?topicId=0TO1Q000000wxmbWAA",
                    "Server-Side CMP APIs": "https://developer.onetrust.com/onetrust/docs/server-side-cmp-api-introduction",
                    "Third-Party Integration Guides": "https://developer.onetrust.com/onetrust/docs/add-script-to-website",
                    "Explore our LLMs.txt file – Help AI understand our docs smarter and faster": "https://developer.onetrust.com/onetrust/v1.0/llms.txt"
                };
            } else if (currentPath.includes('/onetrust/changelog')) {
                links = {
                    "Release Notes": "https://my.onetrust.com/s/release-notes",
                    "Scheduled Maintenance": "https://my.onetrust.com/s/article/Scheduled-Maintenance",
                    "System Status": "https://my.onetrust.com/s/system-status",
                    "Explore our LLMs.txt file – Help AI understand our docs smarter and faster": "https://developer.onetrust.com/onetrust/v1.0/llms.txt"
                };
            } else if (currentPath.includes('/onetrust/recipes')) {
                links = {
                    "Download API Specs": "https://developer.onetrust.com/onetrust/openapi",
                    "Integrations Knowledge Base": "https://my.onetrust.com/s/topic/0TO1Q000000ItT9WAK/integrations",
                    "Explore our LLMs.txt file – Help AI understand our docs smarter and faster": "https://developer.onetrust.com/onetrust/v1.0/llms.txt"
                };
            } else if (currentPath.includes('/onetrust/page/partners')) {
                links = {
                    "Integrations Knowledge Base": "https://my.onetrust.com/s/topic/0TO1Q000000ItT9WAK/integrations",
                    "Getting Started: OneTrust APIs": "https://developer.onetrust.com/onetrust/reference/quick-start-guide",
                    "API Rate Limiting": "https://developer.onetrust.com/onetrust/reference/rate-limits-overview",
                    "Implementing Pagination": "https://developer.onetrust.com/onetrust/reference/understanding-implementing-pagination",
                    "Explore our LLMs.txt file – Help AI understand our docs smarter and faster": "https://developer.onetrust.com/onetrust/v1.0/llms.txt"
                };
            } else {
                links = {
                    "Developer Forum": "https://my.onetrust.com/s/group/0F91Q000000hGyPSAU/developer-experience",
                    "Explore our LLMs.txt file – Help AI understand our docs smarter and faster": "https://developer.onetrust.com/onetrust/v1.0/llms.txt"
                };
            }

            // Get the Links Div
            const container = document.querySelector('.onetrust-floating-links');
            // Iterate over the links object and create <a> elements
            Object.entries(links).forEach(([title, url]) => {
                const a = document.createElement('a');
                a.href = url;
                a.target = '_blank';
                a.textContent = title;
                container.appendChild(a);
            });
        }
        // Function to reset Rate your Experience button
        function resetRateExperience() {
            document.getElementById("rateExperienceBtn").style.display = "flex";
            document.getElementById("voteNewFeatures").style.display = "flex";
            document.getElementById("thumbsOptions").style.display = "none";
            document.getElementById("commentInput").style.display = "none";
            document.getElementById("submitButton").style.display = "none";
            document.getElementById("thumbsUpBtn").blur();
            document.getElementById("thumbsUpBtn").style.color = "currentcolor";
            document.getElementById("thumbsDownBtn").style.color = "currentcolor";
            document.getElementById("thumbsDownBtn").blur();
            document.getElementById("commentInput").querySelector('textarea').value = "";
            document.getElementById("otStatusAlert").style.display = "none";
            document.getElementById("successMessage").style.display = "none";
            const a = document.querySelectorAll('.onetrust-floating-links a');
            a.forEach((link) => {
                link.parentNode.removeChild(link);
            });
        }
        async function fetchHighestComponentGroupStatus() {
            const url = 'https://try.readme.io/https://onetruststatus-1564678085559.site24x7statusiq.com/sp/api/public/summary_details/statuspages/ap5x50QW8NIw4SPq2SZXYXycmr53nFVf_CF7exQFdPY=?period=27&timezone=America/Chicago';

            try {
                const response = await fetch(url, {
                    headers: {
                        "Content-Type": "application/json",
                    }, referrerPolicy: "origin" // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url
                });
                if (!response.ok) {
                    throw new Error(`HTTP error! status: ${response.status}`);
                }
                const data = await response.json();
                if (data.code !== 0 || !data.data || !data.data.current_status) {
                    throw new Error('Unexpected response format');
                }
                // Extract componentgroup_status values and filter out undefined or non-numeric values
                const statuses = data.data.current_status.map(status => status.componentgroup_status).filter(status => typeof status === 'number' && !isNaN(status));
                // Get the highest status, default to -Infinity if no valid statuses are found
                const highestStatus = statuses.length > 0 ? Math.max(...statuses) : -Infinity;
                if (highestStatus > 2) { //1: Good, 2: Info, 3: Maint, etc. 
                    document.getElementById("otStatusAlert").style.display = "block";
                }
                return highestStatus;
            } catch (error) {
                console.error('Error fetching data:', error);
            }
        }


        // Start Thumb Voting Spam HONEYPOT
        document.addEventListener("DOMContentLoaded", function () {
            const observer = new MutationObserver(function () {
                const commentTextarea = document.querySelector(".PageThumbs-comment_input");
                const voteButton = document.querySelector(".PageThumbs-comment_submit");

                // Function to evaluate the state of the form
                const evaluateFormState = () => {
                    const honeypot = document.querySelector(
                        'input[name="commentConfirmationRequired"]'
                    );
                    if (honeypot && voteButton) {
                        // Disable the button if the honeypot is filled or the comment box is empty
                        voteButton.disabled =
                            commentTextarea.value.trim() === "" || honeypot.value.trim() !== "";
                    }
                };

                if (commentTextarea && voteButton) {
                    // If both elements exist, proceed with the rest of the code

                    // Change the entire comment prompt to "Please comment to vote"
                    const commentLabel = commentTextarea
                        .closest(".Box2uBHSWG8DzPz")
                        .querySelector("label");
                    if (commentLabel) {
                        commentLabel.childNodes.forEach((node) => {
                            if (node.nodeType === Node.TEXT_NODE) {
                                node.nodeValue = "Please comment to vote";
                            }
                        });
                    }

                    // Continuously monitor and enforce the disabled state based on form conditions
                    setInterval(evaluateFormState, 100);

                    // Ensure the honeypot field is added only once
                    if (
                        !document.querySelector('input[name="commentConfirmationRequired"]')
                    ) {
                        const honeypot = document.createElement("input");
                        honeypot.setAttribute("type", "text");
                        honeypot.setAttribute("name", "commentConfirmationRequired");
                        honeypot.style.opacity = "0";
                        honeypot.style.position = "absolute";
                        honeypot.setAttribute("tabindex", "-1");
                        commentTextarea.parentNode.insertBefore(
                            honeypot,
                            commentTextarea.nextSibling
                        );
                    }

                    // Evaluate form state on input
                    commentTextarea.addEventListener("input", evaluateFormState);
                    document
                        .querySelector('input[name="commentConfirmationRequired"]')
                        .addEventListener("input", evaluateFormState);

                    // Double-check before submission
                    const form = voteButton.closest("form");
                    if (form) {
                        form.addEventListener("submit", function (event) {
                            evaluateFormState(); // Ensure the form state is evaluated one last time before submission
                            if (voteButton.disabled) {
                                event.preventDefault(); // Prevent form submission if conditions are not met

                            }
                        });
                    }
                }
            });

            observer.observe(document.body, { childList: true, subtree: true });
        });

        /* Disabling for now since its taking out the emails, if we get spam, we will enable 
        // Thumb Voting Spam METRICS
        document.addEventListener("DOMContentLoaded", function () {
          // Check if fetch has already been overridden to avoid multiple overrides
          if (window.fetch.isOverridden) return;
        
          // Save the original fetch function
          const originalFetch = window.fetch;
        
          // Override fetch to intercept requests
          window.fetch = async (input, init) => {
            // Check if the request matches the voting endpoint
            if (typeof input === 'string' && input.includes('/metrics-proxy/create/thumb')) {
              try {
                // Check if it's a POST request with a JSON body
                if (init && init.method === 'POST' && init.body) {
                  const payload = JSON.parse(init.body);
        
                  // Retrieve the actual comment text from the text input field on the page
                  const commentTextarea = document.querySelector(".PageThumbs-comment_input");
                  console.log(commentTextarea);
                  const actualComment = commentTextarea ? commentTextarea.value.trim() : "";
                  console.log(actualComment);
        
                  // Define patterns for known spam and injection attempts
                  const suspiciousPatterns = [
                    /<script.*?>|<\/.*?>/i, // HTML tags or any closing tags
                    /DBMS_PIPE|PG_SLEEP|waitfor delay|sleep|sysdate/i, // SQL injection and delay keywords
                    /['";|&@$%<>]/, // Special characters common in injection attacks
                    /[\'\"]{2,}/, // Multiple consecutive quotes (e.g., '' or "")
                    /^\s*✅ VERIFIED\s*$/ // Matches exactly "✅ VERIFIED"
                  ];
        
                  // Check for suspicious patterns
                  const isSuspicious = suspiciousPatterns.some((pattern) => pattern.test(actualComment));
                  if (isSuspicious) {
                    console.warn("Blocked suspicious submission due to spam/injection pattern.");
                    return; // Cancel the fetch by returning early
                  }
        
                  // Apply conditional verification based on actual comment field content
                  if (actualComment !== "") {
                    // If there's a non-empty comment in the input, append " | ✅ APPROVED"
                    payload.comments = actualComment + " | ✅ APPROVED";
                    console.log(payload.comments);
                  } else {
                    // If comments are empty, log and cancel the fetch
                    console.warn("Blocked submission due to empty comment.");
                    return; // Cancel the fetch by returning early
                  }
        
                  // Fallback: if payload.comments is empty after all checks, mark as "❌ UNVERIFIED"
                  if (!payload.comments || payload.comments.trim() === "") {
                    payload.comments = "❌ UNVERIFIED";
                  }
        
                  // Replace the original body with the modified payload
                  init.body = JSON.stringify(payload);
                }
              } catch (error) {
                console.error("Error modifying payload:", error);
              }
            }
        
            // Proceed with the original fetch function using the (potentially modified) init
            return originalFetch(input, init);
          };
        
          // Mark fetch as overridden
          window.fetch.isOverridden = true;
        });
        */
        // End Thumb Voting Spam HONEYPOT

        // Initialize the help widget when the page loads
        window.addEventListener('DOMContentLoaded', initHelpWidget);

        // Fallback initialization in case DOMContentLoaded already fired
        if (document.readyState === 'complete' || document.readyState === 'interactive') {
            console.log('Document already loaded, initializing help widget now');
            setTimeout(initHelpWidget, 1000);
        }

        // Add a global click handler as another fallback
        document.addEventListener('click', function (e) {
            if (e.target.closest('#helpButton')) {
                console.log('Help button clicked via global handler');
                toggleHelpContainer();
            }
        });
</script><script id="hub-me" type="application/json" data-json="{&quot;loggedIn&quot;:false,&quot;search&quot;:{&quot;app&quot;:&quot;T28YKFATPY&quot;,&quot;token&quot;:&quot;NGExMDQ0ZTUwYjgyNDIxYTViNTM3ODFjODViYjE0YTM0ZmRmNWNlNGRmMzgyMjBiNDhmMzM0OWFkZTkzYTA2YnRhZ0ZpbHRlcnM9KHByb2plY3Q6NjIwZDIzYTQ0MmQ3OGYwNTc4NmE0OWM0KSwodmVyc2lvbjpub25lLHZlcnNpb246NjIwZDIzYTU0MmQ3OGYwNTc4NmE0OWM5KSwoaGlkZGVuOm5vbmUsaGlkZGVuOmZhbHNlKSwoaW5kZXg6Q3VzdG9tUGFnZSxpbmRleDpCbG9nLGluZGV4OlBhZ2UsaW5kZXg6VHV0b3JpYWwp&quot;,&quot;filters&quot;:&quot;tagFilters=(project:620d23a442d78f05786a49c4),(version:none,version:620d23a542d78f05786a49c9),(hidden:none,hidden:false),(index:CustomPage,index:Blog,index:Page,index:Tutorial)&quot;,&quot;metaData&quot;:[{&quot;modules&quot;:{&quot;changelog&quot;:true,&quot;custompages&quot;:false,&quot;discuss&quot;:false,&quot;docs&quot;:true,&quot;examples&quot;:true,&quot;graphql&quot;:false,&quot;landing&quot;:false,&quot;reference&quot;:true,&quot;suggested_edits&quot;:false,&quot;tutorials&quot;:true},&quot;id&quot;:&quot;620d23a442d78f05786a49c4&quot;,&quot;name&quot;:&quot;OneTrust Developer Portal&quot;,&quot;subdomain&quot;:&quot;onetrust&quot;,&quot;subpath&quot;:&quot;&quot;,&quot;nav_names&quot;:{&quot;docs&quot;:&quot;SDK Reference&quot;,&quot;reference&quot;:&quot;API Reference&quot;,&quot;changelog&quot;:&quot;&quot;,&quot;discuss&quot;:&quot;&quot;,&quot;tutorials&quot;:&quot;&quot;,&quot;recipes&quot;:&quot;&quot;}}]}}"></script><script id="readme-data-baseUrl" type="application/json"></script></body></html>