summaryrefslogtreecommitdiff
path: root/yuck.html
blob: 1f5cce5cb83e2809963434db902c3d65175e2bc1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
  <meta charset="utf-8" />
  <meta name="generator" content="pandoc" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
  <title>Yuck or OIDC</title>
  <style type="text/css">
      code{white-space: pre-wrap;}
      span.smallcaps{font-variant: small-caps;}
      span.underline{text-decoration: underline;}
      div.column{display: inline-block; vertical-align: top; width: 50%;}
  </style>
</head>
<body>
<header>
<h1 class="title">Yuck or OIDC</h1>
<p class="date">2020-04-25 08:01</p>
</header>
<nav id="TOC">
<ul>
<li><a href="#oidc-protocol"><span class="toc-section-number">1</span> OIDC protocol</a></li>
</ul>
</nav>
<h1 id="oidc-protocol"><span class="header-section-number">1</span> OIDC protocol</h1>
<p>The OIDC protocol involves the following entities:</p>
<ul>
<li>the <strong>end user</strong>, who is trying to do something</li>
<li>the <strong>web browser</strong>, used by the user</li>
<li>the <strong>web application</strong>, which the user uses to do things, and as part of that access resources</li>
<li>the <strong>resource provider</strong>, where the resources are, and which allows access to them via a web API</li>
<li>the <strong>identity provider</strong>, which authenticates the user</li>
</ul>
<p><img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBjb250ZW50U2NyaXB0VHlwZT0iYXBwbGljYXRpb24vZWNtYXNjcmlwdCIgY29udGVudFN0eWxlVHlwZT0idGV4dC9jc3MiIGhlaWdodD0iNjIycHgiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiIHN0eWxlPSJ3aWR0aDo3NDNweDtoZWlnaHQ6NjIycHg7IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCA3NDMgNjIyIiB3aWR0aD0iNzQzcHgiIHpvb21BbmRQYW49Im1hZ25pZnkiPjxkZWZzPjxmaWx0ZXIgaGVpZ2h0PSIzMDAlIiBpZD0iZjlheHZzNXQ5ZzM3cyIgd2lkdGg9IjMwMCUiIHg9Ii0xIiB5PSItMSI+PGZlR2F1c3NpYW5CbHVyIHJlc3VsdD0iYmx1ck91dCIgc3RkRGV2aWF0aW9uPSIyLjAiLz48ZmVDb2xvck1hdHJpeCBpbj0iYmx1ck91dCIgcmVzdWx0PSJibHVyT3V0MiIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIC40IDAiLz48ZmVPZmZzZXQgZHg9IjQuMCIgZHk9IjQuMCIgaW49ImJsdXJPdXQyIiByZXN1bHQ9ImJsdXJPdXQzIi8+PGZlQmxlbmQgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iYmx1ck91dDMiIG1vZGU9Im5vcm1hbCIvPjwvZmlsdGVyPjwvZGVmcz48Zz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsgc3Ryb2tlLWRhc2hhcnJheTogNS4wLDUuMDsiIHgxPSIzMiIgeDI9IjMyIiB5MT0iMzguMjk2OSIgeTI9IjU4Mi42ODc1Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IHN0cm9rZS1kYXNoYXJyYXk6IDUuMCw1LjA7IiB4MT0iMjI5LjUiIHgyPSIyMjkuNSIgeTE9IjM4LjI5NjkiIHkyPSI1ODIuNjg3NSIvPjxsaW5lIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyBzdHJva2UtZGFzaGFycmF5OiA1LjAsNS4wOyIgeDE9IjQ0MS41IiB4Mj0iNDQxLjUiIHkxPSIzOC4yOTY5IiB5Mj0iNTgyLjY4NzUiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsgc3Ryb2tlLWRhc2hhcnJheTogNS4wLDUuMDsiIHgxPSI2NzQiIHgyPSI2NzQiIHkxPSIzOC4yOTY5IiB5Mj0iNTgyLjY4NzUiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsgc3Ryb2tlLWRhc2hhcnJheTogNS4wLDUuMDsiIHgxPSI3MjAiIHgyPSI3MjAiIHkxPSIzOC4yOTY5IiB5Mj0iNTgyLjY4NzUiLz48cmVjdCBmaWxsPSIjRkVGRUNFIiBmaWx0ZXI9InVybCgjZjlheHZzNXQ5ZzM3cykiIGhlaWdodD0iMzAuMjk2OSIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjU7IiB3aWR0aD0iNDUiIHg9IjgiIHk9IjMiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIzMSIgeD0iMTUiIHk9IjIyLjk5NTEiPnVzZXI8L3RleHQ+PHJlY3QgZmlsbD0iI0ZFRkVDRSIgZmlsdGVyPSJ1cmwoI2Y5YXh2czV0OWczN3MpIiBoZWlnaHQ9IjMwLjI5NjkiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS41OyIgd2lkdGg9IjQ1IiB4PSI4IiB5PSI1ODEuNjg3NSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiIHRleHRMZW5ndGg9IjMxIiB4PSIxNSIgeT0iNjAxLjY4MjYiPnVzZXI8L3RleHQ+PHJlY3QgZmlsbD0iI0ZFRkVDRSIgZmlsdGVyPSJ1cmwoI2Y5YXh2czV0OWczN3MpIiBoZWlnaHQ9IjMwLjI5NjkiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS41OyIgd2lkdGg9IjcwIiB4PSIxOTIuNSIgeT0iMyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiIHRleHRMZW5ndGg9IjU2IiB4PSIxOTkuNSIgeT0iMjIuOTk1MSI+YnJvd3NlcjwvdGV4dD48cmVjdCBmaWxsPSIjRkVGRUNFIiBmaWx0ZXI9InVybCgjZjlheHZzNXQ5ZzM3cykiIGhlaWdodD0iMzAuMjk2OSIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjU7IiB3aWR0aD0iNzAiIHg9IjE5Mi41IiB5PSI1ODEuNjg3NSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiIHRleHRMZW5ndGg9IjU2IiB4PSIxOTkuNSIgeT0iNjAxLjY4MjYiPmJyb3dzZXI8L3RleHQ+PHJlY3QgZmlsbD0iI0ZFRkVDRSIgZmlsdGVyPSJ1cmwoI2Y5YXh2czV0OWczN3MpIiBoZWlnaHQ9IjMwLjI5NjkiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS41OyIgd2lkdGg9IjQwIiB4PSI0MTkuNSIgeT0iMyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiIHRleHRMZW5ndGg9IjI2IiB4PSI0MjYuNSIgeT0iMjIuOTk1MSI+YXBwPC90ZXh0PjxyZWN0IGZpbGw9IiNGRUZFQ0UiIGZpbHRlcj0idXJsKCNmOWF4dnM1dDlnMzdzKSIgaGVpZ2h0PSIzMC4yOTY5IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuNTsiIHdpZHRoPSI0MCIgeD0iNDE5LjUiIHk9IjU4MS42ODc1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZ0FuZEdseXBocyIgdGV4dExlbmd0aD0iMjYiIHg9IjQyNi41IiB5PSI2MDEuNjgyNiI+YXBwPC90ZXh0PjxyZWN0IGZpbGw9IiNGRUZFQ0UiIGZpbHRlcj0idXJsKCNmOWF4dnM1dDlnMzdzKSIgaGVpZ2h0PSIzMC4yOTY5IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuNTsiIHdpZHRoPSIzNSIgeD0iNjU1IiB5PSIzIi8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZ0FuZEdseXBocyIgdGV4dExlbmd0aD0iMjEiIHg9IjY2MiIgeT0iMjIuOTk1MSI+aWRwPC90ZXh0PjxyZWN0IGZpbGw9IiNGRUZFQ0UiIGZpbHRlcj0idXJsKCNmOWF4dnM1dDlnMzdzKSIgaGVpZ2h0PSIzMC4yOTY5IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuNTsiIHdpZHRoPSIzNSIgeD0iNjU1IiB5PSI1ODEuNjg3NSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiIHRleHRMZW5ndGg9IjIxIiB4PSI2NjIiIHk9IjYwMS42ODI2Ij5pZHA8L3RleHQ+PHJlY3QgZmlsbD0iI0ZFRkVDRSIgZmlsdGVyPSJ1cmwoI2Y5YXh2czV0OWczN3MpIiBoZWlnaHQ9IjMwLjI5NjkiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS41OyIgd2lkdGg9IjI4IiB4PSI3MDQiIHk9IjMiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIxNCIgeD0iNzExIiB5PSIyMi45OTUxIj5ycDwvdGV4dD48cmVjdCBmaWxsPSIjRkVGRUNFIiBmaWx0ZXI9InVybCgjZjlheHZzNXQ5ZzM3cykiIGhlaWdodD0iMzAuMjk2OSIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjU7IiB3aWR0aD0iMjgiIHg9IjcwNCIgeT0iNTgxLjY4NzUiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIxNCIgeD0iNzExIiB5PSI2MDEuNjgyNiI+cnA8L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSIyMTcuNSw2NS40Mjk3LDIyNy41LDY5LjQyOTcsMjE3LjUsNzMuNDI5NywyMjEuNSw2OS40Mjk3IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiIHgxPSIzMi41IiB4Mj0iMjIzLjUiIHkxPSI2OS40Mjk3IiB5Mj0iNjkuNDI5NyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiIHRleHRMZW5ndGg9IjEyNiIgeD0iMzkuNSIgeT0iNjQuMzYzOCI+Y2xpY2tzIG9uIHNvbWV0aGluZzwvdGV4dD48cG9seWdvbiBmaWxsPSIjQTgwMDM2IiBwb2ludHM9IjQyOS41LDk0LjU2MjUsNDM5LjUsOTguNTYyNSw0MjkuNSwxMDIuNTYyNSw0MzMuNSw5OC41NjI1IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiIHgxPSIyMjkuNSIgeDI9IjQzNS41IiB5MT0iOTguNTYyNSIgeTI9Ijk4LjU2MjUiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIxMDEiIHg9IjIzNi41IiB5PSI5My40OTY2Ij5HRVQgL3NvbWV0aGluZzwvdGV4dD48cG9seWdvbiBmaWxsPSIjQTgwMDM2IiBwb2ludHM9IjI0MC41LDEyMy42OTUzLDIzMC41LDEyNy42OTUzLDI0MC41LDEzMS42OTUzLDIzNi41LDEyNy42OTUzIiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiIHgxPSIyMzQuNSIgeDI9IjQ0MC41IiB5MT0iMTI3LjY5NTMiIHkyPSIxMjcuNjk1MyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiIHRleHRMZW5ndGg9IjEwNCIgeD0iMjQ2LjUiIHk9IjEyMi42Mjk0Ij5yZWRpcmVjdCB0byAvbG9naW48L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSI0MjkuNSwxNTIuODI4MSw0MzkuNSwxNTYuODI4MSw0MjkuNSwxNjAuODI4MSw0MzMuNSwxNTYuODI4MSIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IiB4MT0iMjI5LjUiIHgyPSI0MzUuNSIgeTE9IjE1Ni44MjgxIiB5Mj0iMTU2LjgyODEiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSI2MyIgeD0iMjM2LjUiIHk9IjE1MS43NjIyIj5HRVQgL2xvZ2luPC90ZXh0Pjxwb2x5Z29uIGZpbGw9IiNBODAwMzYiIHBvaW50cz0iMjQwLjUsMTgxLjk2MDksMjMwLjUsMTg1Ljk2MDksMjQwLjUsMTg5Ljk2MDksMjM2LjUsMTg1Ljk2MDkiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIgeDE9IjIzNC41IiB4Mj0iNDQwLjUiIHkxPSIxODUuOTYwOSIgeTI9IjE4NS45NjA5Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZ0FuZEdseXBocyIgdGV4dExlbmd0aD0iODkiIHg9IjI0Ni41IiB5PSIxODAuODk1Ij5yZWRpcmVjdCB0byBpZHA8L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSI2NjIuNSwyMTEuMDkzOCw2NzIuNSwyMTUuMDkzOCw2NjIuNSwyMTkuMDkzOCw2NjYuNSwyMTUuMDkzOCIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IiB4MT0iMjI5LjUiIHgyPSI2NjguNSIgeTE9IjIxNS4wOTM4IiB5Mj0iMjE1LjA5MzgiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSI2MyIgeD0iMjM2LjUiIHk9IjIxMC4wMjc4Ij5HRVQgL2xvZ2luPC90ZXh0Pjxwb2x5Z29uIGZpbGw9IiNBODAwMzYiIHBvaW50cz0iMjQwLjUsMjQwLjIyNjYsMjMwLjUsMjQ0LjIyNjYsMjQwLjUsMjQ4LjIyNjYsMjM2LjUsMjQ0LjIyNjYiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIgeDE9IjIzNC41IiB4Mj0iNjczLjUiIHkxPSIyNDQuMjI2NiIgeTI9IjI0NC4yMjY2Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZ0FuZEdseXBocyIgdGV4dExlbmd0aD0iNjQiIHg9IjI0Ni41IiB5PSIyMzkuMTYwNiI+bG9naW4gZm9ybTwvdGV4dD48cG9seWdvbiBmaWxsPSIjQTgwMDM2IiBwb2ludHM9IjQzLjUsMjY5LjM1OTQsMzMuNSwyNzMuMzU5NCw0My41LDI3Ny4zNTk0LDM5LjUsMjczLjM1OTQiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIgeDE9IjM3LjUiIHgyPSIyMjguNSIgeTE9IjI3My4zNTk0IiB5Mj0iMjczLjM1OTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIxMDAiIHg9IjQ5LjUiIHk9IjI2OC4yOTM1Ij5zaG93IGxvZ2luIGZvcm08L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSIyMTcuNSwyOTguNDkyMiwyMjcuNSwzMDIuNDkyMiwyMTcuNSwzMDYuNDkyMiwyMjEuNSwzMDIuNDkyMiIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IiB4MT0iMzIuNSIgeDI9IjIyMy41IiB5MT0iMzAyLjQ5MjIiIHkyPSIzMDIuNDkyMiIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiIHRleHRMZW5ndGg9Ijk1IiB4PSIzOS41IiB5PSIyOTcuNDI2MyI+ZW50ZXIgbG9naW4gaW5mbzwvdGV4dD48cG9seWdvbiBmaWxsPSIjQTgwMDM2IiBwb2ludHM9IjY2Mi41LDMyNy42MjUsNjcyLjUsMzMxLjYyNSw2NjIuNSwzMzUuNjI1LDY2Ni41LDMzMS42MjUiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIgeDE9IjIyOS41IiB4Mj0iNjY4LjUiIHkxPSIzMzEuNjI1IiB5Mj0iMzMxLjYyNSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiIHRleHRMZW5ndGg9IjEwMiIgeD0iMjM2LjUiIHk9IjMyNi41NTkxIj5QT1NUIGxvZ2luIGZvcm08L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSIyNDAuNSwzNTYuNzU3OCwyMzAuNSwzNjAuNzU3OCwyNDAuNSwzNjQuNzU3OCwyMzYuNSwzNjAuNzU3OCIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IiB4MT0iMjM0LjUiIHgyPSI2NzMuNSIgeTE9IjM2MC43NTc4IiB5Mj0iMzYwLjc1NzgiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIyNTciIHg9IjI0Ni41IiB5PSIzNTUuNjkxOSI+cmVkaXJlY3QgdG8gYXBwIC9jYWxsYmFjayB3aXRoIGF1dGh6IGNvZGU8L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSI0MjkuNSwzODUuODkwNiw0MzkuNSwzODkuODkwNiw0MjkuNSwzOTMuODkwNiw0MzMuNSwzODkuODkwNiIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IiB4MT0iMjI5LjUiIHgyPSI0MzUuNSIgeTE9IjM4OS44OTA2IiB5Mj0iMzg5Ljg5MDYiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIxODgiIHg9IjIzNi41IiB5PSIzODQuODI0NyI+R0VUIC9jYWxsYmFjayB3aXRoIGF1dGh6IGNvZGU8L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSI2NjIuNSw0MTUuMDIzNCw2NzIuNSw0MTkuMDIzNCw2NjIuNSw0MjMuMDIzNCw2NjYuNSw0MTkuMDIzNCIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IiB4MT0iNDQxLjUiIHgyPSI2NjguNSIgeTE9IjQxOS4wMjM0IiB5Mj0iNDE5LjAyMzQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIyMDkiIHg9IjQ0OC41IiB5PSI0MTMuOTU3NSI+cmVxdWVzdCB0b2tlbnMgdXNpbmcgYXV0aHogY29kZTwvdGV4dD48cG9seWdvbiBmaWxsPSIjQTgwMDM2IiBwb2ludHM9IjQ1Mi41LDQ0NC4xNTYzLDQ0Mi41LDQ0OC4xNTYzLDQ1Mi41LDQ1Mi4xNTYzLDQ0OC41LDQ0OC4xNTYzIiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiIHgxPSI0NDYuNSIgeDI9IjY3My41IiB5MT0iNDQ4LjE1NjMiIHkyPSI0NDguMTU2MyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiIHRleHRMZW5ndGg9IjE5MSIgeD0iNDU4LjUiIHk9IjQ0My4wOTAzIj5hY2Nlc3MsIGlkLCBhbmQgcmVmcmVzaCB0b2tlbnM8L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSI3MDgsNDczLjI4OTEsNzE4LDQ3Ny4yODkxLDcwOCw0ODEuMjg5MSw3MTIsNDc3LjI4OTEiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIgeDE9IjQ0MS41IiB4Mj0iNzE0IiB5MT0iNDc3LjI4OTEiIHkyPSI0NzcuMjg5MSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiIHRleHRMZW5ndGg9IjIyMSIgeD0iNDQ4LjUiIHk9IjQ3Mi4yMjMxIj5hY2Nlc3MgcmVzb3VyY2Ugd2l0aCBhY2Nlc3MgdG9rZW48L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSI0NTIuNSw1MDIuNDIxOSw0NDIuNSw1MDYuNDIxOSw0NTIuNSw1MTAuNDIxOSw0NDguNSw1MDYuNDIxOSIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IiB4MT0iNDQ2LjUiIHgyPSI3MTkiIHkxPSI1MDYuNDIxOSIgeTI9IjUwNi40MjE5Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZ0FuZEdseXBocyIgdGV4dExlbmd0aD0iNTYiIHg9IjQ1OC41IiB5PSI1MDEuMzU2Ij5yZXNvdXJjZTwvdGV4dD48cG9seWdvbiBmaWxsPSIjQTgwMDM2IiBwb2ludHM9IjI0MC41LDUzMS41NTQ3LDIzMC41LDUzNS41NTQ3LDI0MC41LDUzOS41NTQ3LDIzNi41LDUzNS41NTQ3IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiIHgxPSIyMzQuNSIgeDI9IjQ0MC41IiB5MT0iNTM1LjU1NDciIHkyPSI1MzUuNTU0NyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiIHRleHRMZW5ndGg9IjEyMSIgeD0iMjQ2LjUiIHk9IjUzMC40ODg4Ij5wYWdlIHdpdGggcmVzb3VyY2U8L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSI0My41LDU2MC42ODc1LDMzLjUsNTY0LjY4NzUsNDMuNSw1NjguNjg3NSwzOS41LDU2NC42ODc1IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiIHgxPSIzNy41IiB4Mj0iMjI4LjUiIHkxPSI1NjQuNjg3NSIgeTI9IjU2NC42ODc1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZ0FuZEdseXBocyIgdGV4dExlbmd0aD0iMTczIiB4PSI0OS41IiB5PSI1NTkuNjIxNiI+c2hvdyB3aGF0IHRoZSB1c2VyIHdhbnRlZDwvdGV4dD48IS0tCkBzdGFydHVtbA0KdXNlciAtPiBicm93c2VyIDogY2xpY2tzIG9uIHNvbWV0aGluZw0KYnJvd3NlciAtPiBhcHAgOiBHRVQgL3NvbWV0aGluZw0KYnJvd3NlciA8LSBhcHAgOiByZWRpcmVjdCB0byAvbG9naW4NCmJyb3dzZXIgLT4gYXBwIDogR0VUIC9sb2dpbg0KYnJvd3NlciA8LSBhcHA6IHJlZGlyZWN0IHRvIGlkcA0KYnJvd3NlciAtPiBpZHAgOiBHRVQgL2xvZ2luDQpicm93c2VyIDwtIGlkcCA6IGxvZ2luIGZvcm0NCnVzZXIgPC0gYnJvd3NlciA6IHNob3cgbG9naW4gZm9ybQ0KdXNlciAtPiBicm93c2VyIDogZW50ZXIgbG9naW4gaW5mbw0KYnJvd3NlciAtPiBpZHAgOiBQT1NUIGxvZ2luIGZvcm0NCmJyb3dzZXIgPC0gaWRwIDogcmVkaXJlY3QgdG8gYXBwIC9jYWxsYmFjayB3aXRoIGF1dGh6IGNvZGUNCmJyb3dzZXIgLT4gYXBwIDogR0VUIC9jYWxsYmFjayB3aXRoIGF1dGh6IGNvZGUNCmFwcCAtPiBpZHAgOiByZXF1ZXN0IHRva2VucyB1c2luZyBhdXRoeiBjb2RlDQphcHAgPC0gaWRwIDogYWNjZXNzLCBpZCwgYW5kIHJlZnJlc2ggdG9rZW5zDQphcHAgLT4gcnAgOiBhY2Nlc3MgcmVzb3VyY2Ugd2l0aCBhY2Nlc3MgdG9rZW4NCmFwcCA8LSBycCA6IHJlc291cmNlDQpicm93c2VyIDwtIGFwcCA6IHBhZ2Ugd2l0aCByZXNvdXJjZQ0KdXNlciA8LSBicm93c2VyIDogc2hvdyB3aGF0IHRoZSB1c2VyIHdhbnRlZA0KQGVuZHVtbA0KClBsYW50VU1MIHZlcnNpb24gMS4yMDE4LjEzKE1vbiBOb3YgMjYgMTk6MTE6NTEgRUVUIDIwMTgpCihHUEwgc291cmNlIGRpc3RyaWJ1dGlvbikKSmF2YSBSdW50aW1lOiBPcGVuSkRLIFJ1bnRpbWUgRW52aXJvbm1lbnQKSlZNOiBPcGVuSkRLIDY0LUJpdCBTZXJ2ZXIgVk0KSmF2YSBWZXJzaW9uOiAxMS4wLjYrMTAtcG9zdC1EZWJpYW4tMWRlYjEwdTEKT3BlcmF0aW5nIFN5c3RlbTogTGludXgKT1MgVmVyc2lvbjogNC4xOS4wLTgtYW1kNjQKRGVmYXVsdCBFbmNvZGluZzogVVRGLTgKTGFuZ3VhZ2U6IGVuCkNvdW50cnk6IEdCCi0tPjwvZz48L3N2Zz4=" /></p>
</body>
</html>