<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" data-d2-version="0.7.1" preserveAspectRatio="xMinYMin meet" viewBox="0 0 2902 1564"><svg class="d2-1467649149 d2-svg" width="2902" height="1564" viewBox="-44 -117 2902 1564"><rect x="-44.000000" y="-117.000000" width="2902.000000" height="1564.000000" rx="0.000000" fill="#FFFFFF" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
.d2-1467649149 .text {
font-family: "d2-1467649149-font-regular";
}
@font-face {
font-family: d2-1467649149-font-regular;
src: url("data:application/font-woff;base64,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");
}
@font-face {
font-family: d2-1467649149-font-semibold;
src: url("data:application/font-woff;base64,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");
}
.d2-1467649149 .text-bold {
font-family: "d2-1467649149-font-bold";
}
@font-face {
font-family: d2-1467649149-font-bold;
src: url("data:application/font-woff;base64,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");
}
.d2-1467649149 .text-italic {
font-family: "d2-1467649149-font-italic";
}
@font-face {
font-family: d2-1467649149-font-italic;
src: url("data:application/font-woff;base64,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");
}]]></style><style type="text/css"><![CDATA[.shape {
shape-rendering: geometricPrecision;
stroke-linejoin: round;
}
.connection {
stroke-linecap: round;
stroke-linejoin: round;
}
.blend {
mix-blend-mode: multiply;
opacity: 0.5;
}
.d2-1467649149 .fill-N1{fill:#0A0F25;}
.d2-1467649149 .fill-N2{fill:#676C7E;}
.d2-1467649149 .fill-N3{fill:#9499AB;}
.d2-1467649149 .fill-N4{fill:#CFD2DD;}
.d2-1467649149 .fill-N5{fill:#DEE1EB;}
.d2-1467649149 .fill-N6{fill:#EEF1F8;}
.d2-1467649149 .fill-N7{fill:#FFFFFF;}
.d2-1467649149 .fill-B1{fill:#0D32B2;}
.d2-1467649149 .fill-B2{fill:#0D32B2;}
.d2-1467649149 .fill-B3{fill:#E3E9FD;}
.d2-1467649149 .fill-B4{fill:#E3E9FD;}
.d2-1467649149 .fill-B5{fill:#EDF0FD;}
.d2-1467649149 .fill-B6{fill:#F7F8FE;}
.d2-1467649149 .fill-AA2{fill:#4A6FF3;}
.d2-1467649149 .fill-AA4{fill:#EDF0FD;}
.d2-1467649149 .fill-AA5{fill:#F7F8FE;}
.d2-1467649149 .fill-AB4{fill:#EDF0FD;}
.d2-1467649149 .fill-AB5{fill:#F7F8FE;}
.d2-1467649149 .stroke-N1{stroke:#0A0F25;}
.d2-1467649149 .stroke-N2{stroke:#676C7E;}
.d2-1467649149 .stroke-N3{stroke:#9499AB;}
.d2-1467649149 .stroke-N4{stroke:#CFD2DD;}
.d2-1467649149 .stroke-N5{stroke:#DEE1EB;}
.d2-1467649149 .stroke-N6{stroke:#EEF1F8;}
.d2-1467649149 .stroke-N7{stroke:#FFFFFF;}
.d2-1467649149 .stroke-B1{stroke:#0D32B2;}
.d2-1467649149 .stroke-B2{stroke:#0D32B2;}
.d2-1467649149 .stroke-B3{stroke:#E3E9FD;}
.d2-1467649149 .stroke-B4{stroke:#E3E9FD;}
.d2-1467649149 .stroke-B5{stroke:#EDF0FD;}
.d2-1467649149 .stroke-B6{stroke:#F7F8FE;}
.d2-1467649149 .stroke-AA2{stroke:#4A6FF3;}
.d2-1467649149 .stroke-AA4{stroke:#EDF0FD;}
.d2-1467649149 .stroke-AA5{stroke:#F7F8FE;}
.d2-1467649149 .stroke-AB4{stroke:#EDF0FD;}
.d2-1467649149 .stroke-AB5{stroke:#F7F8FE;}
.d2-1467649149 .background-color-N1{background-color:#0A0F25;}
.d2-1467649149 .background-color-N2{background-color:#676C7E;}
.d2-1467649149 .background-color-N3{background-color:#9499AB;}
.d2-1467649149 .background-color-N4{background-color:#CFD2DD;}
.d2-1467649149 .background-color-N5{background-color:#DEE1EB;}
.d2-1467649149 .background-color-N6{background-color:#EEF1F8;}
.d2-1467649149 .background-color-N7{background-color:#FFFFFF;}
.d2-1467649149 .background-color-B1{background-color:#0D32B2;}
.d2-1467649149 .background-color-B2{background-color:#0D32B2;}
.d2-1467649149 .background-color-B3{background-color:#E3E9FD;}
.d2-1467649149 .background-color-B4{background-color:#E3E9FD;}
.d2-1467649149 .background-color-B5{background-color:#EDF0FD;}
.d2-1467649149 .background-color-B6{background-color:#F7F8FE;}
.d2-1467649149 .background-color-AA2{background-color:#4A6FF3;}
.d2-1467649149 .background-color-AA4{background-color:#EDF0FD;}
.d2-1467649149 .background-color-AA5{background-color:#F7F8FE;}
.d2-1467649149 .background-color-AB4{background-color:#EDF0FD;}
.d2-1467649149 .background-color-AB5{background-color:#F7F8FE;}
.d2-1467649149 .color-N1{color:#0A0F25;}
.d2-1467649149 .color-N2{color:#676C7E;}
.d2-1467649149 .color-N3{color:#9499AB;}
.d2-1467649149 .color-N4{color:#CFD2DD;}
.d2-1467649149 .color-N5{color:#DEE1EB;}
.d2-1467649149 .color-N6{color:#EEF1F8;}
.d2-1467649149 .color-N7{color:#FFFFFF;}
.d2-1467649149 .color-B1{color:#0D32B2;}
.d2-1467649149 .color-B2{color:#0D32B2;}
.d2-1467649149 .color-B3{color:#E3E9FD;}
.d2-1467649149 .color-B4{color:#E3E9FD;}
.d2-1467649149 .color-B5{color:#EDF0FD;}
.d2-1467649149 .color-B6{color:#F7F8FE;}
.d2-1467649149 .color-AA2{color:#4A6FF3;}
.d2-1467649149 .color-AA4{color:#EDF0FD;}
.d2-1467649149 .color-AA5{color:#F7F8FE;}
.d2-1467649149 .color-AB4{color:#EDF0FD;}
.d2-1467649149 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-1467649149);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-1467649149);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-1467649149);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-1467649149);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-1467649149);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-1467649149);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-1467649149);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-1467649149);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-1467649149);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-1467649149);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-1467649149);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-1467649149);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-1467649149);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-1467649149);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-1467649149);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-1467649149);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-1467649149);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-1467649149);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]></style><style type="text/css">.d2-1467649149 .md em,
.d2-1467649149 .md dfn {
font-family: "d2-1467649149-font-italic";
}
.d2-1467649149 .md b,
.d2-1467649149 .md strong {
font-family: "d2-1467649149-font-bold";
}
.d2-1467649149 .md code,
.d2-1467649149 .md kbd,
.d2-1467649149 .md pre,
.d2-1467649149 .md samp {
font-family: "d2-1467649149-font-mono";
font-size: 1em;
}
.d2-1467649149 .md {
tab-size: 4;
}
/* variables are provided in d2renderers/d2svg/d2svg.go */
.d2-1467649149 .md {
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
margin: 0;
background-color: transparent; /* we don't want to define the background color */
font-family: "d2-1467649149-font-regular";
font-size: 16px;
line-height: 1.5;
word-wrap: break-word;
}
.d2-1467649149 .md details,
.d2-1467649149 .md figcaption,
.d2-1467649149 .md figure {
display: block;
}
.d2-1467649149 .md summary {
display: list-item;
}
.d2-1467649149 .md [hidden] {
display: none !important;
}
.d2-1467649149 .md a {
background-color: transparent;
color: var(--color-accent-fg);
text-decoration: none;
}
.d2-1467649149 .md a:active,
.d2-1467649149 .md a:hover {
outline-width: 0;
}
.d2-1467649149 .md abbr[title] {
border-bottom: none;
text-decoration: underline dotted;
}
.d2-1467649149 .md dfn {
font-style: italic;
}
.d2-1467649149 .md h1 {
margin: 0.67em 0;
padding-bottom: 0.3em;
font-size: 2em;
border-bottom: 1px solid var(--color-border-muted);
}
.d2-1467649149 .md mark {
background-color: var(--color-attention-subtle);
color: var(--color-text-primary);
}
.d2-1467649149 .md small {
font-size: 90%;
}
.d2-1467649149 .md sub,
.d2-1467649149 .md sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
.d2-1467649149 .md sub {
bottom: -0.25em;
}
.d2-1467649149 .md sup {
top: -0.5em;
}
.d2-1467649149 .md img {
border-style: none;
max-width: 100%;
box-sizing: content-box;
background-color: var(--color-canvas-default);
}
.d2-1467649149 .md figure {
margin: 1em 40px;
}
.d2-1467649149 .md hr {
box-sizing: content-box;
overflow: hidden;
background: transparent;
border-bottom: 1px solid var(--color-border-muted);
height: 0.25em;
padding: 0;
margin: 24px 0;
background-color: var(--color-border-default);
border: 0;
}
.d2-1467649149 .md input {
font: inherit;
margin: 0;
overflow: visible;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
.d2-1467649149 .md [type="button"],
.d2-1467649149 .md [type="reset"],
.d2-1467649149 .md [type="submit"] {
-webkit-appearance: button;
}
.d2-1467649149 .md [type="button"]::-moz-focus-inner,
.d2-1467649149 .md [type="reset"]::-moz-focus-inner,
.d2-1467649149 .md [type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}
.d2-1467649149 .md [type="button"]:-moz-focusring,
.d2-1467649149 .md [type="reset"]:-moz-focusring,
.d2-1467649149 .md [type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText;
}
.d2-1467649149 .md [type="checkbox"],
.d2-1467649149 .md [type="radio"] {
box-sizing: border-box;
padding: 0;
}
.d2-1467649149 .md [type="number"]::-webkit-inner-spin-button,
.d2-1467649149 .md [type="number"]::-webkit-outer-spin-button {
height: auto;
}
.d2-1467649149 .md [type="search"] {
-webkit-appearance: textfield;
outline-offset: -2px;
}
.d2-1467649149 .md [type="search"]::-webkit-search-cancel-button,
.d2-1467649149 .md [type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
.d2-1467649149 .md ::-webkit-input-placeholder {
color: inherit;
opacity: 0.54;
}
.d2-1467649149 .md ::-webkit-file-upload-button {
-webkit-appearance: button;
font: inherit;
}
.d2-1467649149 .md a:hover {
text-decoration: underline;
}
.d2-1467649149 .md hr::before {
display: table;
content: "";
}
.d2-1467649149 .md hr::after {
display: table;
clear: both;
content: "";
}
.d2-1467649149 .md table {
border-spacing: 0;
border-collapse: collapse;
display: block;
width: max-content;
max-width: 100%;
overflow: auto;
}
.d2-1467649149 .md td,
.d2-1467649149 .md th {
padding: 0;
}
.d2-1467649149 .md details summary {
cursor: pointer;
}
.d2-1467649149 .md details:not([open]) > *:not(summary) {
display: none !important;
}
.d2-1467649149 .md kbd {
display: inline-block;
padding: 3px 5px;
color: var(--color-fg-default);
vertical-align: middle;
background-color: var(--color-canvas-subtle);
border: solid 1px var(--color-neutral-muted);
border-bottom-color: var(--color-neutral-muted);
border-radius: 6px;
box-shadow: inset 0 -1px 0 var(--color-neutral-muted);
}
.d2-1467649149 .md h1,
.d2-1467649149 .md h2,
.d2-1467649149 .md h3,
.d2-1467649149 .md h4,
.d2-1467649149 .md h5,
.d2-1467649149 .md h6 {
margin-top: 24px;
margin-bottom: 16px;
font-weight: 400;
line-height: 1.25;
font-family: "d2-1467649149-font-semibold";
}
.d2-1467649149 .md h2 {
padding-bottom: 0.3em;
font-size: 1.5em;
border-bottom: 1px solid var(--color-border-muted);
}
.d2-1467649149 .md h3 {
font-size: 1.25em;
}
.d2-1467649149 .md h4 {
font-size: 1em;
}
.d2-1467649149 .md h5 {
font-size: 0.875em;
}
.d2-1467649149 .md h6 {
font-size: 0.85em;
color: var(--color-fg-muted);
}
.d2-1467649149 .md p {
margin-top: 0;
margin-bottom: 10px;
}
.d2-1467649149 .md blockquote {
margin: 0;
padding: 0 1em;
color: var(--color-fg-muted);
border-left: 0.25em solid var(--color-border-default);
}
.d2-1467649149 .md ul,
.d2-1467649149 .md ol {
margin-top: 0;
margin-bottom: 0;
padding-left: 2em;
}
.d2-1467649149 .md ol ol,
.d2-1467649149 .md ul ol {
list-style-type: lower-roman;
}
.d2-1467649149 .md ul ul ol,
.d2-1467649149 .md ul ol ol,
.d2-1467649149 .md ol ul ol,
.d2-1467649149 .md ol ol ol {
list-style-type: lower-alpha;
}
.d2-1467649149 .md dd {
margin-left: 0;
}
.d2-1467649149 .md pre {
margin-top: 0;
margin-bottom: 0;
word-wrap: normal;
}
.d2-1467649149 .md ::placeholder {
color: var(--color-fg-subtle);
opacity: 1;
}
.d2-1467649149 .md input::-webkit-outer-spin-button,
.d2-1467649149 .md input::-webkit-inner-spin-button {
margin: 0;
-webkit-appearance: none;
appearance: none;
}
.d2-1467649149 .md::before {
display: table;
content: "";
}
.d2-1467649149 .md::after {
display: table;
clear: both;
content: "";
}
.d2-1467649149 .md > *:first-child {
margin-top: 0 !important;
}
.d2-1467649149 .md > *:last-child {
margin-bottom: 0 !important;
}
.d2-1467649149 .md a:not([href]) {
color: inherit;
text-decoration: none;
}
.d2-1467649149 .md .absent {
color: var(--color-danger-fg);
}
.d2-1467649149 .md .anchor {
float: left;
padding-right: 4px;
margin-left: -20px;
line-height: 1;
}
.d2-1467649149 .md .anchor:focus {
outline: none;
}
.d2-1467649149 .md p,
.d2-1467649149 .md blockquote,
.d2-1467649149 .md ul,
.d2-1467649149 .md ol,
.d2-1467649149 .md dl,
.d2-1467649149 .md table,
.d2-1467649149 .md pre,
.d2-1467649149 .md details {
margin-top: 0;
margin-bottom: 16px;
}
.d2-1467649149 .md blockquote > :first-child {
margin-top: 0;
}
.d2-1467649149 .md blockquote > :last-child {
margin-bottom: 0;
}
.d2-1467649149 .md sup > a::before {
content: "[";
}
.d2-1467649149 .md sup > a::after {
content: "]";
}
.d2-1467649149 .md h1:hover .anchor,
.d2-1467649149 .md h2:hover .anchor,
.d2-1467649149 .md h3:hover .anchor,
.d2-1467649149 .md h4:hover .anchor,
.d2-1467649149 .md h5:hover .anchor,
.d2-1467649149 .md h6:hover .anchor {
text-decoration: none;
}
.d2-1467649149 .md h1 tt,
.d2-1467649149 .md h1 code,
.d2-1467649149 .md h2 tt,
.d2-1467649149 .md h2 code,
.d2-1467649149 .md h3 tt,
.d2-1467649149 .md h3 code,
.d2-1467649149 .md h4 tt,
.d2-1467649149 .md h4 code,
.d2-1467649149 .md h5 tt,
.d2-1467649149 .md h5 code,
.d2-1467649149 .md h6 tt,
.d2-1467649149 .md h6 code {
padding: 0 0.2em;
font-size: inherit;
}
.d2-1467649149 .md ul.no-list,
.d2-1467649149 .md ol.no-list {
padding: 0;
list-style-type: none;
}
.d2-1467649149 .md ol[type="1"] {
list-style-type: decimal;
}
.d2-1467649149 .md ol[type="a"] {
list-style-type: lower-alpha;
}
.d2-1467649149 .md ol[type="i"] {
list-style-type: lower-roman;
}
.d2-1467649149 .md div > ol:not([type]) {
list-style-type: decimal;
}
.d2-1467649149 .md ul ul,
.d2-1467649149 .md ul ol,
.d2-1467649149 .md ol ol,
.d2-1467649149 .md ol ul {
margin-top: 0;
margin-bottom: 0;
}
.d2-1467649149 .md li > p {
margin-top: 16px;
}
.d2-1467649149 .md li + li {
margin-top: 0.25em;
}
.d2-1467649149 .md dl {
padding: 0;
}
.d2-1467649149 .md dl dt {
padding: 0;
margin-top: 16px;
font-size: 1em;
font-style: italic;
font-family: "d2-1467649149-font-semibold";
}
.d2-1467649149 .md dl dd {
padding: 0 16px;
margin-bottom: 16px;
}
.d2-1467649149 .md table th {
font-family: "d2-1467649149-font-semibold";
}
.d2-1467649149 .md table th,
.d2-1467649149 .md table td {
padding: 6px 13px;
border: 1px solid var(--color-border-default);
}
.d2-1467649149 .md table tr {
background-color: var(--color-canvas-default);
border-top: 1px solid var(--color-border-muted);
}
.d2-1467649149 .md table tr:nth-child(2n) {
background-color: var(--color-canvas-subtle);
}
.d2-1467649149 .md table img {
background-color: transparent;
}
.d2-1467649149 .md img[align="right"] {
padding-left: 20px;
}
.d2-1467649149 .md img[align="left"] {
padding-right: 20px;
}
.d2-1467649149 .md span.frame {
display: block;
overflow: hidden;
}
.d2-1467649149 .md span.frame > span {
display: block;
float: left;
width: auto;
padding: 7px;
margin: 13px 0 0;
overflow: hidden;
border: 1px solid var(--color-border-default);
}
.d2-1467649149 .md span.frame span img {
display: block;
float: left;
}
.d2-1467649149 .md span.frame span span {
display: block;
padding: 5px 0 0;
clear: both;
color: var(--color-fg-default);
}
.d2-1467649149 .md span.align-center {
display: block;
overflow: hidden;
clear: both;
}
.d2-1467649149 .md span.align-center > span {
display: block;
margin: 13px auto 0;
overflow: hidden;
text-align: center;
}
.d2-1467649149 .md span.align-center span img {
margin: 0 auto;
text-align: center;
}
.d2-1467649149 .md span.align-right {
display: block;
overflow: hidden;
clear: both;
}
.d2-1467649149 .md span.align-right > span {
display: block;
margin: 13px 0 0;
overflow: hidden;
text-align: right;
}
.d2-1467649149 .md span.align-right span img {
margin: 0;
text-align: right;
}
.d2-1467649149 .md span.float-left {
display: block;
float: left;
margin-right: 13px;
overflow: hidden;
}
.d2-1467649149 .md span.float-left span {
margin: 13px 0 0;
}
.d2-1467649149 .md span.float-right {
display: block;
float: right;
margin-left: 13px;
overflow: hidden;
}
.d2-1467649149 .md span.float-right > span {
display: block;
margin: 13px auto 0;
overflow: hidden;
text-align: right;
}
.d2-1467649149 .md code,
.d2-1467649149 .md tt {
padding: 0.2em 0.4em;
margin: 0;
font-size: 85%;
background-color: var(--color-neutral-muted);
border-radius: 6px;
}
.d2-1467649149 .md code br,
.d2-1467649149 .md tt br {
display: none;
}
.d2-1467649149 .md del code {
text-decoration: inherit;
}
.d2-1467649149 .md pre code {
font-size: 100%;
}
.d2-1467649149 .md pre > code {
padding: 0;
margin: 0;
word-break: normal;
white-space: pre;
background: transparent;
border: 0;
}
.d2-1467649149 .md .highlight {
margin-bottom: 16px;
}
.d2-1467649149 .md .highlight pre {
margin-bottom: 0;
word-break: normal;
}
.d2-1467649149 .md .highlight pre,
.d2-1467649149 .md pre {
padding: 16px;
overflow: auto;
font-size: 85%;
line-height: 1.45;
background-color: var(--color-canvas-subtle);
border-radius: 6px;
}
.d2-1467649149 .md pre code,
.d2-1467649149 .md pre tt {
display: inline;
max-width: auto;
padding: 0;
margin: 0;
overflow: visible;
line-height: inherit;
word-wrap: normal;
background-color: transparent;
border: 0;
}
.d2-1467649149 .md .csv-data td,
.d2-1467649149 .md .csv-data th {
padding: 5px;
overflow: hidden;
font-size: 12px;
line-height: 1;
text-align: left;
white-space: nowrap;
}
.d2-1467649149 .md .csv-data .blob-num {
padding: 10px 8px 9px;
text-align: right;
background: var(--color-canvas-default);
border: 0;
}
.d2-1467649149 .md .csv-data tr {
border-top: 0;
}
.d2-1467649149 .md .csv-data th {
font-family: "d2-1467649149-font-semibold";
background: var(--color-canvas-subtle);
border-top: 0;
}
.d2-1467649149 .md .footnotes {
font-size: 12px;
color: var(--color-fg-muted);
border-top: 1px solid var(--color-border-default);
}
.d2-1467649149 .md .footnotes ol {
padding-left: 16px;
}
.d2-1467649149 .md .footnotes li {
position: relative;
}
.d2-1467649149 .md .footnotes li:target::before {
position: absolute;
top: -8px;
right: -8px;
bottom: -8px;
left: -24px;
pointer-events: none;
content: "";
border: 2px solid var(--color-accent-emphasis);
border-radius: 6px;
}
.d2-1467649149 .md .footnotes li:target {
color: var(--color-fg-default);
}
.d2-1467649149 .md .task-list-item {
list-style-type: none;
}
.d2-1467649149 .md .task-list-item label {
font-weight: 400;
}
.d2-1467649149 .md .task-list-item.enabled label {
cursor: pointer;
}
.d2-1467649149 .md .task-list-item + .task-list-item {
margin-top: 3px;
}
.d2-1467649149 .md .task-list-item .handle {
display: none;
}
.d2-1467649149 .md .task-list-item-checkbox {
margin: 0 0.2em 0.25em -1.6em;
vertical-align: middle;
}
.d2-1467649149 .md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em;
}
</style><g class="dGl0bGU="><g class="shape" ></g><text x="1407.000000" y="8.000000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:24px">Microsoft Graph MCP Server Architecture</text></g><g class="Y2xhdWRl"><g class="shape" ><rect x="125.000000" y="560.000000" width="133.000000" height="66.000000" stroke="#2E5C8A" fill="#4A90E2" style="stroke-width:2;" /></g><text x="191.500000" y="598.500000" fill="white" class="text-bold" style="text-anchor:middle;font-size:16px">Claude Code</text></g><g class="bWNwX3NlcnZlcg=="><g class="shape" ><rect x="827.000000" y="286.000000" width="278.000000" height="704.000000" stroke="#2E7D4E" fill="#50C878" style="stroke-width:2;" /></g><text x="966.000000" y="273.000000" fill="white" class="text" style="text-anchor:middle;font-size:28px">msgraph-mcp Server</text></g><g class="YXp1cmVfYWQ="><g class="shape" ><path d="M 1639 921 C 1639 927 1635 934 1631 934 C 1581 942 1541 1023 1541 1122 C 1541 1227 1586 1312 1642 1312 H 2025 C 2085 1312 2135 1221 2135 1111 C 2135 1006 2089 918 2032 911 C 2028 911 2024 906 2023 898 C 2010 791 1951 711 1882 711 C 1836 711 1796 745 1770 797 C 1767 803 1762 805 1759 803 C 1749 797 1738 793 1726 793 C 1681 793 1643 849 1639 921 Z" stroke="#005A9E" fill="#0078D4" style="stroke-width:2;" /></g><text x="1838.000000" y="698.000000" fill="white" class="text" style="text-anchor:middle;font-size:28px">Azure AD</text></g><g class="Z3JhcGhfYXBp"><g class="shape" ><path d="M 1777 533 L 1715 567 L 1777 602 L 1900 602 L 1961 567 L 1900 533 Z" stroke="#5A4EBE" fill="#7B68EE" style="stroke-width:2;" /></g><text x="1838.000000" y="573.000000" fill="white" class="text-bold" style="text-anchor:middle;font-size:16px">Microsoft Graph API</text></g><g class="bTM2NV9zZXJ2aWNlcw=="><g class="shape" ><rect x="2507.000000" y="76.000000" width="245.000000" height="961.000000" stroke="#CC5555" fill="#FF6B6B" style="stroke-width:2;" /></g><text x="2629.500000" y="63.000000" fill="white" class="text" style="text-anchor:middle;font-size:28px">Microsoft 365 Services</text></g><g class="cGVybWlzc2lvbnM="><g class="shape" ><rect x="834.000000" y="1066.000000" width="264.000000" height="280.000000" stroke="#FFC107" fill="#FFF3CD" style="stroke-width:2;" /></g><text x="966.000000" y="1053.000000" fill="#0A0F25" class="text fill-N1" style="text-anchor:middle;font-size:28px">API Permissions</text></g><g class="c2VjdXJpdHk="><g class="shape" ><rect x="57.000000" y="737.000000" width="268.000000" height="196.000000" stroke="#28A745" fill="#D4EDDA" style="stroke-width:2;" /></g><text x="191.000000" y="724.000000" fill="#0A0F25" class="text fill-N1" style="text-anchor:middle;font-size:28px">Security Features</text></g><g class="bWNwX3NlcnZlci5jb21wb25lbnRz"><g class="shape" ><rect x="857.000000" y="327.000000" width="218.000000" height="633.000000" stroke="#0D32B2" fill="#EDF0FD" class=" stroke-B1 fill-B5" style="stroke-width:2;" /></g><text x="966.000000" y="315.000000" fill="#0A0F25" class="text fill-N1" style="text-anchor:middle;font-size:24px">components</text></g><g class="YXp1cmVfYWQuYXV0aA=="><g class="shape" ><rect x="1628.000000" y="772.000000" width="420.000000" height="520.000000" stroke="#0D32B2" fill="#EDF0FD" class=" stroke-B1 fill-B5" style="stroke-width:2;" /></g><text x="1838.000000" y="760.000000" fill="#0A0F25" class="text fill-N1" style="text-anchor:middle;font-size:24px">auth</text></g><g class="bTM2NV9zZXJ2aWNlcy5zZXJ2aWNlcw=="><g class="shape" ><rect x="2537.000000" y="117.000000" width="185.000000" height="890.000000" stroke="#0D32B2" fill="#EDF0FD" class=" stroke-B1 fill-B5" style="stroke-width:2;" /></g><text x="2629.500000" y="105.000000" fill="#0A0F25" class="text fill-N1" style="text-anchor:middle;font-size:24px">services</text></g><g class="cGVybWlzc2lvbnMubGlzdA=="><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="864.000000" y="1096.000000" width="204" height="220"><div xmlns="http://www.w3.org/1999/xhtml" class="md color-N1"><ul>
<li>Sites.Read.All</li>
<li>Files.Read.All</li>
<li>Mail.Read</li>
<li>ChannelMessage.Read.All</li>
<li>Chat.Read.All</li>
<li>Calendars.Read</li>
<li>User.Read.All</li>
<li>Group.Read.All</li>
</ul>
</div></foreignObject></g></g><g class="c2VjdXJpdHkuZmVhdHVyZXM="><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="87.000000" y="767.000000" width="208" height="136"><div xmlns="http://www.w3.org/1999/xhtml" class="md color-N1"><ul>
<li>Read-only access</li>
<li>Sandboxed execution</li>
<li>Token auto-refresh</li>
<li>App-only authentication</li>
<li>No user credentials stored</li>
</ul>
</div></foreignObject></g></g><g class="bWNwX3NlcnZlci5jb21wb25lbnRzLnNlcnZlcg=="><g class="shape" ><path d="M 910 422 L 910 357 L 1023 357 L 1023 422 C 1004 408 985 408 967 422 C 948 437 929 437 910 422 Z" stroke="#0D32B2" fill="#E8F5E9" class=" stroke-B1" style="stroke-width:2;" /></g><text x="966.500000" y="390.610964" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">server.py</text></g><g class="bWNwX3NlcnZlci5jb21wb25lbnRzLmFwaQ=="><g class="shape" ><path d="M 921 558 L 921 493 L 1011 493 L 1011 558 C 996 544 981 544 966 558 C 951 573 936 573 921 558 Z" stroke="#0D32B2" fill="#E8F5E9" class=" stroke-B1" style="stroke-width:2;" /></g><text x="966.000000" y="526.610964" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">api.py</text></g><g class="bWNwX3NlcnZlci5jb21wb25lbnRzLmNsaWVudA=="><g class="shape" ><path d="M 887 696 L 887 631 L 1045 631 L 1045 696 C 1019 682 992 682 966 696 C 940 711 913 711 887 696 Z" stroke="#0D32B2" fill="#E8F5E9" class=" stroke-B1" style="stroke-width:2;" /></g><text x="966.000000" y="664.610964" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">graph_client.py</text></g><g class="bWNwX3NlcnZlci5jb21wb25lbnRzLnNhbmRib3g="><g class="shape" ><path d="M 902 919 L 902 854 L 1031 854 L 1031 919 C 1010 905 988 905 967 919 C 945 934 924 934 902 919 Z" stroke="#0D32B2" fill="#E8F5E9" class=" stroke-B1" style="stroke-width:2;" /></g><text x="966.500000" y="887.610964" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">sandbox.py</text></g><g class="YXp1cmVfYWQuYXV0aC5hcHA="><g class="shape" ><rect x="1756.000000" y="812.000000" width="165.000000" height="66.000000" stroke="#0D32B2" fill="#CCE5FF" class=" stroke-B1" style="stroke-width:2;" /></g><text x="1838.500000" y="850.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">App Registration</text></g><g class="YXp1cmVfYWQuYXV0aC5tc2Fs"><g class="shape" ><rect x="1778.000000" y="956.000000" width="120.000000" height="66.000000" stroke="#0D32B2" fill="#CCE5FF" class=" stroke-B1" style="stroke-width:2;" /></g><text x="1838.000000" y="994.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">MSAL Auth</text></g><g class="YXp1cmVfYWQuYXV0aC50b2tlbg=="><g class="shape" ><path d="M 1771 1158 C 1771 1134 1832 1134 1839 1134 C 1845 1134 1906 1134 1906 1158 V 1228 C 1906 1252 1845 1252 1839 1252 C 1832 1252 1771 1252 1771 1228 V 1158 Z" stroke="#0D32B2" fill="#CCE5FF" class=" stroke-B1" style="stroke-width:2;" /><path d="M 1771 1158 C 1771 1182 1832 1182 1839 1182 C 1845 1182 1906 1182 1906 1158" stroke="#0D32B2" fill="#CCE5FF" class=" stroke-B1" style="stroke-width:2;" /></g><text x="1838.500000" y="1210.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">Token Cache</text></g><g class="bTM2NV9zZXJ2aWNlcy5zZXJ2aWNlcy5zaGFyZXBvaW50"><g class="shape" ><path d="M 2567 171 C 2567 147 2623 147 2630 147 C 2636 147 2692 147 2692 171 V 241 C 2692 265 2636 265 2630 265 C 2623 265 2567 265 2567 241 V 171 Z" stroke="#0D32B2" fill="#FFE5E5" class=" stroke-B1" style="stroke-width:2;" /><path d="M 2567 171 C 2567 195 2623 195 2630 195 C 2636 195 2692 195 2692 171" stroke="#0D32B2" fill="#FFE5E5" class=" stroke-B1" style="stroke-width:2;" /></g><text x="2629.500000" y="223.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">SharePoint</text></g><g class="bTM2NV9zZXJ2aWNlcy5zZXJ2aWNlcy5vbmVkcml2ZQ=="><g class="shape" ><path d="M 2574 349 C 2574 325 2624 325 2630 325 C 2635 325 2685 325 2685 349 V 419 C 2685 443 2635 443 2630 443 C 2624 443 2574 443 2574 419 V 349 Z" stroke="#0D32B2" fill="#FFE5E5" class=" stroke-B1" style="stroke-width:2;" /><path d="M 2574 349 C 2574 373 2624 373 2630 373 C 2635 373 2685 373 2685 349" stroke="#0D32B2" fill="#FFE5E5" class=" stroke-B1" style="stroke-width:2;" /></g><text x="2629.500000" y="401.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">OneDrive</text></g><g class="bTM2NV9zZXJ2aWNlcy5zZXJ2aWNlcy5vdXRsb29r"><g class="shape" ><path d="M 2578 527 C 2578 503 2624 503 2630 503 C 2635 503 2681 503 2681 527 V 597 C 2681 621 2635 621 2630 621 C 2624 621 2578 621 2578 597 V 527 Z" stroke="#0D32B2" fill="#FFE5E5" class=" stroke-B1" style="stroke-width:2;" /><path d="M 2578 527 C 2578 551 2624 551 2630 551 C 2635 551 2681 551 2681 527" stroke="#0D32B2" fill="#FFE5E5" class=" stroke-B1" style="stroke-width:2;" /></g><text x="2629.500000" y="579.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">Outlook</text></g><g class="bTM2NV9zZXJ2aWNlcy5zZXJ2aWNlcy50ZWFtcw=="><g class="shape" ><path d="M 2584 705 C 2584 681 2625 681 2630 681 C 2635 681 2676 681 2676 705 V 775 C 2676 799 2635 799 2630 799 C 2625 799 2584 799 2584 775 V 705 Z" stroke="#0D32B2" fill="#FFE5E5" class=" stroke-B1" style="stroke-width:2;" /><path d="M 2584 705 C 2584 729 2625 729 2630 729 C 2635 729 2676 729 2676 705" stroke="#0D32B2" fill="#FFE5E5" class=" stroke-B1" style="stroke-width:2;" /></g><text x="2630.000000" y="757.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">Teams</text></g><g class="bTM2NV9zZXJ2aWNlcy5zZXJ2aWNlcy5jYWxlbmRhcg=="><g class="shape" ><path d="M 2575 883 C 2575 859 2625 859 2630 859 C 2636 859 2685 859 2685 883 V 953 C 2685 977 2636 977 2630 977 C 2625 977 2575 977 2575 953 V 883 Z" stroke="#0D32B2" fill="#FFE5E5" class=" stroke-B1" style="stroke-width:2;" /><path d="M 2575 883 C 2575 907 2625 907 2630 907 C 2636 907 2685 907 2685 883" stroke="#0D32B2" fill="#FFE5E5" class=" stroke-B1" style="stroke-width:2;" /></g><text x="2630.000000" y="935.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">Calendar</text></g><g class="KGNsYXVkZSAtJmd0OyBtY3Bfc2VydmVyKVswXQ=="><marker id="mk-d2-1467649149-3488378134" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" fill="#0D32B2" class="connection fill-B1" stroke-width="2" /> </marker><path d="M 259.969247 605.849382 C 357.200012 623.099976 594.200012 627.500000 823.000000 627.500000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-1467649149-3488378134)" mask="url(#d2-1467649149)" /><text x="542.000000" y="624.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px"><tspan x="542.000000" dy="0.000000">MCP Protocol</tspan><tspan x="542.000000" dy="18.500000">(stdio)</tspan></text></g><g class="KG1jcF9zZXJ2ZXIgLSZndDsgYXp1cmVfYWQpWzBd"><path d="M 1106.500000 894.500000 C 1334.099976 894.500000 1441.599976 894.599976 1638.000008 894.992015" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-1467649149-3488378134)" mask="url(#d2-1467649149)" /><text x="1373.500000" y="892.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px"><tspan x="1373.500000" dy="0.000000">1. Authenticate</tspan><tspan x="1373.500000" dy="18.500000">(Client Credentials)</tspan></text></g><g class="KGF6dXJlX2FkIC0mZ3Q7IG1jcF9zZXJ2ZXIpWzBd"><path d="M 1602.909031 944.323758 C 1434.000000 684.799988 1334.099976 619.500000 1108.500000 619.500000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-1467649149-3488378134)" mask="url(#d2-1467649149)" /><text x="1418.000000" y="680.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">2. Access Token</text></g><g class="KG1jcF9zZXJ2ZXIgLSZndDsgZ3JhcGhfYXBpKVswXQ=="><path d="M 1106.500000 647.500000 C 1334.099976 647.500000 1421.400024 637.500000 1466.250000 622.500000 C 1511.099976 607.500000 1650.400024 594.200012 1736.042713 581.582994" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-1467649149-3488378134)" mask="url(#d2-1467649149)" /><text x="1425.000000" y="634.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px"><tspan x="1425.000000" dy="0.000000">3. API Requests</tspan><tspan x="1425.000000" dy="18.500000">(Bearer Token)</tspan></text></g><g class="KGdyYXBoX2FwaSAtJmd0OyBtMzY1X3NlcnZpY2VzKVswXQ=="><path d="M 1938.978263 581.294066 C 2025.800049 594.200012 2065.399902 597.500000 2091.500000 597.500000 C 2117.600098 597.500000 2312.600098 597.500000 2503.000000 597.500000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-1467649149-3488378134)" mask="url(#d2-1467649149)" /><text x="2221.000000" y="603.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">4. Read Data</text></g><g class="KG0zNjVfc2VydmljZXMgLSZndDsgZ3JhcGhfYXBpKVswXQ=="><path d="M 2505.000000 359.500000 C 2312.600098 359.500000 2238.199951 359.500000 2199.500000 359.500000 C 2160.800049 359.500000 2012.800049 394.200012 1874.848587 530.191877" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-1467649149-3488378134)" mask="url(#d2-1467649149)" /><text x="2159.000000" y="365.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">5. Response</text></g><g class="KGdyYXBoX2FwaSAtJmd0OyBtY3Bfc2VydmVyKVswXQ=="><path d="M 1769.180467 535.169759 C 1656.599976 483.799988 1610.599976 470.750000 1584.500000 470.750000 C 1558.400024 470.750000 1334.099976 470.750000 1108.500000 470.750000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-1467649149-3488378134)" mask="url(#d2-1467649149)" /><text x="1444.500000" y="476.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">6. JSON Response</text></g><g class="KG1jcF9zZXJ2ZXIgLSZndDsgY2xhdWRlKVswXQ=="><path d="M 825.000000 436.250000 C 594.200012 436.250000 351.799988 461.049988 234.091263 557.711479" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-1467649149-3488378134)" mask="url(#d2-1467649149)" /><text x="511.000000" y="450.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">7. Formatted Results</text></g><g class="KHBlcm1pc3Npb25zIC0mZ3Q7IGF6dXJlX2FkKVswXQ=="><marker id="mk-d2-1467649149-2177206569" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" fill="#0D32B2" class="connection fill-B2" stroke-width="2" /> </marker><path d="M 1099.500000 1206.000000 C 1332.699951 1206.000000 1423.400024 1206.000000 1547.000000 1206.000000" stroke="#0D32B2" fill="none" class="connection stroke-B2" style="stroke-width:2;stroke-dasharray:6.000000,5.919384;" marker-end="url(#mk-d2-1467649149-2177206569)" mask="url(#d2-1467649149)" /><text x="1324.000000" y="1212.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">Admin Consent</text></g><g class="KHNlY3VyaXR5IC0mZ3Q7IG1jcF9zZXJ2ZXIpWzBd"><path d="M 327.000000 834.500000 C 493.799988 834.500000 594.200012 834.500000 823.000000 834.500000" stroke="#0D32B2" fill="none" class="connection stroke-B2" style="stroke-width:2;stroke-dasharray:6.000000,5.919384;" marker-end="url(#mk-d2-1467649149-2177206569)" mask="url(#d2-1467649149)" /></g><mask id="d2-1467649149" maskUnits="userSpaceOnUse" x="-44" y="-117" width="2902" height="1564">
<rect x="-44" y="-117" width="2902" height="1564" fill="white"></rect>
<rect x="496.000000" y="608.000000" width="92" height="37" fill="black"></rect>
<rect x="1309.000000" y="876.000000" width="129" height="37" fill="black"></rect>
<rect x="1365.000000" y="664.000000" width="106" height="21" fill="black"></rect>
<rect x="1373.000000" y="618.000000" width="104" height="37" fill="black"></rect>
<rect x="2177.000000" y="587.000000" width="88" height="21" fill="black"></rect>
<rect x="2118.000000" y="349.000000" width="82" height="21" fill="black"></rect>
<rect x="1384.000000" y="460.000000" width="121" height="21" fill="black"></rect>
<rect x="442.000000" y="434.000000" width="138" height="21" fill="black"></rect>
<rect x="1272.000000" y="1196.000000" width="104" height="21" fill="black"></rect>
</mask></svg></svg>