srijithrajamohan commited on
Commit
e85bc7b
·
verified ·
1 Parent(s): d058a43

Publish site

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ site_libs/bootstrap/bootstrap-icons.woff filter=lfs diff=lfs merge=lfs -text
index.html CHANGED
@@ -1,19 +1,642 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
3
+
4
+ <meta charset="utf-8">
5
+ <meta name="generator" content="quarto-1.8.27">
6
+
7
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
8
+
9
+
10
+ <title>AI Research Redis</title>
11
+ <style>
12
+ code{white-space: pre-wrap;}
13
+ span.smallcaps{font-variant: small-caps;}
14
+ div.columns{display: flex; gap: min(4vw, 1.5em);}
15
+ div.column{flex: auto; overflow-x: auto;}
16
+ div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
17
+ ul.task-list{list-style: none;}
18
+ ul.task-list li input[type="checkbox"] {
19
+ width: 0.8em;
20
+ margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
21
+ vertical-align: middle;
22
+ }
23
+ </style>
24
+
25
+
26
+ <script src="site_libs/quarto-nav/quarto-nav.js"></script>
27
+ <script src="site_libs/quarto-nav/headroom.min.js"></script>
28
+ <script src="site_libs/clipboard/clipboard.min.js"></script>
29
+ <script src="site_libs/quarto-search/autocomplete.umd.js"></script>
30
+ <script src="site_libs/quarto-search/fuse.min.js"></script>
31
+ <script src="site_libs/quarto-search/quarto-search.js"></script>
32
+ <meta name="quarto:offset" content="./">
33
+ <script src="site_libs/quarto-listing/list.min.js"></script>
34
+ <script src="site_libs/quarto-listing/quarto-listing.js"></script>
35
+ <script src="site_libs/quarto-html/quarto.js" type="module"></script>
36
+ <script src="site_libs/quarto-html/tabsets/tabsets.js" type="module"></script>
37
+ <script src="site_libs/quarto-html/axe/axe-check.js" type="module"></script>
38
+ <script src="site_libs/quarto-html/popper.min.js"></script>
39
+ <script src="site_libs/quarto-html/tippy.umd.min.js"></script>
40
+ <script src="site_libs/quarto-html/anchor.min.js"></script>
41
+ <link href="site_libs/quarto-html/tippy.css" rel="stylesheet">
42
+ <link href="site_libs/quarto-html/quarto-syntax-highlighting-ed96de9b727972fe78a7b5d16c58bf87.css" rel="stylesheet" id="quarto-text-highlighting-styles">
43
+ <script src="site_libs/bootstrap/bootstrap.min.js"></script>
44
+ <link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
45
+ <link href="site_libs/bootstrap/bootstrap-a8976c3e89df70b272bdfba3d2fda974.min.css" rel="stylesheet" append-hash="true" id="quarto-bootstrap" data-mode="light">
46
+ <script id="quarto-search-options" type="application/json">{
47
+ "location": "navbar",
48
+ "copy-button": false,
49
+ "collapse-after": 3,
50
+ "panel-placement": "end",
51
+ "type": "overlay",
52
+ "limit": 50,
53
+ "keyboard-shortcut": [
54
+ "f",
55
+ "/",
56
+ "s"
57
+ ],
58
+ "show-item-context": false,
59
+ "language": {
60
+ "search-no-results-text": "No results",
61
+ "search-matching-documents-text": "matching documents",
62
+ "search-copy-link-title": "Copy link to search",
63
+ "search-hide-matches-text": "Hide additional matches",
64
+ "search-more-match-text": "more match in this document",
65
+ "search-more-matches-text": "more matches in this document",
66
+ "search-clear-button-title": "Clear",
67
+ "search-text-placeholder": "",
68
+ "search-detached-cancel-button-title": "Cancel",
69
+ "search-submit-button-title": "Submit",
70
+ "search-label": "Search"
71
+ }
72
+ }</script>
73
+ <script>
74
+
75
+ window.document.addEventListener("DOMContentLoaded", function (_event) {
76
+ const listingTargetEl = window.document.querySelector('#listing-listing .list');
77
+ if (!listingTargetEl) {
78
+ // No listing discovered, do not attach.
79
+ return;
80
+ }
81
+
82
+ const options = {
83
+ valueNames: ['listing-title','listing-date','listing-description',{ data: ['index'] },{ data: ['categories'] },{ data: ['listing-date-sort'] },{ data: ['listing-file-modified-sort'] }],
84
+
85
+ searchColumns: ["listing-date","listing-title","listing-author","listing-image","listing-description"],
86
+ };
87
+
88
+ window['quarto-listings'] = window['quarto-listings'] || {};
89
+ window['quarto-listings']['listing-listing'] = new List('listing-listing', options);
90
+
91
+ if (window['quarto-listing-loaded']) {
92
+ window['quarto-listing-loaded']();
93
+ }
94
+ });
95
+
96
+ window.addEventListener('hashchange',() => {
97
+ if (window['quarto-listing-loaded']) {
98
+ window['quarto-listing-loaded']();
99
+ }
100
+ })
101
+ </script>
102
+
103
+ <script src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?features=es6"></script>
104
+ <script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml-full.js" type="text/javascript"></script>
105
+
106
+ <script type="text/javascript">
107
+ const typesetMath = (el) => {
108
+ if (window.MathJax) {
109
+ // MathJax Typeset
110
+ window.MathJax.typeset([el]);
111
+ } else if (window.katex) {
112
+ // KaTeX Render
113
+ var mathElements = el.getElementsByClassName("math");
114
+ var macros = [];
115
+ for (var i = 0; i < mathElements.length; i++) {
116
+ var texText = mathElements[i].firstChild;
117
+ if (mathElements[i].tagName == "SPAN" && texText && texText.data) {
118
+ window.katex.render(texText.data, mathElements[i], {
119
+ displayMode: mathElements[i].classList.contains('display'),
120
+ throwOnError: false,
121
+ macros: macros,
122
+ fleqn: false
123
+ });
124
+ }
125
+ }
126
+ }
127
+ }
128
+ window.Quarto = {
129
+ typesetMath
130
+ };
131
+ </script>
132
+
133
+ </head>
134
+
135
+ <body class="nav-fixed quarto-light">
136
+
137
+ <div id="quarto-search-results"></div>
138
+ <header id="quarto-header" class="headroom fixed-top">
139
+ <nav class="navbar navbar-expand-lg " data-bs-theme="dark">
140
+ <div class="navbar-container container-fluid">
141
+ <div class="navbar-brand-container mx-auto">
142
+ <a class="navbar-brand" href="./index.html">
143
+ <span class="navbar-title">AI Research Redis</span>
144
+ </a>
145
+ </div>
146
+ <div id="quarto-search" class="" title="Search"></div>
147
+ <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" role="menu" aria-expanded="false" aria-label="Toggle navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
148
+ <span class="navbar-toggler-icon"></span>
149
+ </button>
150
+ <div class="collapse navbar-collapse" id="navbarCollapse">
151
+ <ul class="navbar-nav navbar-nav-scroll me-auto">
152
+ <li class="nav-item">
153
+ <a class="nav-link active" href="./index.html" aria-current="page">
154
+ <span class="menu-text">Home</span></a>
155
+ </li>
156
+ <li class="nav-item">
157
+ <a class="nav-link" href="./posts/index.html">
158
+ <span class="menu-text">Posts</span></a>
159
+ </li>
160
+ </ul>
161
+ </div> <!-- /navcollapse -->
162
+ <div class="quarto-navbar-tools">
163
+ </div>
164
+ </div> <!-- /container-fluid -->
165
+ </nav>
166
+ </header>
167
+ <!-- content -->
168
+ <div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
169
+ <!-- sidebar -->
170
+ <!-- margin-sidebar -->
171
+ <div id="quarto-margin-sidebar" class="sidebar margin-sidebar zindex-bottom">
172
+
173
+ </div>
174
+ <!-- main -->
175
+ <main class="content" id="quarto-document-content">
176
+
177
+ <header id="title-block-header" class="quarto-title-block default">
178
+ <div class="quarto-title">
179
+ <h1 class="title">AI Research Redis</h1>
180
+ </div>
181
+
182
+
183
+
184
+ <div class="quarto-title-meta">
185
+
186
+
187
+
188
+
189
+ </div>
190
+
191
+
192
+
193
+ </header>
194
+
195
+
196
+ <p>Notes and write-ups. The canonical rich HTML version of each post lives here; Medium can import from the post URL.</p>
197
+
198
+
199
+
200
+
201
+ <div class="quarto-listing quarto-listing-container-default" id="listing-listing">
202
+ <div class="list quarto-listing-default">
203
+ <div class="quarto-post image-right" data-index="0" data-listing-file-modified-sort="1773873256038" data-listing-reading-time-sort="1" data-listing-word-count-sort="1">
204
+ <div class="body">
205
+ <h3 class="no-anchor listing-title">
206
+ <a href="./posts/index.html" class="no-external">Posts</a>
207
+ </h3>
208
+ <div class="delink listing-description"><a href="./posts/index.html" class="no-external">
209
+ First Quarto post (template).
210
+ </a></div>
211
+ </div>
212
+ <div class="metadata">
213
+ <a href="./posts/index.html" class="no-external">
214
+ </a>
215
+ </div>
216
+ </div>
217
+ <div class="quarto-post image-right" data-index="1" data-listing-date-sort="1773806400000" data-listing-file-modified-sort="1773873218472" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="1" data-listing-word-count-sort="11">
218
+ <div class="body">
219
+ <h3 class="no-anchor listing-title">
220
+ <a href="./posts/hello.html" class="no-external">Hello</a>
221
+ </h3>
222
+ <div class="delink listing-description"><a href="./posts/hello.html" class="no-external">
223
+ <p>First Quarto post (template).</p>
224
+ </a></div>
225
+ </div>
226
+ <div class="metadata">
227
+ <a href="./posts/hello.html" class="no-external">
228
+ <div class="listing-date">
229
+ Mar 18, 2026
230
+ </div>
231
+ </a>
232
+ </div>
233
+ </div>
234
+ </div>
235
+ <div class="listing-no-matching d-none">No matching items</div>
236
+ </div></main> <!-- /main -->
237
+ <script id="quarto-html-after-body" type="application/javascript">
238
+ window.document.addEventListener("DOMContentLoaded", function (event) {
239
+ const icon = "";
240
+ const anchorJS = new window.AnchorJS();
241
+ anchorJS.options = {
242
+ placement: 'right',
243
+ icon: icon
244
+ };
245
+ anchorJS.add('.anchored');
246
+ const isCodeAnnotation = (el) => {
247
+ for (const clz of el.classList) {
248
+ if (clz.startsWith('code-annotation-')) {
249
+ return true;
250
+ }
251
+ }
252
+ return false;
253
+ }
254
+ const onCopySuccess = function(e) {
255
+ // button target
256
+ const button = e.trigger;
257
+ // don't keep focus
258
+ button.blur();
259
+ // flash "checked"
260
+ button.classList.add('code-copy-button-checked');
261
+ var currentTitle = button.getAttribute("title");
262
+ button.setAttribute("title", "Copied!");
263
+ let tooltip;
264
+ if (window.bootstrap) {
265
+ button.setAttribute("data-bs-toggle", "tooltip");
266
+ button.setAttribute("data-bs-placement", "left");
267
+ button.setAttribute("data-bs-title", "Copied!");
268
+ tooltip = new bootstrap.Tooltip(button,
269
+ { trigger: "manual",
270
+ customClass: "code-copy-button-tooltip",
271
+ offset: [0, -8]});
272
+ tooltip.show();
273
+ }
274
+ setTimeout(function() {
275
+ if (tooltip) {
276
+ tooltip.hide();
277
+ button.removeAttribute("data-bs-title");
278
+ button.removeAttribute("data-bs-toggle");
279
+ button.removeAttribute("data-bs-placement");
280
+ }
281
+ button.setAttribute("title", currentTitle);
282
+ button.classList.remove('code-copy-button-checked');
283
+ }, 1000);
284
+ // clear code selection
285
+ e.clearSelection();
286
+ }
287
+ const getTextToCopy = function(trigger) {
288
+ const outerScaffold = trigger.parentElement.cloneNode(true);
289
+ const codeEl = outerScaffold.querySelector('code');
290
+ for (const childEl of codeEl.children) {
291
+ if (isCodeAnnotation(childEl)) {
292
+ childEl.remove();
293
+ }
294
+ }
295
+ return codeEl.innerText;
296
+ }
297
+ const clipboard = new window.ClipboardJS('.code-copy-button:not([data-in-quarto-modal])', {
298
+ text: getTextToCopy
299
+ });
300
+ clipboard.on('success', onCopySuccess);
301
+ if (window.document.getElementById('quarto-embedded-source-code-modal')) {
302
+ const clipboardModal = new window.ClipboardJS('.code-copy-button[data-in-quarto-modal]', {
303
+ text: getTextToCopy,
304
+ container: window.document.getElementById('quarto-embedded-source-code-modal')
305
+ });
306
+ clipboardModal.on('success', onCopySuccess);
307
+ }
308
+ var localhostRegex = new RegExp(/^(?:http|https):\/\/localhost\:?[0-9]*\//);
309
+ var mailtoRegex = new RegExp(/^mailto:/);
310
+ var filterRegex = new RegExp("https:\/\/srijithrajamohan-ai-research-redis\.hf\.space");
311
+ var isInternal = (href) => {
312
+ return filterRegex.test(href) || localhostRegex.test(href) || mailtoRegex.test(href);
313
+ }
314
+ // Inspect non-navigation links and adorn them if external
315
+ var links = window.document.querySelectorAll('a[href]:not(.nav-link):not(.navbar-brand):not(.toc-action):not(.sidebar-link):not(.sidebar-item-toggle):not(.pagination-link):not(.no-external):not([aria-hidden]):not(.dropdown-item):not(.quarto-navigation-tool):not(.about-link)');
316
+ for (var i=0; i<links.length; i++) {
317
+ const link = links[i];
318
+ if (!isInternal(link.href)) {
319
+ // undo the damage that might have been done by quarto-nav.js in the case of
320
+ // links that we want to consider external
321
+ if (link.dataset.originalHref !== undefined) {
322
+ link.href = link.dataset.originalHref;
323
+ }
324
+ }
325
+ }
326
+ function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
327
+ const config = {
328
+ allowHTML: true,
329
+ maxWidth: 500,
330
+ delay: 100,
331
+ arrow: false,
332
+ appendTo: function(el) {
333
+ return el.parentElement;
334
+ },
335
+ interactive: true,
336
+ interactiveBorder: 10,
337
+ theme: 'quarto',
338
+ placement: 'bottom-start',
339
+ };
340
+ if (contentFn) {
341
+ config.content = contentFn;
342
+ }
343
+ if (onTriggerFn) {
344
+ config.onTrigger = onTriggerFn;
345
+ }
346
+ if (onUntriggerFn) {
347
+ config.onUntrigger = onUntriggerFn;
348
+ }
349
+ window.tippy(el, config);
350
+ }
351
+ const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
352
+ for (var i=0; i<noterefs.length; i++) {
353
+ const ref = noterefs[i];
354
+ tippyHover(ref, function() {
355
+ // use id or data attribute instead here
356
+ let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
357
+ try { href = new URL(href).hash; } catch {}
358
+ const id = href.replace(/^#\/?/, "");
359
+ const note = window.document.getElementById(id);
360
+ if (note) {
361
+ return note.innerHTML;
362
+ } else {
363
+ return "";
364
+ }
365
+ });
366
+ }
367
+ const xrefs = window.document.querySelectorAll('a.quarto-xref');
368
+ const processXRef = (id, note) => {
369
+ // Strip column container classes
370
+ const stripColumnClz = (el) => {
371
+ el.classList.remove("page-full", "page-columns");
372
+ if (el.children) {
373
+ for (const child of el.children) {
374
+ stripColumnClz(child);
375
+ }
376
+ }
377
+ }
378
+ stripColumnClz(note)
379
+ if (id === null || id.startsWith('sec-')) {
380
+ // Special case sections, only their first couple elements
381
+ const container = document.createElement("div");
382
+ if (note.children && note.children.length > 2) {
383
+ container.appendChild(note.children[0].cloneNode(true));
384
+ for (let i = 1; i < note.children.length; i++) {
385
+ const child = note.children[i];
386
+ if (child.tagName === "P" && child.innerText === "") {
387
+ continue;
388
+ } else {
389
+ container.appendChild(child.cloneNode(true));
390
+ break;
391
+ }
392
+ }
393
+ if (window.Quarto?.typesetMath) {
394
+ window.Quarto.typesetMath(container);
395
+ }
396
+ return container.innerHTML
397
+ } else {
398
+ if (window.Quarto?.typesetMath) {
399
+ window.Quarto.typesetMath(note);
400
+ }
401
+ return note.innerHTML;
402
+ }
403
+ } else {
404
+ // Remove any anchor links if they are present
405
+ const anchorLink = note.querySelector('a.anchorjs-link');
406
+ if (anchorLink) {
407
+ anchorLink.remove();
408
+ }
409
+ if (window.Quarto?.typesetMath) {
410
+ window.Quarto.typesetMath(note);
411
+ }
412
+ if (note.classList.contains("callout")) {
413
+ return note.outerHTML;
414
+ } else {
415
+ return note.innerHTML;
416
+ }
417
+ }
418
+ }
419
+ for (var i=0; i<xrefs.length; i++) {
420
+ const xref = xrefs[i];
421
+ tippyHover(xref, undefined, function(instance) {
422
+ instance.disable();
423
+ let url = xref.getAttribute('href');
424
+ let hash = undefined;
425
+ if (url.startsWith('#')) {
426
+ hash = url;
427
+ } else {
428
+ try { hash = new URL(url).hash; } catch {}
429
+ }
430
+ if (hash) {
431
+ const id = hash.replace(/^#\/?/, "");
432
+ const note = window.document.getElementById(id);
433
+ if (note !== null) {
434
+ try {
435
+ const html = processXRef(id, note.cloneNode(true));
436
+ instance.setContent(html);
437
+ } finally {
438
+ instance.enable();
439
+ instance.show();
440
+ }
441
+ } else {
442
+ // See if we can fetch this
443
+ fetch(url.split('#')[0])
444
+ .then(res => res.text())
445
+ .then(html => {
446
+ const parser = new DOMParser();
447
+ const htmlDoc = parser.parseFromString(html, "text/html");
448
+ const note = htmlDoc.getElementById(id);
449
+ if (note !== null) {
450
+ const html = processXRef(id, note);
451
+ instance.setContent(html);
452
+ }
453
+ }).finally(() => {
454
+ instance.enable();
455
+ instance.show();
456
+ });
457
+ }
458
+ } else {
459
+ // See if we can fetch a full url (with no hash to target)
460
+ // This is a special case and we should probably do some content thinning / targeting
461
+ fetch(url)
462
+ .then(res => res.text())
463
+ .then(html => {
464
+ const parser = new DOMParser();
465
+ const htmlDoc = parser.parseFromString(html, "text/html");
466
+ const note = htmlDoc.querySelector('main.content');
467
+ if (note !== null) {
468
+ // This should only happen for chapter cross references
469
+ // (since there is no id in the URL)
470
+ // remove the first header
471
+ if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
472
+ note.children[0].remove();
473
+ }
474
+ const html = processXRef(null, note);
475
+ instance.setContent(html);
476
+ }
477
+ }).finally(() => {
478
+ instance.enable();
479
+ instance.show();
480
+ });
481
+ }
482
+ }, function(instance) {
483
+ });
484
+ }
485
+ let selectedAnnoteEl;
486
+ const selectorForAnnotation = ( cell, annotation) => {
487
+ let cellAttr = 'data-code-cell="' + cell + '"';
488
+ let lineAttr = 'data-code-annotation="' + annotation + '"';
489
+ const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
490
+ return selector;
491
+ }
492
+ const selectCodeLines = (annoteEl) => {
493
+ const doc = window.document;
494
+ const targetCell = annoteEl.getAttribute("data-target-cell");
495
+ const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
496
+ const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
497
+ const lines = annoteSpan.getAttribute("data-code-lines").split(",");
498
+ const lineIds = lines.map((line) => {
499
+ return targetCell + "-" + line;
500
+ })
501
+ let top = null;
502
+ let height = null;
503
+ let parent = null;
504
+ if (lineIds.length > 0) {
505
+ //compute the position of the single el (top and bottom and make a div)
506
+ const el = window.document.getElementById(lineIds[0]);
507
+ top = el.offsetTop;
508
+ height = el.offsetHeight;
509
+ parent = el.parentElement.parentElement;
510
+ if (lineIds.length > 1) {
511
+ const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
512
+ const bottom = lastEl.offsetTop + lastEl.offsetHeight;
513
+ height = bottom - top;
514
+ }
515
+ if (top !== null && height !== null && parent !== null) {
516
+ // cook up a div (if necessary) and position it
517
+ let div = window.document.getElementById("code-annotation-line-highlight");
518
+ if (div === null) {
519
+ div = window.document.createElement("div");
520
+ div.setAttribute("id", "code-annotation-line-highlight");
521
+ div.style.position = 'absolute';
522
+ parent.appendChild(div);
523
+ }
524
+ div.style.top = top - 2 + "px";
525
+ div.style.height = height + 4 + "px";
526
+ div.style.left = 0;
527
+ let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
528
+ if (gutterDiv === null) {
529
+ gutterDiv = window.document.createElement("div");
530
+ gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
531
+ gutterDiv.style.position = 'absolute';
532
+ const codeCell = window.document.getElementById(targetCell);
533
+ const gutter = codeCell.querySelector('.code-annotation-gutter');
534
+ gutter.appendChild(gutterDiv);
535
+ }
536
+ gutterDiv.style.top = top - 2 + "px";
537
+ gutterDiv.style.height = height + 4 + "px";
538
+ }
539
+ selectedAnnoteEl = annoteEl;
540
+ }
541
+ };
542
+ const unselectCodeLines = () => {
543
+ const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
544
+ elementsIds.forEach((elId) => {
545
+ const div = window.document.getElementById(elId);
546
+ if (div) {
547
+ div.remove();
548
+ }
549
+ });
550
+ selectedAnnoteEl = undefined;
551
+ };
552
+ // Handle positioning of the toggle
553
+ window.addEventListener(
554
+ "resize",
555
+ throttle(() => {
556
+ elRect = undefined;
557
+ if (selectedAnnoteEl) {
558
+ selectCodeLines(selectedAnnoteEl);
559
+ }
560
+ }, 10)
561
+ );
562
+ function throttle(fn, ms) {
563
+ let throttle = false;
564
+ let timer;
565
+ return (...args) => {
566
+ if(!throttle) { // first call gets through
567
+ fn.apply(this, args);
568
+ throttle = true;
569
+ } else { // all the others get throttled
570
+ if(timer) clearTimeout(timer); // cancel #2
571
+ timer = setTimeout(() => {
572
+ fn.apply(this, args);
573
+ timer = throttle = false;
574
+ }, ms);
575
+ }
576
+ };
577
+ }
578
+ // Attach click handler to the DT
579
+ const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
580
+ for (const annoteDlNode of annoteDls) {
581
+ annoteDlNode.addEventListener('click', (event) => {
582
+ const clickedEl = event.target;
583
+ if (clickedEl !== selectedAnnoteEl) {
584
+ unselectCodeLines();
585
+ const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
586
+ if (activeEl) {
587
+ activeEl.classList.remove('code-annotation-active');
588
+ }
589
+ selectCodeLines(clickedEl);
590
+ clickedEl.classList.add('code-annotation-active');
591
+ } else {
592
+ // Unselect the line
593
+ unselectCodeLines();
594
+ clickedEl.classList.remove('code-annotation-active');
595
+ }
596
+ });
597
+ }
598
+ const findCites = (el) => {
599
+ const parentEl = el.parentElement;
600
+ if (parentEl) {
601
+ const cites = parentEl.dataset.cites;
602
+ if (cites) {
603
+ return {
604
+ el,
605
+ cites: cites.split(' ')
606
+ };
607
+ } else {
608
+ return findCites(el.parentElement)
609
+ }
610
+ } else {
611
+ return undefined;
612
+ }
613
+ };
614
+ var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
615
+ for (var i=0; i<bibliorefs.length; i++) {
616
+ const ref = bibliorefs[i];
617
+ const citeInfo = findCites(ref);
618
+ if (citeInfo) {
619
+ tippyHover(citeInfo.el, function() {
620
+ var popup = window.document.createElement('div');
621
+ citeInfo.cites.forEach(function(cite) {
622
+ var citeDiv = window.document.createElement('div');
623
+ citeDiv.classList.add('hanging-indent');
624
+ citeDiv.classList.add('csl-entry');
625
+ var biblioDiv = window.document.getElementById('ref-' + cite);
626
+ if (biblioDiv) {
627
+ citeDiv.innerHTML = biblioDiv.innerHTML;
628
+ }
629
+ popup.appendChild(citeDiv);
630
+ });
631
+ return popup.innerHTML;
632
+ });
633
+ }
634
+ }
635
+ });
636
+ </script>
637
+ </div> <!-- /content -->
638
+
639
+
640
+
641
+
642
+ </body></html>
listings.json ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "listing": "/index.html",
4
+ "items": [
5
+ "/posts/index.html",
6
+ "/posts/hello.html"
7
+ ]
8
+ },
9
+ {
10
+ "listing": "/posts/index.html",
11
+ "items": [
12
+ "/posts/hello.html"
13
+ ]
14
+ }
15
+ ]
posts/hello.html ADDED
@@ -0,0 +1,572 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
3
+
4
+ <meta charset="utf-8">
5
+ <meta name="generator" content="quarto-1.8.27">
6
+
7
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
8
+
9
+ <meta name="dcterms.date" content="2026-03-18">
10
+ <meta name="description" content="First Quarto post (template).">
11
+
12
+ <title>Hello – AI Research Redis</title>
13
+ <style>
14
+ code{white-space: pre-wrap;}
15
+ span.smallcaps{font-variant: small-caps;}
16
+ div.columns{display: flex; gap: min(4vw, 1.5em);}
17
+ div.column{flex: auto; overflow-x: auto;}
18
+ div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
19
+ ul.task-list{list-style: none;}
20
+ ul.task-list li input[type="checkbox"] {
21
+ width: 0.8em;
22
+ margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
23
+ vertical-align: middle;
24
+ }
25
+ </style>
26
+
27
+
28
+ <script src="../site_libs/quarto-nav/quarto-nav.js"></script>
29
+ <script src="../site_libs/quarto-nav/headroom.min.js"></script>
30
+ <script src="../site_libs/clipboard/clipboard.min.js"></script>
31
+ <script src="../site_libs/quarto-search/autocomplete.umd.js"></script>
32
+ <script src="../site_libs/quarto-search/fuse.min.js"></script>
33
+ <script src="../site_libs/quarto-search/quarto-search.js"></script>
34
+ <meta name="quarto:offset" content="../">
35
+ <script src="../site_libs/quarto-html/quarto.js" type="module"></script>
36
+ <script src="../site_libs/quarto-html/tabsets/tabsets.js" type="module"></script>
37
+ <script src="../site_libs/quarto-html/axe/axe-check.js" type="module"></script>
38
+ <script src="../site_libs/quarto-html/popper.min.js"></script>
39
+ <script src="../site_libs/quarto-html/tippy.umd.min.js"></script>
40
+ <script src="../site_libs/quarto-html/anchor.min.js"></script>
41
+ <link href="../site_libs/quarto-html/tippy.css" rel="stylesheet">
42
+ <link href="../site_libs/quarto-html/quarto-syntax-highlighting-ed96de9b727972fe78a7b5d16c58bf87.css" rel="stylesheet" id="quarto-text-highlighting-styles">
43
+ <script src="../site_libs/bootstrap/bootstrap.min.js"></script>
44
+ <link href="../site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
45
+ <link href="../site_libs/bootstrap/bootstrap-a8976c3e89df70b272bdfba3d2fda974.min.css" rel="stylesheet" append-hash="true" id="quarto-bootstrap" data-mode="light">
46
+ <script id="quarto-search-options" type="application/json">{
47
+ "location": "navbar",
48
+ "copy-button": false,
49
+ "collapse-after": 3,
50
+ "panel-placement": "end",
51
+ "type": "overlay",
52
+ "limit": 50,
53
+ "keyboard-shortcut": [
54
+ "f",
55
+ "/",
56
+ "s"
57
+ ],
58
+ "show-item-context": false,
59
+ "language": {
60
+ "search-no-results-text": "No results",
61
+ "search-matching-documents-text": "matching documents",
62
+ "search-copy-link-title": "Copy link to search",
63
+ "search-hide-matches-text": "Hide additional matches",
64
+ "search-more-match-text": "more match in this document",
65
+ "search-more-matches-text": "more matches in this document",
66
+ "search-clear-button-title": "Clear",
67
+ "search-text-placeholder": "",
68
+ "search-detached-cancel-button-title": "Cancel",
69
+ "search-submit-button-title": "Submit",
70
+ "search-label": "Search"
71
+ }
72
+ }</script>
73
+
74
+
75
+ </head>
76
+
77
+ <body class="nav-fixed quarto-light">
78
+
79
+ <div id="quarto-search-results"></div>
80
+ <header id="quarto-header" class="headroom fixed-top">
81
+ <nav class="navbar navbar-expand-lg " data-bs-theme="dark">
82
+ <div class="navbar-container container-fluid">
83
+ <div class="navbar-brand-container mx-auto">
84
+ <a class="navbar-brand" href="../index.html">
85
+ <span class="navbar-title">AI Research Redis</span>
86
+ </a>
87
+ </div>
88
+ <div id="quarto-search" class="" title="Search"></div>
89
+ <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" role="menu" aria-expanded="false" aria-label="Toggle navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
90
+ <span class="navbar-toggler-icon"></span>
91
+ </button>
92
+ <div class="collapse navbar-collapse" id="navbarCollapse">
93
+ <ul class="navbar-nav navbar-nav-scroll me-auto">
94
+ <li class="nav-item">
95
+ <a class="nav-link" href="../index.html">
96
+ <span class="menu-text">Home</span></a>
97
+ </li>
98
+ <li class="nav-item">
99
+ <a class="nav-link" href="../posts/index.html">
100
+ <span class="menu-text">Posts</span></a>
101
+ </li>
102
+ </ul>
103
+ </div> <!-- /navcollapse -->
104
+ <div class="quarto-navbar-tools">
105
+ </div>
106
+ </div> <!-- /container-fluid -->
107
+ </nav>
108
+ </header>
109
+ <!-- content -->
110
+ <div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
111
+ <!-- sidebar -->
112
+ <!-- margin-sidebar -->
113
+ <div id="quarto-margin-sidebar" class="sidebar margin-sidebar">
114
+ <nav id="TOC" role="doc-toc" class="toc-active">
115
+ <h2 id="toc-title">On this page</h2>
116
+
117
+ <ul>
118
+ <li><a href="#links" id="toc-links" class="nav-link active" data-scroll-target="#links">Links</a></li>
119
+ </ul>
120
+ </nav>
121
+ </div>
122
+ <!-- main -->
123
+ <main class="content" id="quarto-document-content">
124
+
125
+ <header id="title-block-header" class="quarto-title-block default">
126
+ <div class="quarto-title">
127
+ <h1 class="title">Hello</h1>
128
+ </div>
129
+
130
+ <div>
131
+ <div class="description">
132
+ First Quarto post (template).
133
+ </div>
134
+ </div>
135
+
136
+
137
+ <div class="quarto-title-meta">
138
+
139
+
140
+ <div>
141
+ <div class="quarto-title-meta-heading">Published</div>
142
+ <div class="quarto-title-meta-contents">
143
+ <p class="date">March 18, 2026</p>
144
+ </div>
145
+ </div>
146
+
147
+
148
+ </div>
149
+
150
+
151
+
152
+ </header>
153
+
154
+
155
+ <p>Write here.</p>
156
+ <section id="links" class="level2">
157
+ <h2 class="anchored" data-anchor-id="links">Links</h2>
158
+ <ul>
159
+ <li>Space HTML: this page</li>
160
+ <li>Medium: fill <code>medium_url</code> after publishing</li>
161
+ </ul>
162
+
163
+
164
+ </section>
165
+
166
+ </main> <!-- /main -->
167
+ <script id="quarto-html-after-body" type="application/javascript">
168
+ window.document.addEventListener("DOMContentLoaded", function (event) {
169
+ const icon = "";
170
+ const anchorJS = new window.AnchorJS();
171
+ anchorJS.options = {
172
+ placement: 'right',
173
+ icon: icon
174
+ };
175
+ anchorJS.add('.anchored');
176
+ const isCodeAnnotation = (el) => {
177
+ for (const clz of el.classList) {
178
+ if (clz.startsWith('code-annotation-')) {
179
+ return true;
180
+ }
181
+ }
182
+ return false;
183
+ }
184
+ const onCopySuccess = function(e) {
185
+ // button target
186
+ const button = e.trigger;
187
+ // don't keep focus
188
+ button.blur();
189
+ // flash "checked"
190
+ button.classList.add('code-copy-button-checked');
191
+ var currentTitle = button.getAttribute("title");
192
+ button.setAttribute("title", "Copied!");
193
+ let tooltip;
194
+ if (window.bootstrap) {
195
+ button.setAttribute("data-bs-toggle", "tooltip");
196
+ button.setAttribute("data-bs-placement", "left");
197
+ button.setAttribute("data-bs-title", "Copied!");
198
+ tooltip = new bootstrap.Tooltip(button,
199
+ { trigger: "manual",
200
+ customClass: "code-copy-button-tooltip",
201
+ offset: [0, -8]});
202
+ tooltip.show();
203
+ }
204
+ setTimeout(function() {
205
+ if (tooltip) {
206
+ tooltip.hide();
207
+ button.removeAttribute("data-bs-title");
208
+ button.removeAttribute("data-bs-toggle");
209
+ button.removeAttribute("data-bs-placement");
210
+ }
211
+ button.setAttribute("title", currentTitle);
212
+ button.classList.remove('code-copy-button-checked');
213
+ }, 1000);
214
+ // clear code selection
215
+ e.clearSelection();
216
+ }
217
+ const getTextToCopy = function(trigger) {
218
+ const outerScaffold = trigger.parentElement.cloneNode(true);
219
+ const codeEl = outerScaffold.querySelector('code');
220
+ for (const childEl of codeEl.children) {
221
+ if (isCodeAnnotation(childEl)) {
222
+ childEl.remove();
223
+ }
224
+ }
225
+ return codeEl.innerText;
226
+ }
227
+ const clipboard = new window.ClipboardJS('.code-copy-button:not([data-in-quarto-modal])', {
228
+ text: getTextToCopy
229
+ });
230
+ clipboard.on('success', onCopySuccess);
231
+ if (window.document.getElementById('quarto-embedded-source-code-modal')) {
232
+ const clipboardModal = new window.ClipboardJS('.code-copy-button[data-in-quarto-modal]', {
233
+ text: getTextToCopy,
234
+ container: window.document.getElementById('quarto-embedded-source-code-modal')
235
+ });
236
+ clipboardModal.on('success', onCopySuccess);
237
+ }
238
+ var localhostRegex = new RegExp(/^(?:http|https):\/\/localhost\:?[0-9]*\//);
239
+ var mailtoRegex = new RegExp(/^mailto:/);
240
+ var filterRegex = new RegExp("https:\/\/srijithrajamohan-ai-research-redis\.hf\.space");
241
+ var isInternal = (href) => {
242
+ return filterRegex.test(href) || localhostRegex.test(href) || mailtoRegex.test(href);
243
+ }
244
+ // Inspect non-navigation links and adorn them if external
245
+ var links = window.document.querySelectorAll('a[href]:not(.nav-link):not(.navbar-brand):not(.toc-action):not(.sidebar-link):not(.sidebar-item-toggle):not(.pagination-link):not(.no-external):not([aria-hidden]):not(.dropdown-item):not(.quarto-navigation-tool):not(.about-link)');
246
+ for (var i=0; i<links.length; i++) {
247
+ const link = links[i];
248
+ if (!isInternal(link.href)) {
249
+ // undo the damage that might have been done by quarto-nav.js in the case of
250
+ // links that we want to consider external
251
+ if (link.dataset.originalHref !== undefined) {
252
+ link.href = link.dataset.originalHref;
253
+ }
254
+ }
255
+ }
256
+ function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
257
+ const config = {
258
+ allowHTML: true,
259
+ maxWidth: 500,
260
+ delay: 100,
261
+ arrow: false,
262
+ appendTo: function(el) {
263
+ return el.parentElement;
264
+ },
265
+ interactive: true,
266
+ interactiveBorder: 10,
267
+ theme: 'quarto',
268
+ placement: 'bottom-start',
269
+ };
270
+ if (contentFn) {
271
+ config.content = contentFn;
272
+ }
273
+ if (onTriggerFn) {
274
+ config.onTrigger = onTriggerFn;
275
+ }
276
+ if (onUntriggerFn) {
277
+ config.onUntrigger = onUntriggerFn;
278
+ }
279
+ window.tippy(el, config);
280
+ }
281
+ const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
282
+ for (var i=0; i<noterefs.length; i++) {
283
+ const ref = noterefs[i];
284
+ tippyHover(ref, function() {
285
+ // use id or data attribute instead here
286
+ let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
287
+ try { href = new URL(href).hash; } catch {}
288
+ const id = href.replace(/^#\/?/, "");
289
+ const note = window.document.getElementById(id);
290
+ if (note) {
291
+ return note.innerHTML;
292
+ } else {
293
+ return "";
294
+ }
295
+ });
296
+ }
297
+ const xrefs = window.document.querySelectorAll('a.quarto-xref');
298
+ const processXRef = (id, note) => {
299
+ // Strip column container classes
300
+ const stripColumnClz = (el) => {
301
+ el.classList.remove("page-full", "page-columns");
302
+ if (el.children) {
303
+ for (const child of el.children) {
304
+ stripColumnClz(child);
305
+ }
306
+ }
307
+ }
308
+ stripColumnClz(note)
309
+ if (id === null || id.startsWith('sec-')) {
310
+ // Special case sections, only their first couple elements
311
+ const container = document.createElement("div");
312
+ if (note.children && note.children.length > 2) {
313
+ container.appendChild(note.children[0].cloneNode(true));
314
+ for (let i = 1; i < note.children.length; i++) {
315
+ const child = note.children[i];
316
+ if (child.tagName === "P" && child.innerText === "") {
317
+ continue;
318
+ } else {
319
+ container.appendChild(child.cloneNode(true));
320
+ break;
321
+ }
322
+ }
323
+ if (window.Quarto?.typesetMath) {
324
+ window.Quarto.typesetMath(container);
325
+ }
326
+ return container.innerHTML
327
+ } else {
328
+ if (window.Quarto?.typesetMath) {
329
+ window.Quarto.typesetMath(note);
330
+ }
331
+ return note.innerHTML;
332
+ }
333
+ } else {
334
+ // Remove any anchor links if they are present
335
+ const anchorLink = note.querySelector('a.anchorjs-link');
336
+ if (anchorLink) {
337
+ anchorLink.remove();
338
+ }
339
+ if (window.Quarto?.typesetMath) {
340
+ window.Quarto.typesetMath(note);
341
+ }
342
+ if (note.classList.contains("callout")) {
343
+ return note.outerHTML;
344
+ } else {
345
+ return note.innerHTML;
346
+ }
347
+ }
348
+ }
349
+ for (var i=0; i<xrefs.length; i++) {
350
+ const xref = xrefs[i];
351
+ tippyHover(xref, undefined, function(instance) {
352
+ instance.disable();
353
+ let url = xref.getAttribute('href');
354
+ let hash = undefined;
355
+ if (url.startsWith('#')) {
356
+ hash = url;
357
+ } else {
358
+ try { hash = new URL(url).hash; } catch {}
359
+ }
360
+ if (hash) {
361
+ const id = hash.replace(/^#\/?/, "");
362
+ const note = window.document.getElementById(id);
363
+ if (note !== null) {
364
+ try {
365
+ const html = processXRef(id, note.cloneNode(true));
366
+ instance.setContent(html);
367
+ } finally {
368
+ instance.enable();
369
+ instance.show();
370
+ }
371
+ } else {
372
+ // See if we can fetch this
373
+ fetch(url.split('#')[0])
374
+ .then(res => res.text())
375
+ .then(html => {
376
+ const parser = new DOMParser();
377
+ const htmlDoc = parser.parseFromString(html, "text/html");
378
+ const note = htmlDoc.getElementById(id);
379
+ if (note !== null) {
380
+ const html = processXRef(id, note);
381
+ instance.setContent(html);
382
+ }
383
+ }).finally(() => {
384
+ instance.enable();
385
+ instance.show();
386
+ });
387
+ }
388
+ } else {
389
+ // See if we can fetch a full url (with no hash to target)
390
+ // This is a special case and we should probably do some content thinning / targeting
391
+ fetch(url)
392
+ .then(res => res.text())
393
+ .then(html => {
394
+ const parser = new DOMParser();
395
+ const htmlDoc = parser.parseFromString(html, "text/html");
396
+ const note = htmlDoc.querySelector('main.content');
397
+ if (note !== null) {
398
+ // This should only happen for chapter cross references
399
+ // (since there is no id in the URL)
400
+ // remove the first header
401
+ if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
402
+ note.children[0].remove();
403
+ }
404
+ const html = processXRef(null, note);
405
+ instance.setContent(html);
406
+ }
407
+ }).finally(() => {
408
+ instance.enable();
409
+ instance.show();
410
+ });
411
+ }
412
+ }, function(instance) {
413
+ });
414
+ }
415
+ let selectedAnnoteEl;
416
+ const selectorForAnnotation = ( cell, annotation) => {
417
+ let cellAttr = 'data-code-cell="' + cell + '"';
418
+ let lineAttr = 'data-code-annotation="' + annotation + '"';
419
+ const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
420
+ return selector;
421
+ }
422
+ const selectCodeLines = (annoteEl) => {
423
+ const doc = window.document;
424
+ const targetCell = annoteEl.getAttribute("data-target-cell");
425
+ const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
426
+ const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
427
+ const lines = annoteSpan.getAttribute("data-code-lines").split(",");
428
+ const lineIds = lines.map((line) => {
429
+ return targetCell + "-" + line;
430
+ })
431
+ let top = null;
432
+ let height = null;
433
+ let parent = null;
434
+ if (lineIds.length > 0) {
435
+ //compute the position of the single el (top and bottom and make a div)
436
+ const el = window.document.getElementById(lineIds[0]);
437
+ top = el.offsetTop;
438
+ height = el.offsetHeight;
439
+ parent = el.parentElement.parentElement;
440
+ if (lineIds.length > 1) {
441
+ const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
442
+ const bottom = lastEl.offsetTop + lastEl.offsetHeight;
443
+ height = bottom - top;
444
+ }
445
+ if (top !== null && height !== null && parent !== null) {
446
+ // cook up a div (if necessary) and position it
447
+ let div = window.document.getElementById("code-annotation-line-highlight");
448
+ if (div === null) {
449
+ div = window.document.createElement("div");
450
+ div.setAttribute("id", "code-annotation-line-highlight");
451
+ div.style.position = 'absolute';
452
+ parent.appendChild(div);
453
+ }
454
+ div.style.top = top - 2 + "px";
455
+ div.style.height = height + 4 + "px";
456
+ div.style.left = 0;
457
+ let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
458
+ if (gutterDiv === null) {
459
+ gutterDiv = window.document.createElement("div");
460
+ gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
461
+ gutterDiv.style.position = 'absolute';
462
+ const codeCell = window.document.getElementById(targetCell);
463
+ const gutter = codeCell.querySelector('.code-annotation-gutter');
464
+ gutter.appendChild(gutterDiv);
465
+ }
466
+ gutterDiv.style.top = top - 2 + "px";
467
+ gutterDiv.style.height = height + 4 + "px";
468
+ }
469
+ selectedAnnoteEl = annoteEl;
470
+ }
471
+ };
472
+ const unselectCodeLines = () => {
473
+ const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
474
+ elementsIds.forEach((elId) => {
475
+ const div = window.document.getElementById(elId);
476
+ if (div) {
477
+ div.remove();
478
+ }
479
+ });
480
+ selectedAnnoteEl = undefined;
481
+ };
482
+ // Handle positioning of the toggle
483
+ window.addEventListener(
484
+ "resize",
485
+ throttle(() => {
486
+ elRect = undefined;
487
+ if (selectedAnnoteEl) {
488
+ selectCodeLines(selectedAnnoteEl);
489
+ }
490
+ }, 10)
491
+ );
492
+ function throttle(fn, ms) {
493
+ let throttle = false;
494
+ let timer;
495
+ return (...args) => {
496
+ if(!throttle) { // first call gets through
497
+ fn.apply(this, args);
498
+ throttle = true;
499
+ } else { // all the others get throttled
500
+ if(timer) clearTimeout(timer); // cancel #2
501
+ timer = setTimeout(() => {
502
+ fn.apply(this, args);
503
+ timer = throttle = false;
504
+ }, ms);
505
+ }
506
+ };
507
+ }
508
+ // Attach click handler to the DT
509
+ const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
510
+ for (const annoteDlNode of annoteDls) {
511
+ annoteDlNode.addEventListener('click', (event) => {
512
+ const clickedEl = event.target;
513
+ if (clickedEl !== selectedAnnoteEl) {
514
+ unselectCodeLines();
515
+ const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
516
+ if (activeEl) {
517
+ activeEl.classList.remove('code-annotation-active');
518
+ }
519
+ selectCodeLines(clickedEl);
520
+ clickedEl.classList.add('code-annotation-active');
521
+ } else {
522
+ // Unselect the line
523
+ unselectCodeLines();
524
+ clickedEl.classList.remove('code-annotation-active');
525
+ }
526
+ });
527
+ }
528
+ const findCites = (el) => {
529
+ const parentEl = el.parentElement;
530
+ if (parentEl) {
531
+ const cites = parentEl.dataset.cites;
532
+ if (cites) {
533
+ return {
534
+ el,
535
+ cites: cites.split(' ')
536
+ };
537
+ } else {
538
+ return findCites(el.parentElement)
539
+ }
540
+ } else {
541
+ return undefined;
542
+ }
543
+ };
544
+ var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
545
+ for (var i=0; i<bibliorefs.length; i++) {
546
+ const ref = bibliorefs[i];
547
+ const citeInfo = findCites(ref);
548
+ if (citeInfo) {
549
+ tippyHover(citeInfo.el, function() {
550
+ var popup = window.document.createElement('div');
551
+ citeInfo.cites.forEach(function(cite) {
552
+ var citeDiv = window.document.createElement('div');
553
+ citeDiv.classList.add('hanging-indent');
554
+ citeDiv.classList.add('csl-entry');
555
+ var biblioDiv = window.document.getElementById('ref-' + cite);
556
+ if (biblioDiv) {
557
+ citeDiv.innerHTML = biblioDiv.innerHTML;
558
+ }
559
+ popup.appendChild(citeDiv);
560
+ });
561
+ return popup.innerHTML;
562
+ });
563
+ }
564
+ }
565
+ });
566
+ </script>
567
+ </div> <!-- /content -->
568
+
569
+
570
+
571
+
572
+ </body></html>
posts/index.html ADDED
@@ -0,0 +1,627 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
3
+
4
+ <meta charset="utf-8">
5
+ <meta name="generator" content="quarto-1.8.27">
6
+
7
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
8
+
9
+
10
+ <title>Posts – AI Research Redis</title>
11
+ <style>
12
+ code{white-space: pre-wrap;}
13
+ span.smallcaps{font-variant: small-caps;}
14
+ div.columns{display: flex; gap: min(4vw, 1.5em);}
15
+ div.column{flex: auto; overflow-x: auto;}
16
+ div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
17
+ ul.task-list{list-style: none;}
18
+ ul.task-list li input[type="checkbox"] {
19
+ width: 0.8em;
20
+ margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
21
+ vertical-align: middle;
22
+ }
23
+ </style>
24
+
25
+
26
+ <script src="../site_libs/quarto-nav/quarto-nav.js"></script>
27
+ <script src="../site_libs/quarto-nav/headroom.min.js"></script>
28
+ <script src="../site_libs/clipboard/clipboard.min.js"></script>
29
+ <script src="../site_libs/quarto-search/autocomplete.umd.js"></script>
30
+ <script src="../site_libs/quarto-search/fuse.min.js"></script>
31
+ <script src="../site_libs/quarto-search/quarto-search.js"></script>
32
+ <meta name="quarto:offset" content="../">
33
+ <script src="../site_libs/quarto-listing/list.min.js"></script>
34
+ <script src="../site_libs/quarto-listing/quarto-listing.js"></script>
35
+ <script src="../site_libs/quarto-html/quarto.js" type="module"></script>
36
+ <script src="../site_libs/quarto-html/tabsets/tabsets.js" type="module"></script>
37
+ <script src="../site_libs/quarto-html/axe/axe-check.js" type="module"></script>
38
+ <script src="../site_libs/quarto-html/popper.min.js"></script>
39
+ <script src="../site_libs/quarto-html/tippy.umd.min.js"></script>
40
+ <script src="../site_libs/quarto-html/anchor.min.js"></script>
41
+ <link href="../site_libs/quarto-html/tippy.css" rel="stylesheet">
42
+ <link href="../site_libs/quarto-html/quarto-syntax-highlighting-ed96de9b727972fe78a7b5d16c58bf87.css" rel="stylesheet" id="quarto-text-highlighting-styles">
43
+ <script src="../site_libs/bootstrap/bootstrap.min.js"></script>
44
+ <link href="../site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
45
+ <link href="../site_libs/bootstrap/bootstrap-a8976c3e89df70b272bdfba3d2fda974.min.css" rel="stylesheet" append-hash="true" id="quarto-bootstrap" data-mode="light">
46
+ <script id="quarto-search-options" type="application/json">{
47
+ "location": "navbar",
48
+ "copy-button": false,
49
+ "collapse-after": 3,
50
+ "panel-placement": "end",
51
+ "type": "overlay",
52
+ "limit": 50,
53
+ "keyboard-shortcut": [
54
+ "f",
55
+ "/",
56
+ "s"
57
+ ],
58
+ "show-item-context": false,
59
+ "language": {
60
+ "search-no-results-text": "No results",
61
+ "search-matching-documents-text": "matching documents",
62
+ "search-copy-link-title": "Copy link to search",
63
+ "search-hide-matches-text": "Hide additional matches",
64
+ "search-more-match-text": "more match in this document",
65
+ "search-more-matches-text": "more matches in this document",
66
+ "search-clear-button-title": "Clear",
67
+ "search-text-placeholder": "",
68
+ "search-detached-cancel-button-title": "Cancel",
69
+ "search-submit-button-title": "Submit",
70
+ "search-label": "Search"
71
+ }
72
+ }</script>
73
+ <script>
74
+
75
+ window.document.addEventListener("DOMContentLoaded", function (_event) {
76
+ const listingTargetEl = window.document.querySelector('#listing-listing .list');
77
+ if (!listingTargetEl) {
78
+ // No listing discovered, do not attach.
79
+ return;
80
+ }
81
+
82
+ const options = {
83
+ valueNames: ['listing-title','listing-date','listing-description',{ data: ['index'] },{ data: ['categories'] },{ data: ['listing-date-sort'] },{ data: ['listing-file-modified-sort'] }],
84
+
85
+ searchColumns: ["listing-date","listing-title","listing-author","listing-image","listing-description"],
86
+ };
87
+
88
+ window['quarto-listings'] = window['quarto-listings'] || {};
89
+ window['quarto-listings']['listing-listing'] = new List('listing-listing', options);
90
+
91
+ if (window['quarto-listing-loaded']) {
92
+ window['quarto-listing-loaded']();
93
+ }
94
+ });
95
+
96
+ window.addEventListener('hashchange',() => {
97
+ if (window['quarto-listing-loaded']) {
98
+ window['quarto-listing-loaded']();
99
+ }
100
+ })
101
+ </script>
102
+
103
+ <script src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?features=es6"></script>
104
+ <script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml-full.js" type="text/javascript"></script>
105
+
106
+ <script type="text/javascript">
107
+ const typesetMath = (el) => {
108
+ if (window.MathJax) {
109
+ // MathJax Typeset
110
+ window.MathJax.typeset([el]);
111
+ } else if (window.katex) {
112
+ // KaTeX Render
113
+ var mathElements = el.getElementsByClassName("math");
114
+ var macros = [];
115
+ for (var i = 0; i < mathElements.length; i++) {
116
+ var texText = mathElements[i].firstChild;
117
+ if (mathElements[i].tagName == "SPAN" && texText && texText.data) {
118
+ window.katex.render(texText.data, mathElements[i], {
119
+ displayMode: mathElements[i].classList.contains('display'),
120
+ throwOnError: false,
121
+ macros: macros,
122
+ fleqn: false
123
+ });
124
+ }
125
+ }
126
+ }
127
+ }
128
+ window.Quarto = {
129
+ typesetMath
130
+ };
131
+ </script>
132
+
133
+ </head>
134
+
135
+ <body class="nav-fixed quarto-light">
136
+
137
+ <div id="quarto-search-results"></div>
138
+ <header id="quarto-header" class="headroom fixed-top">
139
+ <nav class="navbar navbar-expand-lg " data-bs-theme="dark">
140
+ <div class="navbar-container container-fluid">
141
+ <div class="navbar-brand-container mx-auto">
142
+ <a class="navbar-brand" href="../index.html">
143
+ <span class="navbar-title">AI Research Redis</span>
144
+ </a>
145
+ </div>
146
+ <div id="quarto-search" class="" title="Search"></div>
147
+ <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" role="menu" aria-expanded="false" aria-label="Toggle navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
148
+ <span class="navbar-toggler-icon"></span>
149
+ </button>
150
+ <div class="collapse navbar-collapse" id="navbarCollapse">
151
+ <ul class="navbar-nav navbar-nav-scroll me-auto">
152
+ <li class="nav-item">
153
+ <a class="nav-link" href="../index.html">
154
+ <span class="menu-text">Home</span></a>
155
+ </li>
156
+ <li class="nav-item">
157
+ <a class="nav-link active" href="../posts/index.html" aria-current="page">
158
+ <span class="menu-text">Posts</span></a>
159
+ </li>
160
+ </ul>
161
+ </div> <!-- /navcollapse -->
162
+ <div class="quarto-navbar-tools">
163
+ </div>
164
+ </div> <!-- /container-fluid -->
165
+ </nav>
166
+ </header>
167
+ <!-- content -->
168
+ <div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
169
+ <!-- sidebar -->
170
+ <!-- margin-sidebar -->
171
+ <div id="quarto-margin-sidebar" class="sidebar margin-sidebar zindex-bottom">
172
+
173
+ </div>
174
+ <!-- main -->
175
+ <main class="content" id="quarto-document-content">
176
+
177
+ <header id="title-block-header" class="quarto-title-block default">
178
+ <div class="quarto-title">
179
+ <h1 class="title">Posts</h1>
180
+ </div>
181
+
182
+
183
+
184
+ <div class="quarto-title-meta">
185
+
186
+
187
+
188
+
189
+ </div>
190
+
191
+
192
+
193
+ </header>
194
+
195
+
196
+
197
+
198
+
199
+
200
+ <div class="quarto-listing quarto-listing-container-default" id="listing-listing">
201
+ <div class="list quarto-listing-default">
202
+ <div class="quarto-post image-right" data-index="0" data-listing-date-sort="1773806400000" data-listing-file-modified-sort="1773873218472" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="1" data-listing-word-count-sort="11">
203
+ <div class="body">
204
+ <h3 class="no-anchor listing-title">
205
+ <a href="../posts/hello.html" class="no-external">Hello</a>
206
+ </h3>
207
+ <div class="delink listing-description"><a href="../posts/hello.html" class="no-external">
208
+ <p>First Quarto post (template).</p>
209
+ </a></div>
210
+ </div>
211
+ <div class="metadata">
212
+ <a href="../posts/hello.html" class="no-external">
213
+ <div class="listing-date">
214
+ Mar 18, 2026
215
+ </div>
216
+ </a>
217
+ </div>
218
+ </div>
219
+ </div>
220
+ <div class="listing-no-matching d-none">No matching items</div>
221
+ </div></main> <!-- /main -->
222
+ <script id="quarto-html-after-body" type="application/javascript">
223
+ window.document.addEventListener("DOMContentLoaded", function (event) {
224
+ const icon = "";
225
+ const anchorJS = new window.AnchorJS();
226
+ anchorJS.options = {
227
+ placement: 'right',
228
+ icon: icon
229
+ };
230
+ anchorJS.add('.anchored');
231
+ const isCodeAnnotation = (el) => {
232
+ for (const clz of el.classList) {
233
+ if (clz.startsWith('code-annotation-')) {
234
+ return true;
235
+ }
236
+ }
237
+ return false;
238
+ }
239
+ const onCopySuccess = function(e) {
240
+ // button target
241
+ const button = e.trigger;
242
+ // don't keep focus
243
+ button.blur();
244
+ // flash "checked"
245
+ button.classList.add('code-copy-button-checked');
246
+ var currentTitle = button.getAttribute("title");
247
+ button.setAttribute("title", "Copied!");
248
+ let tooltip;
249
+ if (window.bootstrap) {
250
+ button.setAttribute("data-bs-toggle", "tooltip");
251
+ button.setAttribute("data-bs-placement", "left");
252
+ button.setAttribute("data-bs-title", "Copied!");
253
+ tooltip = new bootstrap.Tooltip(button,
254
+ { trigger: "manual",
255
+ customClass: "code-copy-button-tooltip",
256
+ offset: [0, -8]});
257
+ tooltip.show();
258
+ }
259
+ setTimeout(function() {
260
+ if (tooltip) {
261
+ tooltip.hide();
262
+ button.removeAttribute("data-bs-title");
263
+ button.removeAttribute("data-bs-toggle");
264
+ button.removeAttribute("data-bs-placement");
265
+ }
266
+ button.setAttribute("title", currentTitle);
267
+ button.classList.remove('code-copy-button-checked');
268
+ }, 1000);
269
+ // clear code selection
270
+ e.clearSelection();
271
+ }
272
+ const getTextToCopy = function(trigger) {
273
+ const outerScaffold = trigger.parentElement.cloneNode(true);
274
+ const codeEl = outerScaffold.querySelector('code');
275
+ for (const childEl of codeEl.children) {
276
+ if (isCodeAnnotation(childEl)) {
277
+ childEl.remove();
278
+ }
279
+ }
280
+ return codeEl.innerText;
281
+ }
282
+ const clipboard = new window.ClipboardJS('.code-copy-button:not([data-in-quarto-modal])', {
283
+ text: getTextToCopy
284
+ });
285
+ clipboard.on('success', onCopySuccess);
286
+ if (window.document.getElementById('quarto-embedded-source-code-modal')) {
287
+ const clipboardModal = new window.ClipboardJS('.code-copy-button[data-in-quarto-modal]', {
288
+ text: getTextToCopy,
289
+ container: window.document.getElementById('quarto-embedded-source-code-modal')
290
+ });
291
+ clipboardModal.on('success', onCopySuccess);
292
+ }
293
+ var localhostRegex = new RegExp(/^(?:http|https):\/\/localhost\:?[0-9]*\//);
294
+ var mailtoRegex = new RegExp(/^mailto:/);
295
+ var filterRegex = new RegExp("https:\/\/srijithrajamohan-ai-research-redis\.hf\.space");
296
+ var isInternal = (href) => {
297
+ return filterRegex.test(href) || localhostRegex.test(href) || mailtoRegex.test(href);
298
+ }
299
+ // Inspect non-navigation links and adorn them if external
300
+ var links = window.document.querySelectorAll('a[href]:not(.nav-link):not(.navbar-brand):not(.toc-action):not(.sidebar-link):not(.sidebar-item-toggle):not(.pagination-link):not(.no-external):not([aria-hidden]):not(.dropdown-item):not(.quarto-navigation-tool):not(.about-link)');
301
+ for (var i=0; i<links.length; i++) {
302
+ const link = links[i];
303
+ if (!isInternal(link.href)) {
304
+ // undo the damage that might have been done by quarto-nav.js in the case of
305
+ // links that we want to consider external
306
+ if (link.dataset.originalHref !== undefined) {
307
+ link.href = link.dataset.originalHref;
308
+ }
309
+ }
310
+ }
311
+ function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
312
+ const config = {
313
+ allowHTML: true,
314
+ maxWidth: 500,
315
+ delay: 100,
316
+ arrow: false,
317
+ appendTo: function(el) {
318
+ return el.parentElement;
319
+ },
320
+ interactive: true,
321
+ interactiveBorder: 10,
322
+ theme: 'quarto',
323
+ placement: 'bottom-start',
324
+ };
325
+ if (contentFn) {
326
+ config.content = contentFn;
327
+ }
328
+ if (onTriggerFn) {
329
+ config.onTrigger = onTriggerFn;
330
+ }
331
+ if (onUntriggerFn) {
332
+ config.onUntrigger = onUntriggerFn;
333
+ }
334
+ window.tippy(el, config);
335
+ }
336
+ const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
337
+ for (var i=0; i<noterefs.length; i++) {
338
+ const ref = noterefs[i];
339
+ tippyHover(ref, function() {
340
+ // use id or data attribute instead here
341
+ let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
342
+ try { href = new URL(href).hash; } catch {}
343
+ const id = href.replace(/^#\/?/, "");
344
+ const note = window.document.getElementById(id);
345
+ if (note) {
346
+ return note.innerHTML;
347
+ } else {
348
+ return "";
349
+ }
350
+ });
351
+ }
352
+ const xrefs = window.document.querySelectorAll('a.quarto-xref');
353
+ const processXRef = (id, note) => {
354
+ // Strip column container classes
355
+ const stripColumnClz = (el) => {
356
+ el.classList.remove("page-full", "page-columns");
357
+ if (el.children) {
358
+ for (const child of el.children) {
359
+ stripColumnClz(child);
360
+ }
361
+ }
362
+ }
363
+ stripColumnClz(note)
364
+ if (id === null || id.startsWith('sec-')) {
365
+ // Special case sections, only their first couple elements
366
+ const container = document.createElement("div");
367
+ if (note.children && note.children.length > 2) {
368
+ container.appendChild(note.children[0].cloneNode(true));
369
+ for (let i = 1; i < note.children.length; i++) {
370
+ const child = note.children[i];
371
+ if (child.tagName === "P" && child.innerText === "") {
372
+ continue;
373
+ } else {
374
+ container.appendChild(child.cloneNode(true));
375
+ break;
376
+ }
377
+ }
378
+ if (window.Quarto?.typesetMath) {
379
+ window.Quarto.typesetMath(container);
380
+ }
381
+ return container.innerHTML
382
+ } else {
383
+ if (window.Quarto?.typesetMath) {
384
+ window.Quarto.typesetMath(note);
385
+ }
386
+ return note.innerHTML;
387
+ }
388
+ } else {
389
+ // Remove any anchor links if they are present
390
+ const anchorLink = note.querySelector('a.anchorjs-link');
391
+ if (anchorLink) {
392
+ anchorLink.remove();
393
+ }
394
+ if (window.Quarto?.typesetMath) {
395
+ window.Quarto.typesetMath(note);
396
+ }
397
+ if (note.classList.contains("callout")) {
398
+ return note.outerHTML;
399
+ } else {
400
+ return note.innerHTML;
401
+ }
402
+ }
403
+ }
404
+ for (var i=0; i<xrefs.length; i++) {
405
+ const xref = xrefs[i];
406
+ tippyHover(xref, undefined, function(instance) {
407
+ instance.disable();
408
+ let url = xref.getAttribute('href');
409
+ let hash = undefined;
410
+ if (url.startsWith('#')) {
411
+ hash = url;
412
+ } else {
413
+ try { hash = new URL(url).hash; } catch {}
414
+ }
415
+ if (hash) {
416
+ const id = hash.replace(/^#\/?/, "");
417
+ const note = window.document.getElementById(id);
418
+ if (note !== null) {
419
+ try {
420
+ const html = processXRef(id, note.cloneNode(true));
421
+ instance.setContent(html);
422
+ } finally {
423
+ instance.enable();
424
+ instance.show();
425
+ }
426
+ } else {
427
+ // See if we can fetch this
428
+ fetch(url.split('#')[0])
429
+ .then(res => res.text())
430
+ .then(html => {
431
+ const parser = new DOMParser();
432
+ const htmlDoc = parser.parseFromString(html, "text/html");
433
+ const note = htmlDoc.getElementById(id);
434
+ if (note !== null) {
435
+ const html = processXRef(id, note);
436
+ instance.setContent(html);
437
+ }
438
+ }).finally(() => {
439
+ instance.enable();
440
+ instance.show();
441
+ });
442
+ }
443
+ } else {
444
+ // See if we can fetch a full url (with no hash to target)
445
+ // This is a special case and we should probably do some content thinning / targeting
446
+ fetch(url)
447
+ .then(res => res.text())
448
+ .then(html => {
449
+ const parser = new DOMParser();
450
+ const htmlDoc = parser.parseFromString(html, "text/html");
451
+ const note = htmlDoc.querySelector('main.content');
452
+ if (note !== null) {
453
+ // This should only happen for chapter cross references
454
+ // (since there is no id in the URL)
455
+ // remove the first header
456
+ if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
457
+ note.children[0].remove();
458
+ }
459
+ const html = processXRef(null, note);
460
+ instance.setContent(html);
461
+ }
462
+ }).finally(() => {
463
+ instance.enable();
464
+ instance.show();
465
+ });
466
+ }
467
+ }, function(instance) {
468
+ });
469
+ }
470
+ let selectedAnnoteEl;
471
+ const selectorForAnnotation = ( cell, annotation) => {
472
+ let cellAttr = 'data-code-cell="' + cell + '"';
473
+ let lineAttr = 'data-code-annotation="' + annotation + '"';
474
+ const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
475
+ return selector;
476
+ }
477
+ const selectCodeLines = (annoteEl) => {
478
+ const doc = window.document;
479
+ const targetCell = annoteEl.getAttribute("data-target-cell");
480
+ const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
481
+ const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
482
+ const lines = annoteSpan.getAttribute("data-code-lines").split(",");
483
+ const lineIds = lines.map((line) => {
484
+ return targetCell + "-" + line;
485
+ })
486
+ let top = null;
487
+ let height = null;
488
+ let parent = null;
489
+ if (lineIds.length > 0) {
490
+ //compute the position of the single el (top and bottom and make a div)
491
+ const el = window.document.getElementById(lineIds[0]);
492
+ top = el.offsetTop;
493
+ height = el.offsetHeight;
494
+ parent = el.parentElement.parentElement;
495
+ if (lineIds.length > 1) {
496
+ const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
497
+ const bottom = lastEl.offsetTop + lastEl.offsetHeight;
498
+ height = bottom - top;
499
+ }
500
+ if (top !== null && height !== null && parent !== null) {
501
+ // cook up a div (if necessary) and position it
502
+ let div = window.document.getElementById("code-annotation-line-highlight");
503
+ if (div === null) {
504
+ div = window.document.createElement("div");
505
+ div.setAttribute("id", "code-annotation-line-highlight");
506
+ div.style.position = 'absolute';
507
+ parent.appendChild(div);
508
+ }
509
+ div.style.top = top - 2 + "px";
510
+ div.style.height = height + 4 + "px";
511
+ div.style.left = 0;
512
+ let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
513
+ if (gutterDiv === null) {
514
+ gutterDiv = window.document.createElement("div");
515
+ gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
516
+ gutterDiv.style.position = 'absolute';
517
+ const codeCell = window.document.getElementById(targetCell);
518
+ const gutter = codeCell.querySelector('.code-annotation-gutter');
519
+ gutter.appendChild(gutterDiv);
520
+ }
521
+ gutterDiv.style.top = top - 2 + "px";
522
+ gutterDiv.style.height = height + 4 + "px";
523
+ }
524
+ selectedAnnoteEl = annoteEl;
525
+ }
526
+ };
527
+ const unselectCodeLines = () => {
528
+ const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
529
+ elementsIds.forEach((elId) => {
530
+ const div = window.document.getElementById(elId);
531
+ if (div) {
532
+ div.remove();
533
+ }
534
+ });
535
+ selectedAnnoteEl = undefined;
536
+ };
537
+ // Handle positioning of the toggle
538
+ window.addEventListener(
539
+ "resize",
540
+ throttle(() => {
541
+ elRect = undefined;
542
+ if (selectedAnnoteEl) {
543
+ selectCodeLines(selectedAnnoteEl);
544
+ }
545
+ }, 10)
546
+ );
547
+ function throttle(fn, ms) {
548
+ let throttle = false;
549
+ let timer;
550
+ return (...args) => {
551
+ if(!throttle) { // first call gets through
552
+ fn.apply(this, args);
553
+ throttle = true;
554
+ } else { // all the others get throttled
555
+ if(timer) clearTimeout(timer); // cancel #2
556
+ timer = setTimeout(() => {
557
+ fn.apply(this, args);
558
+ timer = throttle = false;
559
+ }, ms);
560
+ }
561
+ };
562
+ }
563
+ // Attach click handler to the DT
564
+ const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
565
+ for (const annoteDlNode of annoteDls) {
566
+ annoteDlNode.addEventListener('click', (event) => {
567
+ const clickedEl = event.target;
568
+ if (clickedEl !== selectedAnnoteEl) {
569
+ unselectCodeLines();
570
+ const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
571
+ if (activeEl) {
572
+ activeEl.classList.remove('code-annotation-active');
573
+ }
574
+ selectCodeLines(clickedEl);
575
+ clickedEl.classList.add('code-annotation-active');
576
+ } else {
577
+ // Unselect the line
578
+ unselectCodeLines();
579
+ clickedEl.classList.remove('code-annotation-active');
580
+ }
581
+ });
582
+ }
583
+ const findCites = (el) => {
584
+ const parentEl = el.parentElement;
585
+ if (parentEl) {
586
+ const cites = parentEl.dataset.cites;
587
+ if (cites) {
588
+ return {
589
+ el,
590
+ cites: cites.split(' ')
591
+ };
592
+ } else {
593
+ return findCites(el.parentElement)
594
+ }
595
+ } else {
596
+ return undefined;
597
+ }
598
+ };
599
+ var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
600
+ for (var i=0; i<bibliorefs.length; i++) {
601
+ const ref = bibliorefs[i];
602
+ const citeInfo = findCites(ref);
603
+ if (citeInfo) {
604
+ tippyHover(citeInfo.el, function() {
605
+ var popup = window.document.createElement('div');
606
+ citeInfo.cites.forEach(function(cite) {
607
+ var citeDiv = window.document.createElement('div');
608
+ citeDiv.classList.add('hanging-indent');
609
+ citeDiv.classList.add('csl-entry');
610
+ var biblioDiv = window.document.getElementById('ref-' + cite);
611
+ if (biblioDiv) {
612
+ citeDiv.innerHTML = biblioDiv.innerHTML;
613
+ }
614
+ popup.appendChild(citeDiv);
615
+ });
616
+ return popup.innerHTML;
617
+ });
618
+ }
619
+ }
620
+ });
621
+ </script>
622
+ </div> <!-- /content -->
623
+
624
+
625
+
626
+
627
+ </body></html>
robots.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ Sitemap: https://srijithrajamohan-ai-research-redis.hf.space/sitemap.xml
search.json ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "objectID": "index.html",
4
+ "href": "index.html",
5
+ "title": "AI Research Redis",
6
+ "section": "",
7
+ "text": "Notes and write-ups. The canonical rich HTML version of each post lives here; Medium can import from the post URL.\n\n\n\n\n\n\n\n\n\nPosts\n\n\n\n\n\n\n\n\n\n\n\n\n\nHello\n\n\nFirst Quarto post (template).\n\n\n\n\n\nMar 18, 2026\n\n\n\n\n\nNo matching items"
8
+ },
9
+ {
10
+ "objectID": "posts/index.html",
11
+ "href": "posts/index.html",
12
+ "title": "Posts",
13
+ "section": "",
14
+ "text": "Hello\n\n\nFirst Quarto post (template).\n\n\n\n\n\nMar 18, 2026\n\n\n\n\n\nNo matching items"
15
+ },
16
+ {
17
+ "objectID": "posts/hello.html",
18
+ "href": "posts/hello.html",
19
+ "title": "Hello",
20
+ "section": "",
21
+ "text": "Write here."
22
+ },
23
+ {
24
+ "objectID": "posts/hello.html#links",
25
+ "href": "posts/hello.html#links",
26
+ "title": "Hello",
27
+ "section": "Links",
28
+ "text": "Links\n\nSpace HTML: this page\nMedium: fill medium_url after publishing"
29
+ }
30
+ ]
site_libs/bootstrap/bootstrap-a8976c3e89df70b272bdfba3d2fda974.min.css ADDED
The diff for this file is too large to render. See raw diff
 
site_libs/bootstrap/bootstrap-icons.css ADDED
The diff for this file is too large to render. See raw diff
 
site_libs/bootstrap/bootstrap-icons.woff ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f55513b7b591cb84a3b87ff0e34ea24d4831d6fedc22e54b911ca64b5b544a15
3
+ size 180288
site_libs/bootstrap/bootstrap.min.js ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap v5.3.1 (https://getbootstrap.com/)
3
+ * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ */
6
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t=new Map,e={set(e,i,n){t.has(e)||t.set(e,new Map);const s=t.get(e);s.has(i)||0===s.size?s.set(i,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(e,i)=>t.has(e)&&t.get(e).get(i)||null,remove(e,i){if(!t.has(e))return;const n=t.get(e);n.delete(i),0===n.size&&t.delete(e)}},i="transitionend",n=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),s=t=>{t.dispatchEvent(new Event(i))},o=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(n(t)):null,a=t=>{if(!o(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},l=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),c=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?c(t.parentNode):null},h=()=>{},d=t=>{t.offsetHeight},u=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,f=[],p=()=>"rtl"===document.documentElement.dir,m=t=>{var e;e=()=>{const e=u();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(f.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of f)t()})),f.push(e)):e()},g=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,_=(t,e,n=!0)=>{if(!n)return void g(t);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let r=!1;const a=({target:n})=>{n===e&&(r=!0,e.removeEventListener(i,a),g(t))};e.addEventListener(i,a),setTimeout((()=>{r||s(e)}),o)},b=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},v=/[^.]*(?=\..*)\.|.*/,y=/\..*/,w=/::\d+$/,A={};let E=1;const T={mouseenter:"mouseover",mouseleave:"mouseout"},C=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function O(t,e){return e&&`${e}::${E++}`||t.uidEvent||E++}function x(t){const e=O(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function k(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function L(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=I(t);return C.has(o)||(o=t),[n,s,o]}function S(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=L(e,i,n);if(e in T){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=x(t),c=l[a]||(l[a]={}),h=k(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=O(r,e.replace(v,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return P(s,{delegateTarget:r}),n.oneOff&&N.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return P(n,{delegateTarget:t}),i.oneOff&&N.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function D(t,e,i,n,s){const o=k(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function $(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&D(t,e,i,r.callable,r.delegationSelector)}function I(t){return t=t.replace(y,""),T[t]||t}const N={on(t,e,i,n){S(t,e,i,n,!1)},one(t,e,i,n){S(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=L(e,i,n),a=r!==e,l=x(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))$(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(w,"");a&&!e.includes(s)||D(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;D(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=u();let s=null,o=!0,r=!0,a=!1;e!==I(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=P(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function P(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}function M(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function j(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const F={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${j(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${j(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=M(t.dataset[n])}return e},getDataAttribute:(t,e)=>M(t.getAttribute(`data-bs-${j(e)}`))};class H{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=o(e)?F.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...o(e)?F.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[n,s]of Object.entries(e)){const e=t[n],r=o(e)?"element":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${s}".`)}var i}}class W extends H{constructor(t,i){super(),(t=r(t))&&(this._element=t,this._config=this._getConfig(i),e.set(this._element,this.constructor.DATA_KEY,this))}dispose(){e.remove(this._element,this.constructor.DATA_KEY),N.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){_(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return e.get(r(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.1"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const B=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return n(e)},z={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!l(t)&&a(t)))},getSelectorFromElement(t){const e=B(t);return e&&z.findOne(e)?e:null},getElementFromSelector(t){const e=B(t);return e?z.findOne(e):null},getMultipleElementsFromSelector(t){const e=B(t);return e?z.find(e):[]}},R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;N.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),l(this))return;const s=z.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))},q=".bs.alert",V=`close${q}`,K=`closed${q}`;class Q extends W{static get NAME(){return"alert"}close(){if(N.trigger(this._element,V).defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),N.trigger(this._element,K),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Q.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}R(Q,"close"),m(Q);const X='[data-bs-toggle="button"]';class Y extends W{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=Y.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}N.on(document,"click.bs.button.data-api",X,(t=>{t.preventDefault();const e=t.target.closest(X);Y.getOrCreateInstance(e).toggle()})),m(Y);const U=".bs.swipe",G=`touchstart${U}`,J=`touchmove${U}`,Z=`touchend${U}`,tt=`pointerdown${U}`,et=`pointerup${U}`,it={endCallback:null,leftCallback:null,rightCallback:null},nt={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class st extends H{constructor(t,e){super(),this._element=t,t&&st.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return it}static get DefaultType(){return nt}static get NAME(){return"swipe"}dispose(){N.off(this._element,U)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),g(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&g(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(N.on(this._element,tt,(t=>this._start(t))),N.on(this._element,et,(t=>this._end(t))),this._element.classList.add("pointer-event")):(N.on(this._element,G,(t=>this._start(t))),N.on(this._element,J,(t=>this._move(t))),N.on(this._element,Z,(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const ot=".bs.carousel",rt=".data-api",at="next",lt="prev",ct="left",ht="right",dt=`slide${ot}`,ut=`slid${ot}`,ft=`keydown${ot}`,pt=`mouseenter${ot}`,mt=`mouseleave${ot}`,gt=`dragstart${ot}`,_t=`load${ot}${rt}`,bt=`click${ot}${rt}`,vt="carousel",yt="active",wt=".active",At=".carousel-item",Et=wt+At,Tt={ArrowLeft:ht,ArrowRight:ct},Ct={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},Ot={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class xt extends W{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=z.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===vt&&this.cycle()}static get Default(){return Ct}static get DefaultType(){return Ot}static get NAME(){return"carousel"}next(){this._slide(at)}nextWhenVisible(){!document.hidden&&a(this._element)&&this.next()}prev(){this._slide(lt)}pause(){this._isSliding&&s(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?N.one(this._element,ut,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void N.one(this._element,ut,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?at:lt;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&N.on(this._element,ft,(t=>this._keydown(t))),"hover"===this._config.pause&&(N.on(this._element,pt,(()=>this.pause())),N.on(this._element,mt,(()=>this._maybeEnableCycle()))),this._config.touch&&st.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of z.find(".carousel-item img",this._element))N.on(t,gt,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(ct)),rightCallback:()=>this._slide(this._directionToOrder(ht)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new st(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=Tt[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=z.findOne(wt,this._indicatorsElement);e.classList.remove(yt),e.removeAttribute("aria-current");const i=z.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(yt),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===at,s=e||b(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>N.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(dt).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",c=n?"carousel-item-next":"carousel-item-prev";s.classList.add(c),d(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(yt),i.classList.remove(yt,c,l),this._isSliding=!1,r(ut)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return z.findOne(Et,this._element)}_getItems(){return z.find(At,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return p()?t===ct?lt:at:t===ct?at:lt}_orderToDirection(t){return p()?t===lt?ct:ht:t===lt?ht:ct}static jQueryInterface(t){return this.each((function(){const e=xt.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}N.on(document,bt,"[data-bs-slide], [data-bs-slide-to]",(function(t){const e=z.getElementFromSelector(this);if(!e||!e.classList.contains(vt))return;t.preventDefault();const i=xt.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===F.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),N.on(window,_t,(()=>{const t=z.find('[data-bs-ride="carousel"]');for(const e of t)xt.getOrCreateInstance(e)})),m(xt);const kt=".bs.collapse",Lt=`show${kt}`,St=`shown${kt}`,Dt=`hide${kt}`,$t=`hidden${kt}`,It=`click${kt}.data-api`,Nt="show",Pt="collapse",Mt="collapsing",jt=`:scope .${Pt} .${Pt}`,Ft='[data-bs-toggle="collapse"]',Ht={parent:null,toggle:!0},Wt={parent:"(null|element)",toggle:"boolean"};class Bt extends W{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=z.find(Ft);for(const t of i){const e=z.getSelectorFromElement(t),i=z.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Ht}static get DefaultType(){return Wt}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>Bt.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(N.trigger(this._element,Lt).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(Pt),this._element.classList.add(Mt),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(Mt),this._element.classList.add(Pt,Nt),this._element.style[e]="",N.trigger(this._element,St)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(N.trigger(this._element,Dt).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,d(this._element),this._element.classList.add(Mt),this._element.classList.remove(Pt,Nt);for(const t of this._triggerArray){const e=z.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(Mt),this._element.classList.add(Pt),N.trigger(this._element,$t)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(Nt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=r(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Ft);for(const e of t){const t=z.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=z.find(jt,this._config.parent);return z.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=Bt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}N.on(document,It,Ft,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of z.getMultipleElementsFromSelector(this))Bt.getOrCreateInstance(t,{toggle:!1}).toggle()})),m(Bt);var zt="top",Rt="bottom",qt="right",Vt="left",Kt="auto",Qt=[zt,Rt,qt,Vt],Xt="start",Yt="end",Ut="clippingParents",Gt="viewport",Jt="popper",Zt="reference",te=Qt.reduce((function(t,e){return t.concat([e+"-"+Xt,e+"-"+Yt])}),[]),ee=[].concat(Qt,[Kt]).reduce((function(t,e){return t.concat([e,e+"-"+Xt,e+"-"+Yt])}),[]),ie="beforeRead",ne="read",se="afterRead",oe="beforeMain",re="main",ae="afterMain",le="beforeWrite",ce="write",he="afterWrite",de=[ie,ne,se,oe,re,ae,le,ce,he];function ue(t){return t?(t.nodeName||"").toLowerCase():null}function fe(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function pe(t){return t instanceof fe(t).Element||t instanceof Element}function me(t){return t instanceof fe(t).HTMLElement||t instanceof HTMLElement}function ge(t){return"undefined"!=typeof ShadowRoot&&(t instanceof fe(t).ShadowRoot||t instanceof ShadowRoot)}const _e={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];me(s)&&ue(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});me(n)&&ue(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function be(t){return t.split("-")[0]}var ve=Math.max,ye=Math.min,we=Math.round;function Ae(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function Ee(){return!/^((?!chrome|android).)*safari/i.test(Ae())}function Te(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&me(t)&&(s=t.offsetWidth>0&&we(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&we(n.height)/t.offsetHeight||1);var r=(pe(t)?fe(t):window).visualViewport,a=!Ee()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function Ce(t){var e=Te(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Oe(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&ge(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function xe(t){return fe(t).getComputedStyle(t)}function ke(t){return["table","td","th"].indexOf(ue(t))>=0}function Le(t){return((pe(t)?t.ownerDocument:t.document)||window.document).documentElement}function Se(t){return"html"===ue(t)?t:t.assignedSlot||t.parentNode||(ge(t)?t.host:null)||Le(t)}function De(t){return me(t)&&"fixed"!==xe(t).position?t.offsetParent:null}function $e(t){for(var e=fe(t),i=De(t);i&&ke(i)&&"static"===xe(i).position;)i=De(i);return i&&("html"===ue(i)||"body"===ue(i)&&"static"===xe(i).position)?e:i||function(t){var e=/firefox/i.test(Ae());if(/Trident/i.test(Ae())&&me(t)&&"fixed"===xe(t).position)return null;var i=Se(t);for(ge(i)&&(i=i.host);me(i)&&["html","body"].indexOf(ue(i))<0;){var n=xe(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function Ie(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Ne(t,e,i){return ve(t,ye(e,i))}function Pe(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function Me(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const je={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=be(i.placement),l=Ie(a),c=[Vt,qt].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return Pe("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:Me(t,Qt))}(s.padding,i),d=Ce(o),u="y"===l?zt:Vt,f="y"===l?Rt:qt,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=$e(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,A=Ne(v,w,y),E=l;i.modifiersData[n]=((e={})[E]=A,e.centerOffset=A-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Oe(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Fe(t){return t.split("-")[1]}var He={top:"auto",right:"auto",bottom:"auto",left:"auto"};function We(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=t.isFixed,u=r.x,f=void 0===u?0:u,p=r.y,m=void 0===p?0:p,g="function"==typeof h?h({x:f,y:m}):{x:f,y:m};f=g.x,m=g.y;var _=r.hasOwnProperty("x"),b=r.hasOwnProperty("y"),v=Vt,y=zt,w=window;if(c){var A=$e(i),E="clientHeight",T="clientWidth";A===fe(i)&&"static"!==xe(A=Le(i)).position&&"absolute"===a&&(E="scrollHeight",T="scrollWidth"),(s===zt||(s===Vt||s===qt)&&o===Yt)&&(y=Rt,m-=(d&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-n.height,m*=l?1:-1),s!==Vt&&(s!==zt&&s!==Rt||o!==Yt)||(v=qt,f-=(d&&A===w&&w.visualViewport?w.visualViewport.width:A[T])-n.width,f*=l?1:-1)}var C,O=Object.assign({position:a},c&&He),x=!0===h?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:we(i*s)/s||0,y:we(n*s)/s||0}}({x:f,y:m},fe(i)):{x:f,y:m};return f=x.x,m=x.y,l?Object.assign({},O,((C={})[y]=b?"0":"",C[v]=_?"0":"",C.transform=(w.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",C)):Object.assign({},O,((e={})[y]=b?m+"px":"",e[v]=_?f+"px":"",e.transform="",e))}const Be={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:be(e.placement),variation:Fe(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,We(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,We(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var ze={passive:!0};const Re={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=fe(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,ze)})),a&&l.addEventListener("resize",i.update,ze),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,ze)})),a&&l.removeEventListener("resize",i.update,ze)}},data:{}};var qe={left:"right",right:"left",bottom:"top",top:"bottom"};function Ve(t){return t.replace(/left|right|bottom|top/g,(function(t){return qe[t]}))}var Ke={start:"end",end:"start"};function Qe(t){return t.replace(/start|end/g,(function(t){return Ke[t]}))}function Xe(t){var e=fe(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ye(t){return Te(Le(t)).left+Xe(t).scrollLeft}function Ue(t){var e=xe(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ge(t){return["html","body","#document"].indexOf(ue(t))>=0?t.ownerDocument.body:me(t)&&Ue(t)?t:Ge(Se(t))}function Je(t,e){var i;void 0===e&&(e=[]);var n=Ge(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=fe(n),r=s?[o].concat(o.visualViewport||[],Ue(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Je(Se(r)))}function Ze(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ti(t,e,i){return e===Gt?Ze(function(t,e){var i=fe(t),n=Le(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=Ee();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+Ye(t),y:l}}(t,i)):pe(e)?function(t,e){var i=Te(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):Ze(function(t){var e,i=Le(t),n=Xe(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ve(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ve(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+Ye(t),l=-n.scrollTop;return"rtl"===xe(s||i).direction&&(a+=ve(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Le(t)))}function ei(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?be(s):null,r=s?Fe(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case zt:e={x:a,y:i.y-n.height};break;case Rt:e={x:a,y:i.y+i.height};break;case qt:e={x:i.x+i.width,y:l};break;case Vt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?Ie(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case Xt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Yt:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ii(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.strategy,r=void 0===o?t.strategy:o,a=i.boundary,l=void 0===a?Ut:a,c=i.rootBoundary,h=void 0===c?Gt:c,d=i.elementContext,u=void 0===d?Jt:d,f=i.altBoundary,p=void 0!==f&&f,m=i.padding,g=void 0===m?0:m,_=Pe("number"!=typeof g?g:Me(g,Qt)),b=u===Jt?Zt:Jt,v=t.rects.popper,y=t.elements[p?b:u],w=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=Je(Se(t)),i=["absolute","fixed"].indexOf(xe(t).position)>=0&&me(t)?$e(t):t;return pe(i)?e.filter((function(t){return pe(t)&&Oe(t,i)&&"body"!==ue(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=ti(t,i,n);return e.top=ve(s.top,e.top),e.right=ye(s.right,e.right),e.bottom=ye(s.bottom,e.bottom),e.left=ve(s.left,e.left),e}),ti(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(pe(y)?y:y.contextElement||Le(t.elements.popper),l,h,r),A=Te(t.elements.reference),E=ei({reference:A,element:v,strategy:"absolute",placement:s}),T=Ze(Object.assign({},v,E)),C=u===Jt?T:A,O={top:w.top-C.top+_.top,bottom:C.bottom-w.bottom+_.bottom,left:w.left-C.left+_.left,right:C.right-w.right+_.right},x=t.modifiersData.offset;if(u===Jt&&x){var k=x[s];Object.keys(O).forEach((function(t){var e=[qt,Rt].indexOf(t)>=0?1:-1,i=[zt,Rt].indexOf(t)>=0?"y":"x";O[t]+=k[i]*e}))}return O}function ni(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?ee:l,h=Fe(n),d=h?a?te:te.filter((function(t){return Fe(t)===h})):Qt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ii(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[be(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const si={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=be(g),b=l||(_!==g&&p?function(t){if(be(t)===Kt)return[];var e=Ve(t);return[Qe(t),e,Qe(e)]}(g):[Ve(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(be(i)===Kt?ni(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,A=new Map,E=!0,T=v[0],C=0;C<v.length;C++){var O=v[C],x=be(O),k=Fe(O)===Xt,L=[zt,Rt].indexOf(x)>=0,S=L?"width":"height",D=ii(e,{placement:O,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),$=L?k?qt:Vt:k?Rt:zt;y[S]>w[S]&&($=Ve($));var I=Ve($),N=[];if(o&&N.push(D[x]<=0),a&&N.push(D[$]<=0,D[I]<=0),N.every((function(t){return t}))){T=O,E=!1;break}A.set(O,N)}if(E)for(var P=function(t){var e=v.find((function(e){var i=A.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},M=p?3:1;M>0&&"break"!==P(M);M--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function oi(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function ri(t){return[zt,qt,Rt,Vt].some((function(e){return t[e]>=0}))}const ai={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=ii(e,{elementContext:"reference"}),a=ii(e,{altBoundary:!0}),l=oi(r,n),c=oi(a,s,o),h=ri(l),d=ri(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},li={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=ee.reduce((function(t,i){return t[i]=function(t,e,i){var n=be(t),s=[Vt,zt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[Vt,qt].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},ci={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=ei({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},hi={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ii(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=be(e.placement),b=Fe(e.placement),v=!b,y=Ie(_),w="x"===y?"y":"x",A=e.modifiersData.popperOffsets,E=e.rects.reference,T=e.rects.popper,C="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,O="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,k={x:0,y:0};if(A){if(o){var L,S="y"===y?zt:Vt,D="y"===y?Rt:qt,$="y"===y?"height":"width",I=A[y],N=I+g[S],P=I-g[D],M=f?-T[$]/2:0,j=b===Xt?E[$]:T[$],F=b===Xt?-T[$]:-E[$],H=e.elements.arrow,W=f&&H?Ce(H):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=B[S],R=B[D],q=Ne(0,E[$],W[$]),V=v?E[$]/2-M-q-z-O.mainAxis:j-q-z-O.mainAxis,K=v?-E[$]/2+M+q+R+O.mainAxis:F+q+R+O.mainAxis,Q=e.elements.arrow&&$e(e.elements.arrow),X=Q?"y"===y?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(L=null==x?void 0:x[y])?L:0,U=I+K-Y,G=Ne(f?ye(N,I+V-Y-X):N,I,f?ve(P,U):P);A[y]=G,k[y]=G-I}if(a){var J,Z="x"===y?zt:Vt,tt="x"===y?Rt:qt,et=A[w],it="y"===w?"height":"width",nt=et+g[Z],st=et-g[tt],ot=-1!==[zt,Vt].indexOf(_),rt=null!=(J=null==x?void 0:x[w])?J:0,at=ot?nt:et-E[it]-T[it]-rt+O.altAxis,lt=ot?et+E[it]+T[it]-rt-O.altAxis:st,ct=f&&ot?function(t,e,i){var n=Ne(t,e,i);return n>i?i:n}(at,et,lt):Ne(f?at:nt,et,f?lt:st);A[w]=ct,k[w]=ct-et}e.modifiersData[n]=k}},requiresIfExists:["offset"]};function di(t,e,i){void 0===i&&(i=!1);var n,s,o=me(e),r=me(e)&&function(t){var e=t.getBoundingClientRect(),i=we(e.width)/t.offsetWidth||1,n=we(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=Le(e),l=Te(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==ue(e)||Ue(a))&&(c=(n=e)!==fe(n)&&me(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:Xe(n)),me(e)?((h=Te(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=Ye(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function ui(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var fi={placement:"bottom",modifiers:[],strategy:"absolute"};function pi(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return!e.some((function(t){return!(t&&"function"==typeof t.getBoundingClientRect)}))}function mi(t){void 0===t&&(t={});var e=t,i=e.defaultModifiers,n=void 0===i?[]:i,s=e.defaultOptions,o=void 0===s?fi:s;return function(t,e,i){void 0===i&&(i=o);var s,r,a={placement:"bottom",orderedModifiers:[],options:Object.assign({},fi,o),modifiersData:{},elements:{reference:t,popper:e},attributes:{},styles:{}},l=[],c=!1,h={state:a,setOptions:function(i){var s="function"==typeof i?i(a.options):i;d(),a.options=Object.assign({},o,a.options,s),a.scrollParents={reference:pe(t)?Je(t):t.contextElement?Je(t.contextElement):[],popper:Je(e)};var r,c,u=function(t){var e=ui(t);return de.reduce((function(t,i){return t.concat(e.filter((function(t){return t.phase===i})))}),[])}((r=[].concat(n,a.options.modifiers),c=r.reduce((function(t,e){var i=t[e.name];return t[e.name]=i?Object.assign({},i,e,{options:Object.assign({},i.options,e.options),data:Object.assign({},i.data,e.data)}):e,t}),{}),Object.keys(c).map((function(t){return c[t]}))));return a.orderedModifiers=u.filter((function(t){return t.enabled})),a.orderedModifiers.forEach((function(t){var e=t.name,i=t.options,n=void 0===i?{}:i,s=t.effect;if("function"==typeof s){var o=s({state:a,name:e,instance:h,options:n});l.push(o||function(){})}})),h.update()},forceUpdate:function(){if(!c){var t=a.elements,e=t.reference,i=t.popper;if(pi(e,i)){a.rects={reference:di(e,$e(i),"fixed"===a.options.strategy),popper:Ce(i)},a.reset=!1,a.placement=a.options.placement,a.orderedModifiers.forEach((function(t){return a.modifiersData[t.name]=Object.assign({},t.data)}));for(var n=0;n<a.orderedModifiers.length;n++)if(!0!==a.reset){var s=a.orderedModifiers[n],o=s.fn,r=s.options,l=void 0===r?{}:r,d=s.name;"function"==typeof o&&(a=o({state:a,options:l,name:d,instance:h})||a)}else a.reset=!1,n=-1}}},update:(s=function(){return new Promise((function(t){h.forceUpdate(),t(a)}))},function(){return r||(r=new Promise((function(t){Promise.resolve().then((function(){r=void 0,t(s())}))}))),r}),destroy:function(){d(),c=!0}};if(!pi(t,e))return h;function d(){l.forEach((function(t){return t()})),l=[]}return h.setOptions(i).then((function(t){!c&&i.onFirstUpdate&&i.onFirstUpdate(t)})),h}}var gi=mi(),_i=mi({defaultModifiers:[Re,ci,Be,_e]}),bi=mi({defaultModifiers:[Re,ci,Be,_e,li,si,hi,je,ai]});const vi=Object.freeze(Object.defineProperty({__proto__:null,afterMain:ae,afterRead:se,afterWrite:he,applyStyles:_e,arrow:je,auto:Kt,basePlacements:Qt,beforeMain:oe,beforeRead:ie,beforeWrite:le,bottom:Rt,clippingParents:Ut,computeStyles:Be,createPopper:bi,createPopperBase:gi,createPopperLite:_i,detectOverflow:ii,end:Yt,eventListeners:Re,flip:si,hide:ai,left:Vt,main:re,modifierPhases:de,offset:li,placements:ee,popper:Jt,popperGenerator:mi,popperOffsets:ci,preventOverflow:hi,read:ne,reference:Zt,right:qt,start:Xt,top:zt,variationPlacements:te,viewport:Gt,write:ce},Symbol.toStringTag,{value:"Module"})),yi="dropdown",wi=".bs.dropdown",Ai=".data-api",Ei="ArrowUp",Ti="ArrowDown",Ci=`hide${wi}`,Oi=`hidden${wi}`,xi=`show${wi}`,ki=`shown${wi}`,Li=`click${wi}${Ai}`,Si=`keydown${wi}${Ai}`,Di=`keyup${wi}${Ai}`,$i="show",Ii='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',Ni=`${Ii}.${$i}`,Pi=".dropdown-menu",Mi=p()?"top-end":"top-start",ji=p()?"top-start":"top-end",Fi=p()?"bottom-end":"bottom-start",Hi=p()?"bottom-start":"bottom-end",Wi=p()?"left-start":"right-start",Bi=p()?"right-start":"left-start",zi={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},Ri={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class qi extends W{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=z.next(this._element,Pi)[0]||z.prev(this._element,Pi)[0]||z.findOne(Pi,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return zi}static get DefaultType(){return Ri}static get NAME(){return yi}toggle(){return this._isShown()?this.hide():this.show()}show(){if(l(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!N.trigger(this._element,xi,t).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const t of[].concat(...document.body.children))N.on(t,"mouseover",h);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add($i),this._element.classList.add($i),N.trigger(this._element,ki,t)}}hide(){if(l(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!N.trigger(this._element,Ci,t).defaultPrevented){if("ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.off(t,"mouseover",h);this._popper&&this._popper.destroy(),this._menu.classList.remove($i),this._element.classList.remove($i),this._element.setAttribute("aria-expanded","false"),F.removeDataAttribute(this._menu,"popper"),N.trigger(this._element,Oi,t)}}_getConfig(t){if("object"==typeof(t=super._getConfig(t)).reference&&!o(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${yi.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(){if(void 0===vi)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=this._parent:o(this._config.reference)?t=r(this._config.reference):"object"==typeof this._config.reference&&(t=this._config.reference);const e=this._getPopperConfig();this._popper=bi(t,this._menu,e)}_isShown(){return this._menu.classList.contains($i)}_getPlacement(){const t=this._parent;if(t.classList.contains("dropend"))return Wi;if(t.classList.contains("dropstart"))return Bi;if(t.classList.contains("dropup-center"))return"top";if(t.classList.contains("dropdown-center"))return"bottom";const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?ji:Mi:e?Hi:Fi}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(F.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...g(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=z.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>a(t)));i.length&&b(i,e,t===Ti,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=qi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=z.find(Ni);for(const i of e){const e=qi.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Ei,Ti].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Ii)?this:z.prev(this,Ii)[0]||z.next(this,Ii)[0]||z.findOne(Ii,t.delegateTarget.parentNode),o=qi.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}N.on(document,Si,Ii,qi.dataApiKeydownHandler),N.on(document,Si,Pi,qi.dataApiKeydownHandler),N.on(document,Li,qi.clearMenus),N.on(document,Di,qi.clearMenus),N.on(document,Li,Ii,(function(t){t.preventDefault(),qi.getOrCreateInstance(this).toggle()})),m(qi);const Vi="backdrop",Ki="show",Qi=`mousedown.bs.${Vi}`,Xi={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Yi={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Ui extends H{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Xi}static get DefaultType(){return Yi}static get NAME(){return Vi}show(t){if(!this._config.isVisible)return void g(t);this._append();const e=this._getElement();this._config.isAnimated&&d(e),e.classList.add(Ki),this._emulateAnimation((()=>{g(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(Ki),this._emulateAnimation((()=>{this.dispose(),g(t)}))):g(t)}dispose(){this._isAppended&&(N.off(this._element,Qi),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=r(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),N.on(t,Qi,(()=>{g(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){_(t,this._getElement(),this._config.isAnimated)}}const Gi=".bs.focustrap",Ji=`focusin${Gi}`,Zi=`keydown.tab${Gi}`,tn="backward",en={autofocus:!0,trapElement:null},nn={autofocus:"boolean",trapElement:"element"};class sn extends H{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return en}static get DefaultType(){return nn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),N.off(document,Gi),N.on(document,Ji,(t=>this._handleFocusin(t))),N.on(document,Zi,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,N.off(document,Gi))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=z.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===tn?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?tn:"forward")}}const on=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",rn=".sticky-top",an="padding-right",ln="margin-right";class cn{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,an,(e=>e+t)),this._setElementAttributes(on,an,(e=>e+t)),this._setElementAttributes(rn,ln,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,an),this._resetElementAttributes(on,an),this._resetElementAttributes(rn,ln)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&F.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=F.getDataAttribute(t,e);null!==i?(F.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(o(t))e(t);else for(const i of z.find(t,this._element))e(i)}}const hn=".bs.modal",dn=`hide${hn}`,un=`hidePrevented${hn}`,fn=`hidden${hn}`,pn=`show${hn}`,mn=`shown${hn}`,gn=`resize${hn}`,_n=`click.dismiss${hn}`,bn=`mousedown.dismiss${hn}`,vn=`keydown.dismiss${hn}`,yn=`click${hn}.data-api`,wn="modal-open",An="show",En="modal-static",Tn={backdrop:!0,focus:!0,keyboard:!0},Cn={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class On extends W{constructor(t,e){super(t,e),this._dialog=z.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new cn,this._addEventListeners()}static get Default(){return Tn}static get DefaultType(){return Cn}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||N.trigger(this._element,pn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(wn),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(N.trigger(this._element,dn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(An),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){N.off(window,hn),N.off(this._dialog,hn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ui({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=z.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),d(this._element),this._element.classList.add(An),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,N.trigger(this._element,mn,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){N.on(this._element,vn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),N.on(window,gn,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),N.on(this._element,bn,(t=>{N.one(this._element,_n,(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(wn),this._resetAdjustments(),this._scrollBar.reset(),N.trigger(this._element,fn)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(N.trigger(this._element,un).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(En)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(En),this._queueCallback((()=>{this._element.classList.remove(En),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=p()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=p()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=On.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}N.on(document,yn,'[data-bs-toggle="modal"]',(function(t){const e=z.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),N.one(e,pn,(t=>{t.defaultPrevented||N.one(e,fn,(()=>{a(this)&&this.focus()}))}));const i=z.findOne(".modal.show");i&&On.getInstance(i).hide(),On.getOrCreateInstance(e).toggle(this)})),R(On),m(On);const xn=".bs.offcanvas",kn=".data-api",Ln=`load${xn}${kn}`,Sn="show",Dn="showing",$n="hiding",In=".offcanvas.show",Nn=`show${xn}`,Pn=`shown${xn}`,Mn=`hide${xn}`,jn=`hidePrevented${xn}`,Fn=`hidden${xn}`,Hn=`resize${xn}`,Wn=`click${xn}${kn}`,Bn=`keydown.dismiss${xn}`,zn={backdrop:!0,keyboard:!0,scroll:!1},Rn={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class qn extends W{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return zn}static get DefaultType(){return Rn}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||N.trigger(this._element,Nn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new cn).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Dn),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(Sn),this._element.classList.remove(Dn),N.trigger(this._element,Pn,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(N.trigger(this._element,Mn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add($n),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(Sn,$n),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new cn).reset(),N.trigger(this._element,Fn)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Ui({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():N.trigger(this._element,jn)}:null})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_addEventListeners(){N.on(this._element,Bn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():N.trigger(this._element,jn))}))}static jQueryInterface(t){return this.each((function(){const e=qn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}N.on(document,Wn,'[data-bs-toggle="offcanvas"]',(function(t){const e=z.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this))return;N.one(e,Fn,(()=>{a(this)&&this.focus()}));const i=z.findOne(In);i&&i!==e&&qn.getInstance(i).hide(),qn.getOrCreateInstance(e).toggle(this)})),N.on(window,Ln,(()=>{for(const t of z.find(In))qn.getOrCreateInstance(t).show()})),N.on(window,Hn,(()=>{for(const t of z.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&qn.getOrCreateInstance(t).hide()})),R(qn),m(qn);const Vn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Kn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Qn=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Xn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Kn.has(i)||Boolean(Qn.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Yn={allowList:Vn,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"<div></div>"},Un={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Gn={entry:"(string|element|function|null)",selector:"(string|element)"};class Jn extends H{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Yn}static get DefaultType(){return Un}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},Gn)}_setContent(t,e,i){const n=z.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?o(e)?this._putElementInTemplate(r(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Xn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return g(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Zn=new Set(["sanitize","allowList","sanitizeFn"]),ts="fade",es="show",is=".modal",ns="hide.bs.modal",ss="hover",os="focus",rs={AUTO:"auto",TOP:"top",RIGHT:p()?"left":"right",BOTTOM:"bottom",LEFT:p()?"right":"left"},as={allowList:Vn,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',title:"",trigger:"hover focus"},ls={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class cs extends W{constructor(t,e){if(void 0===vi)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return as}static get DefaultType(){return ls}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),N.off(this._element.closest(is),ns,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=N.trigger(this._element,this.constructor.eventName("show")),e=(c(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),N.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.on(t,"mouseover",h);this._queueCallback((()=>{N.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!N.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.off(t,"mouseover",h);this._activeTrigger.click=!1,this._activeTrigger[os]=!1,this._activeTrigger[ss]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),N.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(ts,es),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(ts),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Jn({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(ts)}_isShown(){return this.tip&&this.tip.classList.contains(es)}_createPopper(t){const e=g(this._config.placement,[this,t,this._element]),i=rs[e.toUpperCase()];return bi(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return g(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...g(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)N.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===ss?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===ss?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");N.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?os:ss]=!0,e._enter()})),N.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?os:ss]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},N.on(this._element.closest(is),ns,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=F.getDataAttributes(this._element);for(const t of Object.keys(e))Zn.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:r(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=cs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(cs);const hs={...cs.Default,content:"",offset:[0,8],placement:"right",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',trigger:"click"},ds={...cs.DefaultType,content:"(null|string|element|function)"};class us extends cs{static get Default(){return hs}static get DefaultType(){return ds}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=us.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(us);const fs=".bs.scrollspy",ps=`activate${fs}`,ms=`click${fs}`,gs=`load${fs}.data-api`,_s="active",bs="[href]",vs=".nav-link",ys=`${vs}, .nav-item > ${vs}, .list-group-item`,ws={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},As={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Es extends W{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return ws}static get DefaultType(){return As}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=r(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(N.off(this._config.target,ms),N.on(this._config.target,ms,bs,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:"smooth"});i.scrollTop=n}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=z.find(bs,this._config.target);for(const e of t){if(!e.hash||l(e))continue;const t=z.findOne(decodeURI(e.hash),this._element);a(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(_s),this._activateParents(t),N.trigger(this._element,ps,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))z.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(_s);else for(const e of z.parents(t,".nav, .list-group"))for(const t of z.prev(e,ys))t.classList.add(_s)}_clearActiveClass(t){t.classList.remove(_s);const e=z.find(`${bs}.${_s}`,t);for(const t of e)t.classList.remove(_s)}static jQueryInterface(t){return this.each((function(){const e=Es.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(window,gs,(()=>{for(const t of z.find('[data-bs-spy="scroll"]'))Es.getOrCreateInstance(t)})),m(Es);const Ts=".bs.tab",Cs=`hide${Ts}`,Os=`hidden${Ts}`,xs=`show${Ts}`,ks=`shown${Ts}`,Ls=`click${Ts}`,Ss=`keydown${Ts}`,Ds=`load${Ts}`,$s="ArrowLeft",Is="ArrowRight",Ns="ArrowUp",Ps="ArrowDown",Ms="Home",js="End",Fs="active",Hs="fade",Ws="show",Bs=":not(.dropdown-toggle)",zs='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',Rs=`.nav-link${Bs}, .list-group-item${Bs}, [role="tab"]${Bs}, ${zs}`,qs=`.${Fs}[data-bs-toggle="tab"], .${Fs}[data-bs-toggle="pill"], .${Fs}[data-bs-toggle="list"]`;class Vs extends W{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),N.on(this._element,Ss,(t=>this._keydown(t))))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?N.trigger(e,Cs,{relatedTarget:t}):null;N.trigger(t,xs,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Fs),this._activate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),N.trigger(t,ks,{relatedTarget:e})):t.classList.add(Ws)}),t,t.classList.contains(Hs)))}_deactivate(t,e){t&&(t.classList.remove(Fs),t.blur(),this._deactivate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),N.trigger(t,Os,{relatedTarget:e})):t.classList.remove(Ws)}),t,t.classList.contains(Hs)))}_keydown(t){if(![$s,Is,Ns,Ps,Ms,js].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter((t=>!l(t)));let i;if([Ms,js].includes(t.key))i=e[t.key===Ms?0:e.length-1];else{const n=[Is,Ps].includes(t.key);i=b(e,t.target,n,!0)}i&&(i.focus({preventScroll:!0}),Vs.getOrCreateInstance(i).show())}_getChildren(){return z.find(Rs,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=z.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const n=(t,n)=>{const s=z.findOne(t,i);s&&s.classList.toggle(n,e)};n(".dropdown-toggle",Fs),n(".dropdown-menu",Ws),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(Fs)}_getInnerElement(t){return t.matches(Rs)?t:z.findOne(Rs,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=Vs.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(document,Ls,zs,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this)||Vs.getOrCreateInstance(this).show()})),N.on(window,Ds,(()=>{for(const t of z.find(qs))Vs.getOrCreateInstance(t)})),m(Vs);const Ks=".bs.toast",Qs=`mouseover${Ks}`,Xs=`mouseout${Ks}`,Ys=`focusin${Ks}`,Us=`focusout${Ks}`,Gs=`hide${Ks}`,Js=`hidden${Ks}`,Zs=`show${Ks}`,to=`shown${Ks}`,eo="hide",io="show",no="showing",so={animation:"boolean",autohide:"boolean",delay:"number"},oo={animation:!0,autohide:!0,delay:5e3};class ro extends W{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return oo}static get DefaultType(){return so}static get NAME(){return"toast"}show(){N.trigger(this._element,Zs).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(eo),d(this._element),this._element.classList.add(io,no),this._queueCallback((()=>{this._element.classList.remove(no),N.trigger(this._element,to),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(N.trigger(this._element,Gs).defaultPrevented||(this._element.classList.add(no),this._queueCallback((()=>{this._element.classList.add(eo),this._element.classList.remove(no,io),N.trigger(this._element,Js)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(io),super.dispose()}isShown(){return this._element.classList.contains(io)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){N.on(this._element,Qs,(t=>this._onInteraction(t,!0))),N.on(this._element,Xs,(t=>this._onInteraction(t,!1))),N.on(this._element,Ys,(t=>this._onInteraction(t,!0))),N.on(this._element,Us,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=ro.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return R(ro),m(ro),{Alert:Q,Button:Y,Carousel:xt,Collapse:Bt,Dropdown:qi,Modal:On,Offcanvas:qn,Popover:us,ScrollSpy:Es,Tab:Vs,Toast:ro,Tooltip:cs}}));
7
+ //# sourceMappingURL=bootstrap.bundle.min.js.map
site_libs/clipboard/clipboard.min.js ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * clipboard.js v2.0.11
3
+ * https://clipboardjs.com/
4
+ *
5
+ * Licensed MIT © Zeno Rocha
6
+ */
7
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c("cut"),t};function o(t,e){var n,o,t=(n=t,o="rtl"===document.documentElement.getAttribute("dir"),(t=document.createElement("textarea")).style.fontSize="12pt",t.style.border="0",t.style.padding="0",t.style.margin="0",t.style.position="absolute",t.style[o?"right":"left"]="-9999px",o=window.pageYOffset||document.documentElement.scrollTop,t.style.top="".concat(o,"px"),t.setAttribute("readonly",""),t.value=n,t);return e.container.appendChild(t),e=r()(t),c("copy"),t.remove(),e}var f=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{container:document.body},n="";return"string"==typeof t?n=o(t,e):t instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(null==t?void 0:t.type)?n=o(t.value,e):(n=r()(t),c("copy")),n};function l(t){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var s=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},e=t.action,n=void 0===e?"copy":e,o=t.container,e=t.target,t=t.text;if("copy"!==n&&"cut"!==n)throw new Error('Invalid "action" value, use either "copy" or "cut"');if(void 0!==e){if(!e||"object"!==l(e)||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===n&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===n&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes')}return t?f(t,{container:o}):e?"cut"===n?a(e):f(e,{container:o}):void 0};function p(t){return(p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function d(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function y(t,e){return(y=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(n){var o=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=v(n);return t=o?(t=v(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments),e=this,!(t=t)||"object"!==p(t)&&"function"!=typeof t?function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}}function v(t){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function m(t,e){t="data-clipboard-".concat(t);if(e.hasAttribute(t))return e.getAttribute(t)}var b=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&y(t,e)}(r,i());var t,e,n,o=h(r);function r(t,e){var n;return function(t){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this),(n=o.call(this)).resolveOptions(e),n.listenClick(t),n}return t=r,n=[{key:"copy",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{container:document.body};return f(t,e)}},{key:"cut",value:function(t){return a(t)}},{key:"isSupported",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:["copy","cut"],t="string"==typeof t?[t]:t,e=!!document.queryCommandSupported;return t.forEach(function(t){e=e&&!!document.queryCommandSupported(t)}),e}}],(e=[{key:"resolveOptions",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===p(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=u()(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget,n=this.action(e)||"copy",t=s({action:n,container:this.container,target:this.target(e),text:this.text(e)});this.emit(t?"success":"error",{action:n,text:t,trigger:e,clearSelection:function(){e&&e.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(t){return m("action",t)}},{key:"defaultTarget",value:function(t){t=m("target",t);if(t)return document.querySelector(t)}},{key:"defaultText",value:function(t){return m("text",t)}},{key:"destroy",value:function(){this.listener.destroy()}}])&&d(t.prototype,e),n&&d(t,n),r}()},828:function(t){var e;"undefined"==typeof Element||Element.prototype.matches||((e=Element.prototype).matches=e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector),t.exports=function(t,e){for(;t&&9!==t.nodeType;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}},438:function(t,e,n){var u=n(828);function i(t,e,n,o,r){var i=function(e,n,t,o){return function(t){t.delegateTarget=u(t.target,n),t.delegateTarget&&o.call(e,t)}}.apply(this,arguments);return t.addEventListener(n,i,r),{destroy:function(){t.removeEventListener(n,i,r)}}}t.exports=function(t,e,n,o,r){return"function"==typeof t.addEventListener?i.apply(null,arguments):"function"==typeof n?i.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return i(t,e,n,o,r)}))}},879:function(t,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},370:function(t,e,n){var f=n(879),l=n(438);t.exports=function(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!f.string(e))throw new TypeError("Second argument must be a String");if(!f.fn(n))throw new TypeError("Third argument must be a Function");if(f.node(t))return c=e,a=n,(u=t).addEventListener(c,a),{destroy:function(){u.removeEventListener(c,a)}};if(f.nodeList(t))return o=t,r=e,i=n,Array.prototype.forEach.call(o,function(t){t.addEventListener(r,i)}),{destroy:function(){Array.prototype.forEach.call(o,function(t){t.removeEventListener(r,i)})}};if(f.string(t))return t=t,e=e,n=n,l(document.body,t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList");var o,r,i,u,c,a}},817:function(t){t.exports=function(t){var e,n="SELECT"===t.nodeName?(t.focus(),t.value):"INPUT"===t.nodeName||"TEXTAREA"===t.nodeName?((e=t.hasAttribute("readonly"))||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),e||t.removeAttribute("readonly"),t.value):(t.hasAttribute("contenteditable")&&t.focus(),n=window.getSelection(),(e=document.createRange()).selectNodeContents(t),n.removeAllRanges(),n.addRange(e),n.toString());return n}},279:function(t){function e(){}e.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function r(){o.off(t,r),e.apply(n,arguments)}return r._=e,this.on(t,r,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;o<r;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],r=[];if(o&&e)for(var i=0,u=o.length;i<u;i++)o[i].fn!==e&&o[i].fn._!==e&&r.push(o[i]);return r.length?n[t]=r:delete n[t],this}},t.exports=e,t.exports.TinyEmitter=e}},r={},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,{a:e}),e},o.d=function(t,e){for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o(686).default;function o(t){if(r[t])return r[t].exports;var e=r[t]={exports:{}};return n[t](e,e.exports,o),e.exports}var n,r});
site_libs/quarto-html/anchor.min.js ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ // @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat
2
+ //
3
+ // AnchorJS - v5.0.0 - 2023-01-18
4
+ // https://www.bryanbraun.com/anchorjs/
5
+ // Copyright (c) 2023 Bryan Braun; Licensed MIT
6
+ //
7
+ // @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat
8
+ !function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(globalThis,function(){"use strict";return function(A){function u(A){A.icon=Object.prototype.hasOwnProperty.call(A,"icon")?A.icon:"",A.visible=Object.prototype.hasOwnProperty.call(A,"visible")?A.visible:"hover",A.placement=Object.prototype.hasOwnProperty.call(A,"placement")?A.placement:"right",A.ariaLabel=Object.prototype.hasOwnProperty.call(A,"ariaLabel")?A.ariaLabel:"Anchor",A.class=Object.prototype.hasOwnProperty.call(A,"class")?A.class:"",A.base=Object.prototype.hasOwnProperty.call(A,"base")?A.base:"",A.truncate=Object.prototype.hasOwnProperty.call(A,"truncate")?Math.floor(A.truncate):64,A.titleText=Object.prototype.hasOwnProperty.call(A,"titleText")?A.titleText:""}function d(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new TypeError("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}this.options=A||{},this.elements=[],u(this.options),this.add=function(A){var e,t,o,i,n,s,a,r,l,c,h,p=[];if(u(this.options),0!==(e=d(A=A||"h2, h3, h4, h5, h6")).length){for(null===document.head.querySelector("style.anchorjs")&&((A=document.createElement("style")).className="anchorjs",A.appendChild(document.createTextNode("")),void 0===(h=document.head.querySelector('[rel="stylesheet"],style'))?document.head.appendChild(A):document.head.insertBefore(A,h),A.sheet.insertRule(".anchorjs-link{opacity:0;text-decoration:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}",A.sheet.cssRules.length),A.sheet.insertRule(":hover>.anchorjs-link,.anchorjs-link:focus{opacity:1}",A.sheet.cssRules.length),A.sheet.insertRule("[data-anchorjs-icon]::after{content:attr(data-anchorjs-icon)}",A.sheet.cssRules.length),A.sheet.insertRule('@font-face{font-family:anchorjs-icons;src:url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype")}',A.sheet.cssRules.length)),h=document.querySelectorAll("[id]"),t=[].map.call(h,function(A){return A.id}),i=0;i<e.length;i++)if(this.hasAnchorJSLink(e[i]))p.push(i);else{if(e[i].hasAttribute("id"))o=e[i].getAttribute("id");else if(e[i].hasAttribute("data-anchor-id"))o=e[i].getAttribute("data-anchor-id");else{for(r=a=this.urlify(e[i].textContent),s=0;n=t.indexOf(r=void 0!==n?a+"-"+s:r),s+=1,-1!==n;);n=void 0,t.push(r),e[i].setAttribute("id",r),o=r}(l=document.createElement("a")).className="anchorjs-link "+this.options.class,l.setAttribute("aria-label",this.options.ariaLabel),l.setAttribute("data-anchorjs-icon",this.options.icon),this.options.titleText&&(l.title=this.options.titleText),c=document.querySelector("base")?window.location.pathname+window.location.search:"",c=this.options.base||c,l.href=c+"#"+o,"always"===this.options.visible&&(l.style.opacity="1"),""===this.options.icon&&(l.style.font="1em/1 anchorjs-icons","left"===this.options.placement)&&(l.style.lineHeight="inherit"),"left"===this.options.placement?(l.style.position="absolute",l.style.marginLeft="-1.25em",l.style.paddingRight=".25em",l.style.paddingLeft=".25em",e[i].insertBefore(l,e[i].firstChild)):(l.style.marginLeft=".1875em",l.style.paddingRight=".1875em",l.style.paddingLeft=".1875em",e[i].appendChild(l))}for(i=0;i<p.length;i++)e.splice(p[i]-i,1);this.elements=this.elements.concat(e)}return this},this.remove=function(A){for(var e,t,o=d(A),i=0;i<o.length;i++)(t=o[i].querySelector(".anchorjs-link"))&&(-1!==(e=this.elements.indexOf(o[i]))&&this.elements.splice(e,1),o[i].removeChild(t));return this},this.removeAll=function(){this.remove(this.elements)},this.urlify=function(A){var e=document.createElement("textarea");return e.innerHTML=A,A=e.value,this.options.truncate||u(this.options),A.trim().replace(/'/gi,"").replace(/[& +$,:;=?@"#{}|^~[`%!'<>\]./()*\\\n\t\b\v\u00A0]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),A=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||A||!1}}});
9
+ // @license-end
site_libs/quarto-html/axe/axe-check.js ADDED
@@ -0,0 +1,145 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class QuartoAxeReporter {
2
+ constructor(axeResult, options) {
3
+ this.axeResult = axeResult;
4
+ this.options = options;
5
+ }
6
+
7
+ report() {
8
+ throw new Error("report() is an abstract method");
9
+ }
10
+ }
11
+
12
+ class QuartoAxeJsonReporter extends QuartoAxeReporter {
13
+ constructor(axeResult, options) {
14
+ super(axeResult, options);
15
+ }
16
+
17
+ report() {
18
+ console.log(JSON.stringify(this.axeResult, null, 2));
19
+ }
20
+ }
21
+
22
+ class QuartoAxeConsoleReporter extends QuartoAxeReporter {
23
+ constructor(axeResult, options) {
24
+ super(axeResult, options);
25
+ }
26
+
27
+ report() {
28
+ for (const violation of this.axeResult.violations) {
29
+ console.log(violation.description);
30
+ for (const node of violation.nodes) {
31
+ for (const target of node.target) {
32
+ console.log(target);
33
+ console.log(document.querySelector(target));
34
+ }
35
+ }
36
+ }
37
+ }
38
+ }
39
+
40
+ class QuartoAxeDocumentReporter extends QuartoAxeReporter {
41
+ constructor(axeResult, options) {
42
+ super(axeResult, options);
43
+ }
44
+
45
+ createViolationElement(violation) {
46
+ const violationElement = document.createElement("div");
47
+
48
+ const descriptionElement = document.createElement("div");
49
+ descriptionElement.className = "quarto-axe-violation-description";
50
+ descriptionElement.innerText = `${violation.impact.replace(/^[a-z]/, match => match.toLocaleUpperCase())}: ${violation.description}`;
51
+ violationElement.appendChild(descriptionElement);
52
+
53
+ const helpElement = document.createElement("div");
54
+ helpElement.className = "quarto-axe-violation-help";
55
+ helpElement.innerText = violation.help;
56
+ violationElement.appendChild(helpElement);
57
+
58
+ const nodesElement = document.createElement("div");
59
+ nodesElement.className = "quarto-axe-violation-nodes";
60
+ violationElement.appendChild(nodesElement);
61
+ const nodeElement = document.createElement("div");
62
+ nodeElement.className = "quarto-axe-violation-selector";
63
+ for (const node of violation.nodes) {
64
+ for (const target of node.target) {
65
+ const targetElement = document.createElement("span");
66
+ targetElement.className = "quarto-axe-violation-target";
67
+ targetElement.innerText = target;
68
+ nodeElement.appendChild(targetElement);
69
+ nodeElement.addEventListener("mouseenter", () => {
70
+ const element = document.querySelector(target);
71
+ if (element) {
72
+ element.scrollIntoView({ behavior: "smooth", block: "center" });
73
+ element.classList.add("quarto-axe-hover-highlight");
74
+ setTimeout(() => {
75
+ element.style.border = "";
76
+ }, 2000);
77
+ }
78
+ });
79
+ nodeElement.addEventListener("mouseleave", () => {
80
+ const element = document.querySelector(target);
81
+ if (element) {
82
+ element.classList.remove("quarto-axe-hover-highlight");
83
+ }
84
+ });
85
+ nodeElement.addEventListener("click", () => {
86
+ console.log(document.querySelector(target));
87
+ });
88
+ nodeElement.appendChild(targetElement);
89
+ }
90
+ nodesElement.appendChild(nodeElement);
91
+ }
92
+ return violationElement;
93
+ }
94
+
95
+ report() {
96
+ const violations = this.axeResult.violations;
97
+ const reportElement = document.createElement("div");
98
+ reportElement.className = "quarto-axe-report";
99
+ if (violations.length === 0) {
100
+ const noViolationsElement = document.createElement("div");
101
+ noViolationsElement.className = "quarto-axe-no-violations";
102
+ noViolationsElement.innerText = "No axe-core violations found.";
103
+ reportElement.appendChild(noViolationsElement);
104
+ }
105
+ violations.forEach((violation) => {
106
+ reportElement.appendChild(this.createViolationElement(violation));
107
+ });
108
+ document.querySelector("main").appendChild(reportElement);
109
+ }
110
+ }
111
+
112
+ const reporters = {
113
+ json: QuartoAxeJsonReporter,
114
+ console: QuartoAxeConsoleReporter,
115
+ document: QuartoAxeDocumentReporter,
116
+ };
117
+
118
+ class QuartoAxeChecker {
119
+ constructor(opts) {
120
+ this.options = opts;
121
+ }
122
+ async init() {
123
+ const axe = (await import("https://cdn.skypack.dev/pin/axe-core@v4.10.3-aVOFXWsJaCpVrtv89pCa/mode=imports,min/optimized/axe-core.js")).default;
124
+ const result = await axe.run({
125
+ exclude: [
126
+ // https://github.com/microsoft/tabster/issues/288
127
+ // MS has claimed they won't fix this, so we need to add an exclusion to
128
+ // all tabster elements
129
+ "[data-tabster-dummy]"
130
+ ],
131
+ preload: { assets: ['cssom'], timeout: 50000 }
132
+ });
133
+ const reporter = this.options === true ? new QuartoAxeConsoleReporter(result) : new reporters[this.options.output](result, this.options);
134
+ reporter.report();
135
+ }
136
+ }
137
+
138
+ export async function init() {
139
+ const opts = document.querySelector("#quarto-axe-checker-options");
140
+ if (opts) {
141
+ const jsonOptions = JSON.parse(atob(opts.textContent));
142
+ const checker = new QuartoAxeChecker(jsonOptions);
143
+ await checker.init();
144
+ }
145
+ }
site_libs/quarto-html/popper.min.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ /**
2
+ * @popperjs/core v2.11.7 - MIT License
3
+ */
4
+
5
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";function t(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function n(e){return e instanceof t(e).Element||e instanceof Element}function r(e){return e instanceof t(e).HTMLElement||e instanceof HTMLElement}function o(e){return"undefined"!=typeof ShadowRoot&&(e instanceof t(e).ShadowRoot||e instanceof ShadowRoot)}var i=Math.max,a=Math.min,s=Math.round;function f(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function c(){return!/^((?!chrome|android).)*safari/i.test(f())}function p(e,o,i){void 0===o&&(o=!1),void 0===i&&(i=!1);var a=e.getBoundingClientRect(),f=1,p=1;o&&r(e)&&(f=e.offsetWidth>0&&s(a.width)/e.offsetWidth||1,p=e.offsetHeight>0&&s(a.height)/e.offsetHeight||1);var u=(n(e)?t(e):window).visualViewport,l=!c()&&i,d=(a.left+(l&&u?u.offsetLeft:0))/f,h=(a.top+(l&&u?u.offsetTop:0))/p,m=a.width/f,v=a.height/p;return{width:m,height:v,top:h,right:d+m,bottom:h+v,left:d,x:d,y:h}}function u(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function l(e){return e?(e.nodeName||"").toLowerCase():null}function d(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function h(e){return p(d(e)).left+u(e).scrollLeft}function m(e){return t(e).getComputedStyle(e)}function v(e){var t=m(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function y(e,n,o){void 0===o&&(o=!1);var i,a,f=r(n),c=r(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),m=d(n),y=p(e,c,o),g={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(f||!f&&!o)&&(("body"!==l(n)||v(m))&&(g=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:u(i)),r(n)?((b=p(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):m&&(b.x=h(m))),{x:y.left+g.scrollLeft-b.x,y:y.top+g.scrollTop-b.y,width:y.width,height:y.height}}function g(e){var t=p(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function b(e){return"html"===l(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||d(e)}function x(e){return["html","body","#document"].indexOf(l(e))>=0?e.ownerDocument.body:r(e)&&v(e)?e:x(b(e))}function w(e,n){var r;void 0===n&&(n=[]);var o=x(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],v(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(w(b(s)))}function O(e){return["table","td","th"].indexOf(l(e))>=0}function j(e){return r(e)&&"fixed"!==m(e).position?e.offsetParent:null}function E(e){for(var n=t(e),i=j(e);i&&O(i)&&"static"===m(i).position;)i=j(i);return i&&("html"===l(i)||"body"===l(i)&&"static"===m(i).position)?n:i||function(e){var t=/firefox/i.test(f());if(/Trident/i.test(f())&&r(e)&&"fixed"===m(e).position)return null;var n=b(e);for(o(n)&&(n=n.host);r(n)&&["html","body"].indexOf(l(n))<0;){var i=m(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var D="top",A="bottom",L="right",P="left",M="auto",k=[D,A,L,P],W="start",B="end",H="viewport",T="popper",R=k.reduce((function(e,t){return e.concat([t+"-"+W,t+"-"+B])}),[]),S=[].concat(k,[M]).reduce((function(e,t){return e.concat([t,t+"-"+W,t+"-"+B])}),[]),V=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function q(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}function C(e){return e.split("-")[0]}function N(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&o(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function I(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function _(e,r,o){return r===H?I(function(e,n){var r=t(e),o=d(e),i=r.visualViewport,a=o.clientWidth,s=o.clientHeight,f=0,p=0;if(i){a=i.width,s=i.height;var u=c();(u||!u&&"fixed"===n)&&(f=i.offsetLeft,p=i.offsetTop)}return{width:a,height:s,x:f+h(e),y:p}}(e,o)):n(r)?function(e,t){var n=p(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(r,o):I(function(e){var t,n=d(e),r=u(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),f=-r.scrollLeft+h(e),c=-r.scrollTop;return"rtl"===m(o||n).direction&&(f+=i(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:s,x:f,y:c}}(d(e)))}function F(e,t,o,s){var f="clippingParents"===t?function(e){var t=w(b(e)),o=["absolute","fixed"].indexOf(m(e).position)>=0&&r(e)?E(e):e;return n(o)?t.filter((function(e){return n(e)&&N(e,o)&&"body"!==l(e)})):[]}(e):[].concat(t),c=[].concat(f,[o]),p=c[0],u=c.reduce((function(t,n){var r=_(e,n,s);return t.top=i(r.top,t.top),t.right=a(r.right,t.right),t.bottom=a(r.bottom,t.bottom),t.left=i(r.left,t.left),t}),_(e,p,s));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function U(e){return e.split("-")[1]}function z(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function X(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?C(o):null,a=o?U(o):null,s=n.x+n.width/2-r.width/2,f=n.y+n.height/2-r.height/2;switch(i){case D:t={x:s,y:n.y-r.height};break;case A:t={x:s,y:n.y+n.height};break;case L:t={x:n.x+n.width,y:f};break;case P:t={x:n.x-r.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?z(i):null;if(null!=c){var p="y"===c?"height":"width";switch(a){case W:t[c]=t[c]-(n[p]/2-r[p]/2);break;case B:t[c]=t[c]+(n[p]/2-r[p]/2)}}return t}function Y(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function G(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function J(e,t){void 0===t&&(t={});var r=t,o=r.placement,i=void 0===o?e.placement:o,a=r.strategy,s=void 0===a?e.strategy:a,f=r.boundary,c=void 0===f?"clippingParents":f,u=r.rootBoundary,l=void 0===u?H:u,h=r.elementContext,m=void 0===h?T:h,v=r.altBoundary,y=void 0!==v&&v,g=r.padding,b=void 0===g?0:g,x=Y("number"!=typeof b?b:G(b,k)),w=m===T?"reference":T,O=e.rects.popper,j=e.elements[y?w:m],E=F(n(j)?j:j.contextElement||d(e.elements.popper),c,l,s),P=p(e.elements.reference),M=X({reference:P,element:O,strategy:"absolute",placement:i}),W=I(Object.assign({},O,M)),B=m===T?W:P,R={top:E.top-B.top+x.top,bottom:B.bottom-E.bottom+x.bottom,left:E.left-B.left+x.left,right:B.right-E.right+x.right},S=e.modifiersData.offset;if(m===T&&S){var V=S[i];Object.keys(R).forEach((function(e){var t=[L,A].indexOf(e)>=0?1:-1,n=[D,A].indexOf(e)>=0?"y":"x";R[e]+=V[n]*t}))}return R}var K={placement:"bottom",modifiers:[],strategy:"absolute"};function Q(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some((function(e){return!(e&&"function"==typeof e.getBoundingClientRect)}))}function Z(e){void 0===e&&(e={});var t=e,r=t.defaultModifiers,o=void 0===r?[]:r,i=t.defaultOptions,a=void 0===i?K:i;return function(e,t,r){void 0===r&&(r=a);var i,s,f={placement:"bottom",orderedModifiers:[],options:Object.assign({},K,a),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},c=[],p=!1,u={state:f,setOptions:function(r){var i="function"==typeof r?r(f.options):r;l(),f.options=Object.assign({},a,f.options,i),f.scrollParents={reference:n(e)?w(e):e.contextElement?w(e.contextElement):[],popper:w(t)};var s,p,d=function(e){var t=q(e);return V.reduce((function(e,n){return e.concat(t.filter((function(e){return e.phase===n})))}),[])}((s=[].concat(o,f.options.modifiers),p=s.reduce((function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e}),{}),Object.keys(p).map((function(e){return p[e]}))));return f.orderedModifiers=d.filter((function(e){return e.enabled})),f.orderedModifiers.forEach((function(e){var t=e.name,n=e.options,r=void 0===n?{}:n,o=e.effect;if("function"==typeof o){var i=o({state:f,name:t,instance:u,options:r}),a=function(){};c.push(i||a)}})),u.update()},forceUpdate:function(){if(!p){var e=f.elements,t=e.reference,n=e.popper;if(Q(t,n)){f.rects={reference:y(t,E(n),"fixed"===f.options.strategy),popper:g(n)},f.reset=!1,f.placement=f.options.placement,f.orderedModifiers.forEach((function(e){return f.modifiersData[e.name]=Object.assign({},e.data)}));for(var r=0;r<f.orderedModifiers.length;r++)if(!0!==f.reset){var o=f.orderedModifiers[r],i=o.fn,a=o.options,s=void 0===a?{}:a,c=o.name;"function"==typeof i&&(f=i({state:f,options:s,name:c,instance:u})||f)}else f.reset=!1,r=-1}}},update:(i=function(){return new Promise((function(e){u.forceUpdate(),e(f)}))},function(){return s||(s=new Promise((function(e){Promise.resolve().then((function(){s=void 0,e(i())}))}))),s}),destroy:function(){l(),p=!0}};if(!Q(e,t))return u;function l(){c.forEach((function(e){return e()})),c=[]}return u.setOptions(r).then((function(e){!p&&r.onFirstUpdate&&r.onFirstUpdate(e)})),u}}var $={passive:!0};var ee={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var n=e.state,r=e.instance,o=e.options,i=o.scroll,a=void 0===i||i,s=o.resize,f=void 0===s||s,c=t(n.elements.popper),p=[].concat(n.scrollParents.reference,n.scrollParents.popper);return a&&p.forEach((function(e){e.addEventListener("scroll",r.update,$)})),f&&c.addEventListener("resize",r.update,$),function(){a&&p.forEach((function(e){e.removeEventListener("scroll",r.update,$)})),f&&c.removeEventListener("resize",r.update,$)}},data:{}};var te={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=X({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},ne={top:"auto",right:"auto",bottom:"auto",left:"auto"};function re(e){var n,r=e.popper,o=e.popperRect,i=e.placement,a=e.variation,f=e.offsets,c=e.position,p=e.gpuAcceleration,u=e.adaptive,l=e.roundOffsets,h=e.isFixed,v=f.x,y=void 0===v?0:v,g=f.y,b=void 0===g?0:g,x="function"==typeof l?l({x:y,y:b}):{x:y,y:b};y=x.x,b=x.y;var w=f.hasOwnProperty("x"),O=f.hasOwnProperty("y"),j=P,M=D,k=window;if(u){var W=E(r),H="clientHeight",T="clientWidth";if(W===t(r)&&"static"!==m(W=d(r)).position&&"absolute"===c&&(H="scrollHeight",T="scrollWidth"),W=W,i===D||(i===P||i===L)&&a===B)M=A,b-=(h&&W===k&&k.visualViewport?k.visualViewport.height:W[H])-o.height,b*=p?1:-1;if(i===P||(i===D||i===A)&&a===B)j=L,y-=(h&&W===k&&k.visualViewport?k.visualViewport.width:W[T])-o.width,y*=p?1:-1}var R,S=Object.assign({position:c},u&&ne),V=!0===l?function(e,t){var n=e.x,r=e.y,o=t.devicePixelRatio||1;return{x:s(n*o)/o||0,y:s(r*o)/o||0}}({x:y,y:b},t(r)):{x:y,y:b};return y=V.x,b=V.y,p?Object.assign({},S,((R={})[M]=O?"0":"",R[j]=w?"0":"",R.transform=(k.devicePixelRatio||1)<=1?"translate("+y+"px, "+b+"px)":"translate3d("+y+"px, "+b+"px, 0)",R)):Object.assign({},S,((n={})[M]=O?b+"px":"",n[j]=w?y+"px":"",n.transform="",n))}var oe={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,r=n.gpuAcceleration,o=void 0===r||r,i=n.adaptive,a=void 0===i||i,s=n.roundOffsets,f=void 0===s||s,c={placement:C(t.placement),variation:U(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,re(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:f})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,re(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:f})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}};var ie={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},i=t.elements[e];r(i)&&l(i)&&(Object.assign(i.style,n),Object.keys(o).forEach((function(e){var t=o[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var o=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});r(o)&&l(o)&&(Object.assign(o.style,a),Object.keys(i).forEach((function(e){o.removeAttribute(e)})))}))}},requires:["computeStyles"]};var ae={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.offset,i=void 0===o?[0,0]:o,a=S.reduce((function(e,n){return e[n]=function(e,t,n){var r=C(e),o=[P,D].indexOf(r)>=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[P,L].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],f=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},se={left:"right",right:"left",bottom:"top",top:"bottom"};function fe(e){return e.replace(/left|right|bottom|top/g,(function(e){return se[e]}))}var ce={start:"end",end:"start"};function pe(e){return e.replace(/start|end/g,(function(e){return ce[e]}))}function ue(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=void 0===f?S:f,p=U(r),u=p?s?R:R.filter((function(e){return U(e)===p})):k,l=u.filter((function(e){return c.indexOf(e)>=0}));0===l.length&&(l=u);var d=l.reduce((function(t,n){return t[n]=J(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[C(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}var le={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,f=n.fallbackPlacements,c=n.padding,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.flipVariations,h=void 0===d||d,m=n.allowedAutoPlacements,v=t.options.placement,y=C(v),g=f||(y===v||!h?[fe(v)]:function(e){if(C(e)===M)return[];var t=fe(e);return[pe(e),t,pe(t)]}(v)),b=[v].concat(g).reduce((function(e,n){return e.concat(C(n)===M?ue(t,{placement:n,boundary:p,rootBoundary:u,padding:c,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),x=t.rects.reference,w=t.rects.popper,O=new Map,j=!0,E=b[0],k=0;k<b.length;k++){var B=b[k],H=C(B),T=U(B)===W,R=[D,A].indexOf(H)>=0,S=R?"width":"height",V=J(t,{placement:B,boundary:p,rootBoundary:u,altBoundary:l,padding:c}),q=R?T?L:P:T?A:D;x[S]>w[S]&&(q=fe(q));var N=fe(q),I=[];if(i&&I.push(V[H]<=0),s&&I.push(V[q]<=0,V[N]<=0),I.every((function(e){return e}))){E=B,j=!1;break}O.set(B,I)}if(j)for(var _=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return E=t,"break"},F=h?3:1;F>0;F--){if("break"===_(F))break}t.placement!==E&&(t.modifiersData[r]._skip=!0,t.placement=E,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function de(e,t,n){return i(e,a(t,n))}var he={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=void 0===o||o,f=n.altAxis,c=void 0!==f&&f,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.padding,h=n.tether,m=void 0===h||h,v=n.tetherOffset,y=void 0===v?0:v,b=J(t,{boundary:p,rootBoundary:u,padding:d,altBoundary:l}),x=C(t.placement),w=U(t.placement),O=!w,j=z(x),M="x"===j?"y":"x",k=t.modifiersData.popperOffsets,B=t.rects.reference,H=t.rects.popper,T="function"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,R="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,V={x:0,y:0};if(k){if(s){var q,N="y"===j?D:P,I="y"===j?A:L,_="y"===j?"height":"width",F=k[j],X=F+b[N],Y=F-b[I],G=m?-H[_]/2:0,K=w===W?B[_]:H[_],Q=w===W?-H[_]:-B[_],Z=t.elements.arrow,$=m&&Z?g(Z):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[N],ne=ee[I],re=de(0,B[_],$[_]),oe=O?B[_]/2-G-re-te-R.mainAxis:K-re-te-R.mainAxis,ie=O?-B[_]/2+G+re+ne+R.mainAxis:Q+re+ne+R.mainAxis,ae=t.elements.arrow&&E(t.elements.arrow),se=ae?"y"===j?ae.clientTop||0:ae.clientLeft||0:0,fe=null!=(q=null==S?void 0:S[j])?q:0,ce=F+ie-fe,pe=de(m?a(X,F+oe-fe-se):X,F,m?i(Y,ce):Y);k[j]=pe,V[j]=pe-F}if(c){var ue,le="x"===j?D:P,he="x"===j?A:L,me=k[M],ve="y"===M?"height":"width",ye=me+b[le],ge=me-b[he],be=-1!==[D,P].indexOf(x),xe=null!=(ue=null==S?void 0:S[M])?ue:0,we=be?ye:me-B[ve]-H[ve]-xe+R.altAxis,Oe=be?me+B[ve]+H[ve]-xe-R.altAxis:ge,je=m&&be?function(e,t,n){var r=de(e,t,n);return r>n?n:r}(we,me,Oe):de(m?we:ye,me,m?Oe:ge);k[M]=je,V[M]=je-me}t.modifiersData[r]=V}},requiresIfExists:["offset"]};var me={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=C(n.placement),f=z(s),c=[P,L].indexOf(s)>=0?"height":"width";if(i&&a){var p=function(e,t){return Y("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:G(e,k))}(o.padding,n),u=g(i),l="y"===f?D:P,d="y"===f?A:L,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],m=a[f]-n.rects.reference[f],v=E(i),y=v?"y"===f?v.clientHeight||0:v.clientWidth||0:0,b=h/2-m/2,x=p[l],w=y-u[c]-p[d],O=y/2-u[c]/2+b,j=de(x,O,w),M=f;n.modifiersData[r]=((t={})[M]=j,t.centerOffset=j-O,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&N(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ve(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ye(e){return[D,L,A,P].some((function(t){return e[t]>=0}))}var ge={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=J(t,{elementContext:"reference"}),s=J(t,{altBoundary:!0}),f=ve(a,r),c=ve(s,o,i),p=ye(f),u=ye(c);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":u})}},be=Z({defaultModifiers:[ee,te,oe,ie]}),xe=[ee,te,oe,ie,ae,le,he,me,ge],we=Z({defaultModifiers:xe});e.applyStyles=ie,e.arrow=me,e.computeStyles=oe,e.createPopper=we,e.createPopperLite=be,e.defaultModifiers=xe,e.detectOverflow=J,e.eventListeners=ee,e.flip=le,e.hide=ge,e.offset=ae,e.popperGenerator=Z,e.popperOffsets=te,e.preventOverflow=he,Object.defineProperty(e,"__esModule",{value:!0})}));
6
+
site_libs/quarto-html/quarto-syntax-highlighting-ed96de9b727972fe78a7b5d16c58bf87.css ADDED
@@ -0,0 +1,236 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* quarto syntax highlight colors */
2
+ :root {
3
+ --quarto-hl-ot-color: #003B4F;
4
+ --quarto-hl-at-color: #657422;
5
+ --quarto-hl-ss-color: #20794D;
6
+ --quarto-hl-an-color: #5E5E5E;
7
+ --quarto-hl-fu-color: #4758AB;
8
+ --quarto-hl-st-color: #20794D;
9
+ --quarto-hl-cf-color: #003B4F;
10
+ --quarto-hl-op-color: #5E5E5E;
11
+ --quarto-hl-er-color: #AD0000;
12
+ --quarto-hl-bn-color: #AD0000;
13
+ --quarto-hl-al-color: #AD0000;
14
+ --quarto-hl-va-color: #111111;
15
+ --quarto-hl-bu-color: inherit;
16
+ --quarto-hl-ex-color: inherit;
17
+ --quarto-hl-pp-color: #AD0000;
18
+ --quarto-hl-in-color: #5E5E5E;
19
+ --quarto-hl-vs-color: #20794D;
20
+ --quarto-hl-wa-color: #5E5E5E;
21
+ --quarto-hl-do-color: #5E5E5E;
22
+ --quarto-hl-im-color: #00769E;
23
+ --quarto-hl-ch-color: #20794D;
24
+ --quarto-hl-dt-color: #AD0000;
25
+ --quarto-hl-fl-color: #AD0000;
26
+ --quarto-hl-co-color: #5E5E5E;
27
+ --quarto-hl-cv-color: #5E5E5E;
28
+ --quarto-hl-cn-color: #8f5902;
29
+ --quarto-hl-sc-color: #5E5E5E;
30
+ --quarto-hl-dv-color: #AD0000;
31
+ --quarto-hl-kw-color: #003B4F;
32
+ }
33
+
34
+ /* other quarto variables */
35
+ :root {
36
+ --quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
37
+ }
38
+
39
+ /* syntax highlight based on Pandoc's rules */
40
+ pre > code.sourceCode > span {
41
+ color: #003B4F;
42
+ }
43
+
44
+ code.sourceCode > span {
45
+ color: #003B4F;
46
+ }
47
+
48
+ div.sourceCode,
49
+ div.sourceCode pre.sourceCode {
50
+ color: #003B4F;
51
+ }
52
+
53
+ /* Normal */
54
+ code span {
55
+ color: #003B4F;
56
+ }
57
+
58
+ /* Alert */
59
+ code span.al {
60
+ color: #AD0000;
61
+ font-style: inherit;
62
+ }
63
+
64
+ /* Annotation */
65
+ code span.an {
66
+ color: #5E5E5E;
67
+ font-style: inherit;
68
+ }
69
+
70
+ /* Attribute */
71
+ code span.at {
72
+ color: #657422;
73
+ font-style: inherit;
74
+ }
75
+
76
+ /* BaseN */
77
+ code span.bn {
78
+ color: #AD0000;
79
+ font-style: inherit;
80
+ }
81
+
82
+ /* BuiltIn */
83
+ code span.bu {
84
+ font-style: inherit;
85
+ }
86
+
87
+ /* ControlFlow */
88
+ code span.cf {
89
+ color: #003B4F;
90
+ font-weight: bold;
91
+ font-style: inherit;
92
+ }
93
+
94
+ /* Char */
95
+ code span.ch {
96
+ color: #20794D;
97
+ font-style: inherit;
98
+ }
99
+
100
+ /* Constant */
101
+ code span.cn {
102
+ color: #8f5902;
103
+ font-style: inherit;
104
+ }
105
+
106
+ /* Comment */
107
+ code span.co {
108
+ color: #5E5E5E;
109
+ font-style: inherit;
110
+ }
111
+
112
+ /* CommentVar */
113
+ code span.cv {
114
+ color: #5E5E5E;
115
+ font-style: italic;
116
+ }
117
+
118
+ /* Documentation */
119
+ code span.do {
120
+ color: #5E5E5E;
121
+ font-style: italic;
122
+ }
123
+
124
+ /* DataType */
125
+ code span.dt {
126
+ color: #AD0000;
127
+ font-style: inherit;
128
+ }
129
+
130
+ /* DecVal */
131
+ code span.dv {
132
+ color: #AD0000;
133
+ font-style: inherit;
134
+ }
135
+
136
+ /* Error */
137
+ code span.er {
138
+ color: #AD0000;
139
+ font-style: inherit;
140
+ }
141
+
142
+ /* Extension */
143
+ code span.ex {
144
+ font-style: inherit;
145
+ }
146
+
147
+ /* Float */
148
+ code span.fl {
149
+ color: #AD0000;
150
+ font-style: inherit;
151
+ }
152
+
153
+ /* Function */
154
+ code span.fu {
155
+ color: #4758AB;
156
+ font-style: inherit;
157
+ }
158
+
159
+ /* Import */
160
+ code span.im {
161
+ color: #00769E;
162
+ font-style: inherit;
163
+ }
164
+
165
+ /* Information */
166
+ code span.in {
167
+ color: #5E5E5E;
168
+ font-style: inherit;
169
+ }
170
+
171
+ /* Keyword */
172
+ code span.kw {
173
+ color: #003B4F;
174
+ font-weight: bold;
175
+ font-style: inherit;
176
+ }
177
+
178
+ /* Operator */
179
+ code span.op {
180
+ color: #5E5E5E;
181
+ font-style: inherit;
182
+ }
183
+
184
+ /* Other */
185
+ code span.ot {
186
+ color: #003B4F;
187
+ font-style: inherit;
188
+ }
189
+
190
+ /* Preprocessor */
191
+ code span.pp {
192
+ color: #AD0000;
193
+ font-style: inherit;
194
+ }
195
+
196
+ /* SpecialChar */
197
+ code span.sc {
198
+ color: #5E5E5E;
199
+ font-style: inherit;
200
+ }
201
+
202
+ /* SpecialString */
203
+ code span.ss {
204
+ color: #20794D;
205
+ font-style: inherit;
206
+ }
207
+
208
+ /* String */
209
+ code span.st {
210
+ color: #20794D;
211
+ font-style: inherit;
212
+ }
213
+
214
+ /* Variable */
215
+ code span.va {
216
+ color: #111111;
217
+ font-style: inherit;
218
+ }
219
+
220
+ /* VerbatimString */
221
+ code span.vs {
222
+ color: #20794D;
223
+ font-style: inherit;
224
+ }
225
+
226
+ /* Warning */
227
+ code span.wa {
228
+ color: #5E5E5E;
229
+ font-style: italic;
230
+ }
231
+
232
+ .prevent-inlining {
233
+ content: "</";
234
+ }
235
+
236
+ /*# sourceMappingURL=0920dd6d7437995b8cdf7429764427b1.css.map */
site_libs/quarto-html/quarto.js ADDED
@@ -0,0 +1,847 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import * as tabsets from "./tabsets/tabsets.js";
2
+ import * as axe from "./axe/axe-check.js";
3
+
4
+ const sectionChanged = new CustomEvent("quarto-sectionChanged", {
5
+ detail: {},
6
+ bubbles: true,
7
+ cancelable: false,
8
+ composed: false,
9
+ });
10
+
11
+ const layoutMarginEls = () => {
12
+ // Find any conflicting margin elements and add margins to the
13
+ // top to prevent overlap
14
+ const marginChildren = window.document.querySelectorAll(
15
+ ".column-margin.column-container > *, .margin-caption, .aside"
16
+ );
17
+
18
+ let lastBottom = 0;
19
+ for (const marginChild of marginChildren) {
20
+ if (marginChild.offsetParent !== null) {
21
+ // clear the top margin so we recompute it
22
+ marginChild.style.marginTop = null;
23
+ const top = marginChild.getBoundingClientRect().top + window.scrollY;
24
+ if (top < lastBottom) {
25
+ const marginChildStyle = window.getComputedStyle(marginChild);
26
+ const marginBottom = parseFloat(marginChildStyle["marginBottom"]);
27
+ const margin = lastBottom - top + marginBottom;
28
+ marginChild.style.marginTop = `${margin}px`;
29
+ }
30
+ const styles = window.getComputedStyle(marginChild);
31
+ const marginTop = parseFloat(styles["marginTop"]);
32
+ lastBottom = top + marginChild.getBoundingClientRect().height + marginTop;
33
+ }
34
+ }
35
+ };
36
+
37
+ window.document.addEventListener("DOMContentLoaded", function (_event) {
38
+ // Recompute the position of margin elements anytime the body size changes
39
+ if (window.ResizeObserver) {
40
+ const resizeObserver = new window.ResizeObserver(
41
+ throttle(() => {
42
+ layoutMarginEls();
43
+ if (
44
+ window.document.body.getBoundingClientRect().width < 990 &&
45
+ isReaderMode()
46
+ ) {
47
+ quartoToggleReader();
48
+ }
49
+ }, 50)
50
+ );
51
+ resizeObserver.observe(window.document.body);
52
+ }
53
+
54
+ const tocEl = window.document.querySelector('nav.toc-active[role="doc-toc"]');
55
+ const sidebarEl = window.document.getElementById("quarto-sidebar");
56
+ const leftTocEl = window.document.getElementById("quarto-sidebar-toc-left");
57
+ const marginSidebarEl = window.document.getElementById(
58
+ "quarto-margin-sidebar"
59
+ );
60
+ // function to determine whether the element has a previous sibling that is active
61
+ const prevSiblingIsActiveLink = (el) => {
62
+ const sibling = el.previousElementSibling;
63
+ if (sibling && sibling.tagName === "A") {
64
+ return sibling.classList.contains("active");
65
+ } else {
66
+ return false;
67
+ }
68
+ };
69
+
70
+ // dispatch for htmlwidgets
71
+ // they use slideenter event to trigger resize
72
+ function fireSlideEnter() {
73
+ const event = window.document.createEvent("Event");
74
+ event.initEvent("slideenter", true, true);
75
+ window.document.dispatchEvent(event);
76
+ }
77
+
78
+ const tabs = window.document.querySelectorAll('a[data-bs-toggle="tab"]');
79
+ tabs.forEach((tab) => {
80
+ tab.addEventListener("shown.bs.tab", fireSlideEnter);
81
+ });
82
+
83
+ // dispatch for shiny
84
+ // they use BS shown and hidden events to trigger rendering
85
+ function distpatchShinyEvents(previous, current) {
86
+ if (window.jQuery) {
87
+ if (previous) {
88
+ window.jQuery(previous).trigger("hidden");
89
+ }
90
+ if (current) {
91
+ window.jQuery(current).trigger("shown");
92
+ }
93
+ }
94
+ }
95
+
96
+ // tabby.js listener: Trigger event for htmlwidget and shiny
97
+ document.addEventListener(
98
+ "tabby",
99
+ function (event) {
100
+ fireSlideEnter();
101
+ distpatchShinyEvents(event.detail.previousTab, event.detail.tab);
102
+ },
103
+ false
104
+ );
105
+
106
+ // Track scrolling and mark TOC links as active
107
+ // get table of contents and sidebar (bail if we don't have at least one)
108
+ const tocLinks = tocEl
109
+ ? [...tocEl.querySelectorAll("a[data-scroll-target]")]
110
+ : [];
111
+ const makeActive = (link) => tocLinks[link].classList.add("active");
112
+ const removeActive = (link) => tocLinks[link].classList.remove("active");
113
+ const removeAllActive = () =>
114
+ [...Array(tocLinks.length).keys()].forEach((link) => removeActive(link));
115
+
116
+ // activate the anchor for a section associated with this TOC entry
117
+ tocLinks.forEach((link) => {
118
+ link.addEventListener("click", () => {
119
+ if (link.href.indexOf("#") !== -1) {
120
+ const anchor = link.href.split("#")[1];
121
+ const heading = window.document.querySelector(
122
+ `[data-anchor-id="${anchor}"]`
123
+ );
124
+ if (heading) {
125
+ // Add the class
126
+ heading.classList.add("reveal-anchorjs-link");
127
+
128
+ // function to show the anchor
129
+ const handleMouseout = () => {
130
+ heading.classList.remove("reveal-anchorjs-link");
131
+ heading.removeEventListener("mouseout", handleMouseout);
132
+ };
133
+
134
+ // add a function to clear the anchor when the user mouses out of it
135
+ heading.addEventListener("mouseout", handleMouseout);
136
+ }
137
+ }
138
+ });
139
+ });
140
+
141
+ const sections = tocLinks.map((link) => {
142
+ const target = link.getAttribute("data-scroll-target");
143
+ if (target.startsWith("#")) {
144
+ return window.document.getElementById(decodeURI(`${target.slice(1)}`));
145
+ } else {
146
+ return window.document.querySelector(decodeURI(`${target}`));
147
+ }
148
+ });
149
+
150
+ const sectionMargin = 200;
151
+ let currentActive = 0;
152
+ // track whether we've initialized state the first time
153
+ let init = false;
154
+
155
+ const updateActiveLink = () => {
156
+ // The index from bottom to top (e.g. reversed list)
157
+ let sectionIndex = -1;
158
+ if (
159
+ window.innerHeight + window.pageYOffset >=
160
+ window.document.body.offsetHeight
161
+ ) {
162
+ // This is the no-scroll case where last section should be the active one
163
+ sectionIndex = 0;
164
+ } else {
165
+ // This finds the last section visible on screen that should be made active
166
+ sectionIndex = [...sections].reverse().findIndex((section) => {
167
+ if (section) {
168
+ return window.pageYOffset >= section.offsetTop - sectionMargin;
169
+ } else {
170
+ return false;
171
+ }
172
+ });
173
+ }
174
+ if (sectionIndex > -1) {
175
+ const current = sections.length - sectionIndex - 1;
176
+ if (current !== currentActive) {
177
+ removeAllActive();
178
+ currentActive = current;
179
+ makeActive(current);
180
+ if (init) {
181
+ window.dispatchEvent(sectionChanged);
182
+ }
183
+ init = true;
184
+ }
185
+ }
186
+ };
187
+
188
+ const inHiddenRegion = (top, bottom, hiddenRegions) => {
189
+ for (const region of hiddenRegions) {
190
+ if (top <= region.bottom && bottom >= region.top) {
191
+ return true;
192
+ }
193
+ }
194
+ return false;
195
+ };
196
+
197
+ const categorySelector = "header.quarto-title-block .quarto-category";
198
+ const activateCategories = (href) => {
199
+ // Find any categories
200
+ // Surround them with a link pointing back to:
201
+ // #category=Authoring
202
+ try {
203
+ const categoryEls = window.document.querySelectorAll(categorySelector);
204
+ for (const categoryEl of categoryEls) {
205
+ const categoryText = categoryEl.textContent;
206
+ if (categoryText) {
207
+ const link = `${href}#category=${encodeURIComponent(categoryText)}`;
208
+ const linkEl = window.document.createElement("a");
209
+ linkEl.setAttribute("href", link);
210
+ for (const child of categoryEl.childNodes) {
211
+ linkEl.append(child);
212
+ }
213
+ categoryEl.appendChild(linkEl);
214
+ }
215
+ }
216
+ } catch {
217
+ // Ignore errors
218
+ }
219
+ };
220
+ function hasTitleCategories() {
221
+ return window.document.querySelector(categorySelector) !== null;
222
+ }
223
+
224
+ function offsetRelativeUrl(url) {
225
+ const offset = getMeta("quarto:offset");
226
+ return offset ? offset + url : url;
227
+ }
228
+
229
+ function offsetAbsoluteUrl(url) {
230
+ const offset = getMeta("quarto:offset");
231
+ const baseUrl = new URL(offset, window.location);
232
+
233
+ const projRelativeUrl = url.replace(baseUrl, "");
234
+ if (projRelativeUrl.startsWith("/")) {
235
+ return projRelativeUrl;
236
+ } else {
237
+ return "/" + projRelativeUrl;
238
+ }
239
+ }
240
+
241
+ // read a meta tag value
242
+ function getMeta(metaName) {
243
+ const metas = window.document.getElementsByTagName("meta");
244
+ for (let i = 0; i < metas.length; i++) {
245
+ if (metas[i].getAttribute("name") === metaName) {
246
+ return metas[i].getAttribute("content");
247
+ }
248
+ }
249
+ return "";
250
+ }
251
+
252
+ async function findAndActivateCategories() {
253
+ // Categories search with listing only use path without query
254
+ const currentPagePath = offsetAbsoluteUrl(
255
+ window.location.origin + window.location.pathname
256
+ );
257
+ const response = await fetch(offsetRelativeUrl("listings.json"));
258
+ if (response.status == 200) {
259
+ return response.json().then(function (listingPaths) {
260
+ const listingHrefs = [];
261
+ for (const listingPath of listingPaths) {
262
+ const pathWithoutLeadingSlash = listingPath.listing.substring(1);
263
+ for (const item of listingPath.items) {
264
+ const encodedItem = encodeURI(item);
265
+ if (
266
+ encodedItem === currentPagePath ||
267
+ encodedItem === currentPagePath + "index.html"
268
+ ) {
269
+ // Resolve this path against the offset to be sure
270
+ // we already are using the correct path to the listing
271
+ // (this adjusts the listing urls to be rooted against
272
+ // whatever root the page is actually running against)
273
+ const relative = offsetRelativeUrl(pathWithoutLeadingSlash);
274
+ const baseUrl = window.location;
275
+ const resolvedPath = new URL(relative, baseUrl);
276
+ listingHrefs.push(resolvedPath.pathname);
277
+ break;
278
+ }
279
+ }
280
+ }
281
+
282
+ // Look up the tree for a nearby linting and use that if we find one
283
+ const nearestListing = findNearestParentListing(
284
+ offsetAbsoluteUrl(window.location.pathname),
285
+ listingHrefs
286
+ );
287
+ if (nearestListing) {
288
+ activateCategories(nearestListing);
289
+ } else {
290
+ // See if the referrer is a listing page for this item
291
+ const referredRelativePath = offsetAbsoluteUrl(document.referrer);
292
+ const referrerListing = listingHrefs.find((listingHref) => {
293
+ const isListingReferrer =
294
+ listingHref === referredRelativePath ||
295
+ listingHref === referredRelativePath + "index.html";
296
+ return isListingReferrer;
297
+ });
298
+
299
+ if (referrerListing) {
300
+ // Try to use the referrer if possible
301
+ activateCategories(referrerListing);
302
+ } else if (listingHrefs.length > 0) {
303
+ // Otherwise, just fall back to the first listing
304
+ activateCategories(listingHrefs[0]);
305
+ }
306
+ }
307
+ });
308
+ }
309
+ }
310
+ if (hasTitleCategories()) {
311
+ findAndActivateCategories();
312
+ }
313
+
314
+ const findNearestParentListing = (href, listingHrefs) => {
315
+ if (!href || !listingHrefs) {
316
+ return undefined;
317
+ }
318
+ // Look up the tree for a nearby linting and use that if we find one
319
+ const relativeParts = href.substring(1).split("/");
320
+ while (relativeParts.length > 0) {
321
+ const path = relativeParts.join("/");
322
+ for (const listingHref of listingHrefs) {
323
+ if (listingHref.startsWith(path)) {
324
+ return listingHref;
325
+ }
326
+ }
327
+ relativeParts.pop();
328
+ }
329
+
330
+ return undefined;
331
+ };
332
+
333
+ const manageSidebarVisiblity = (el, placeholderDescriptor) => {
334
+ let isVisible = true;
335
+ let elRect;
336
+
337
+ return (hiddenRegions) => {
338
+ if (el === null) {
339
+ return;
340
+ }
341
+
342
+ // Find the last element of the TOC
343
+ const lastChildEl = el.lastElementChild;
344
+
345
+ if (lastChildEl) {
346
+ // Converts the sidebar to a menu
347
+ const convertToMenu = () => {
348
+ for (const child of el.children) {
349
+ child.style.opacity = 0;
350
+ child.style.overflow = "hidden";
351
+ child.style.pointerEvents = "none";
352
+ }
353
+
354
+ nexttick(() => {
355
+ const toggleContainer = window.document.createElement("div");
356
+ toggleContainer.style.width = "100%";
357
+ toggleContainer.classList.add("zindex-over-content");
358
+ toggleContainer.classList.add("quarto-sidebar-toggle");
359
+ toggleContainer.classList.add("headroom-target"); // Marks this to be managed by headeroom
360
+ toggleContainer.id = placeholderDescriptor.id;
361
+ toggleContainer.style.position = "fixed";
362
+
363
+ const toggleIcon = window.document.createElement("i");
364
+ toggleIcon.classList.add("quarto-sidebar-toggle-icon");
365
+ toggleIcon.classList.add("bi");
366
+ toggleIcon.classList.add("bi-caret-down-fill");
367
+
368
+ const toggleTitle = window.document.createElement("div");
369
+ const titleEl = window.document.body.querySelector(
370
+ placeholderDescriptor.titleSelector
371
+ );
372
+ if (titleEl) {
373
+ toggleTitle.append(
374
+ titleEl.textContent || titleEl.innerText,
375
+ toggleIcon
376
+ );
377
+ }
378
+ toggleTitle.classList.add("zindex-over-content");
379
+ toggleTitle.classList.add("quarto-sidebar-toggle-title");
380
+ toggleContainer.append(toggleTitle);
381
+
382
+ const toggleContents = window.document.createElement("div");
383
+ toggleContents.classList = el.classList;
384
+ toggleContents.classList.add("zindex-over-content");
385
+ toggleContents.classList.add("quarto-sidebar-toggle-contents");
386
+ for (const child of el.children) {
387
+ if (child.id === "toc-title") {
388
+ continue;
389
+ }
390
+
391
+ const clone = child.cloneNode(true);
392
+ clone.style.opacity = 1;
393
+ clone.style.pointerEvents = null;
394
+ clone.style.display = null;
395
+ toggleContents.append(clone);
396
+ }
397
+ toggleContents.style.height = "0px";
398
+ const positionToggle = () => {
399
+ // position the element (top left of parent, same width as parent)
400
+ if (!elRect) {
401
+ elRect = el.getBoundingClientRect();
402
+ }
403
+ toggleContainer.style.left = `${elRect.left}px`;
404
+ toggleContainer.style.top = `${elRect.top}px`;
405
+ toggleContainer.style.width = `${elRect.width}px`;
406
+ };
407
+ positionToggle();
408
+
409
+ toggleContainer.append(toggleContents);
410
+ el.parentElement.prepend(toggleContainer);
411
+
412
+ // Process clicks
413
+ let tocShowing = false;
414
+ // Allow the caller to control whether this is dismissed
415
+ // when it is clicked (e.g. sidebar navigation supports
416
+ // opening and closing the nav tree, so don't dismiss on click)
417
+ const clickEl = placeholderDescriptor.dismissOnClick
418
+ ? toggleContainer
419
+ : toggleTitle;
420
+
421
+ const closeToggle = () => {
422
+ if (tocShowing) {
423
+ toggleContainer.classList.remove("expanded");
424
+ toggleContents.style.height = "0px";
425
+ tocShowing = false;
426
+ }
427
+ };
428
+
429
+ // Get rid of any expanded toggle if the user scrolls
430
+ window.document.addEventListener(
431
+ "scroll",
432
+ throttle(() => {
433
+ closeToggle();
434
+ }, 50)
435
+ );
436
+
437
+ // Handle positioning of the toggle
438
+ window.addEventListener(
439
+ "resize",
440
+ throttle(() => {
441
+ elRect = undefined;
442
+ positionToggle();
443
+ }, 50)
444
+ );
445
+
446
+ window.addEventListener("quarto-hrChanged", () => {
447
+ elRect = undefined;
448
+ });
449
+
450
+ // Process the click
451
+ clickEl.onclick = () => {
452
+ if (!tocShowing) {
453
+ toggleContainer.classList.add("expanded");
454
+ toggleContents.style.height = null;
455
+ tocShowing = true;
456
+ } else {
457
+ closeToggle();
458
+ }
459
+ };
460
+ });
461
+ };
462
+
463
+ // Converts a sidebar from a menu back to a sidebar
464
+ const convertToSidebar = () => {
465
+ for (const child of el.children) {
466
+ child.style.opacity = 1;
467
+ child.style.overflow = null;
468
+ child.style.pointerEvents = null;
469
+ }
470
+
471
+ const placeholderEl = window.document.getElementById(
472
+ placeholderDescriptor.id
473
+ );
474
+ if (placeholderEl) {
475
+ placeholderEl.remove();
476
+ }
477
+
478
+ el.classList.remove("rollup");
479
+ };
480
+
481
+ if (isReaderMode()) {
482
+ convertToMenu();
483
+ isVisible = false;
484
+ } else {
485
+ // Find the top and bottom o the element that is being managed
486
+ const elTop = el.offsetTop;
487
+ const elBottom =
488
+ elTop + lastChildEl.offsetTop + lastChildEl.offsetHeight;
489
+
490
+ if (!isVisible) {
491
+ // If the element is current not visible reveal if there are
492
+ // no conflicts with overlay regions
493
+ if (!inHiddenRegion(elTop, elBottom, hiddenRegions)) {
494
+ convertToSidebar();
495
+ isVisible = true;
496
+ }
497
+ } else {
498
+ // If the element is visible, hide it if it conflicts with overlay regions
499
+ // and insert a placeholder toggle (or if we're in reader mode)
500
+ if (inHiddenRegion(elTop, elBottom, hiddenRegions)) {
501
+ convertToMenu();
502
+ isVisible = false;
503
+ }
504
+ }
505
+ }
506
+ }
507
+ };
508
+ };
509
+
510
+ const tabEls = document.querySelectorAll('a[data-bs-toggle="tab"]');
511
+ for (const tabEl of tabEls) {
512
+ const id = tabEl.getAttribute("data-bs-target");
513
+ if (id) {
514
+ const columnEl = document.querySelector(
515
+ `${id} .column-margin, .tabset-margin-content`
516
+ );
517
+ if (columnEl)
518
+ tabEl.addEventListener("shown.bs.tab", function (event) {
519
+ const el = event.srcElement;
520
+ if (el) {
521
+ const visibleCls = `${el.id}-margin-content`;
522
+ // walk up until we find a parent tabset
523
+ let panelTabsetEl = el.parentElement;
524
+ while (panelTabsetEl) {
525
+ if (panelTabsetEl.classList.contains("panel-tabset")) {
526
+ break;
527
+ }
528
+ panelTabsetEl = panelTabsetEl.parentElement;
529
+ }
530
+
531
+ if (panelTabsetEl) {
532
+ const prevSib = panelTabsetEl.previousElementSibling;
533
+ if (
534
+ prevSib &&
535
+ prevSib.classList.contains("tabset-margin-container")
536
+ ) {
537
+ const childNodes = prevSib.querySelectorAll(
538
+ ".tabset-margin-content"
539
+ );
540
+ for (const childEl of childNodes) {
541
+ if (childEl.classList.contains(visibleCls)) {
542
+ childEl.classList.remove("collapse");
543
+ } else {
544
+ childEl.classList.add("collapse");
545
+ }
546
+ }
547
+ }
548
+ }
549
+ }
550
+
551
+ layoutMarginEls();
552
+ });
553
+ }
554
+ }
555
+
556
+ // Manage the visibility of the toc and the sidebar
557
+ const marginScrollVisibility = manageSidebarVisiblity(marginSidebarEl, {
558
+ id: "quarto-toc-toggle",
559
+ titleSelector: "#toc-title",
560
+ dismissOnClick: true,
561
+ });
562
+ const sidebarScrollVisiblity = manageSidebarVisiblity(sidebarEl, {
563
+ id: "quarto-sidebarnav-toggle",
564
+ titleSelector: ".title",
565
+ dismissOnClick: false,
566
+ });
567
+ let tocLeftScrollVisibility;
568
+ if (leftTocEl) {
569
+ tocLeftScrollVisibility = manageSidebarVisiblity(leftTocEl, {
570
+ id: "quarto-lefttoc-toggle",
571
+ titleSelector: "#toc-title",
572
+ dismissOnClick: true,
573
+ });
574
+ }
575
+
576
+ // Find the first element that uses formatting in special columns
577
+ const conflictingEls = window.document.body.querySelectorAll(
578
+ '[class^="column-"], [class*=" column-"], aside, [class*="margin-caption"], [class*=" margin-caption"], [class*="margin-ref"], [class*=" margin-ref"]'
579
+ );
580
+
581
+ // Filter all the possibly conflicting elements into ones
582
+ // the do conflict on the left or ride side
583
+ const arrConflictingEls = Array.from(conflictingEls);
584
+ const leftSideConflictEls = arrConflictingEls.filter((el) => {
585
+ if (el.tagName === "ASIDE") {
586
+ return false;
587
+ }
588
+ return Array.from(el.classList).find((className) => {
589
+ return (
590
+ className !== "column-body" &&
591
+ className.startsWith("column-") &&
592
+ !className.endsWith("right") &&
593
+ !className.endsWith("container") &&
594
+ className !== "column-margin"
595
+ );
596
+ });
597
+ });
598
+ const rightSideConflictEls = arrConflictingEls.filter((el) => {
599
+ if (el.tagName === "ASIDE") {
600
+ return true;
601
+ }
602
+
603
+ const hasMarginCaption = Array.from(el.classList).find((className) => {
604
+ return className == "margin-caption";
605
+ });
606
+ if (hasMarginCaption) {
607
+ return true;
608
+ }
609
+
610
+ return Array.from(el.classList).find((className) => {
611
+ return (
612
+ className !== "column-body" &&
613
+ !className.endsWith("container") &&
614
+ className.startsWith("column-") &&
615
+ !className.endsWith("left")
616
+ );
617
+ });
618
+ });
619
+
620
+ const kOverlapPaddingSize = 10;
621
+ function toRegions(els) {
622
+ return els.map((el) => {
623
+ const boundRect = el.getBoundingClientRect();
624
+ const top =
625
+ boundRect.top +
626
+ document.documentElement.scrollTop -
627
+ kOverlapPaddingSize;
628
+ return {
629
+ top,
630
+ bottom: top + el.scrollHeight + 2 * kOverlapPaddingSize,
631
+ };
632
+ });
633
+ }
634
+
635
+ let hasObserved = false;
636
+ const visibleItemObserver = (els) => {
637
+ let visibleElements = [...els];
638
+ const intersectionObserver = new IntersectionObserver(
639
+ (entries, _observer) => {
640
+ entries.forEach((entry) => {
641
+ if (entry.isIntersecting) {
642
+ if (visibleElements.indexOf(entry.target) === -1) {
643
+ visibleElements.push(entry.target);
644
+ }
645
+ } else {
646
+ visibleElements = visibleElements.filter((visibleEntry) => {
647
+ return visibleEntry !== entry;
648
+ });
649
+ }
650
+ });
651
+
652
+ if (!hasObserved) {
653
+ hideOverlappedSidebars();
654
+ }
655
+ hasObserved = true;
656
+ },
657
+ {}
658
+ );
659
+ els.forEach((el) => {
660
+ intersectionObserver.observe(el);
661
+ });
662
+
663
+ return {
664
+ getVisibleEntries: () => {
665
+ return visibleElements;
666
+ },
667
+ };
668
+ };
669
+
670
+ const rightElementObserver = visibleItemObserver(rightSideConflictEls);
671
+ const leftElementObserver = visibleItemObserver(leftSideConflictEls);
672
+
673
+ const hideOverlappedSidebars = () => {
674
+ marginScrollVisibility(toRegions(rightElementObserver.getVisibleEntries()));
675
+ sidebarScrollVisiblity(toRegions(leftElementObserver.getVisibleEntries()));
676
+ if (tocLeftScrollVisibility) {
677
+ tocLeftScrollVisibility(
678
+ toRegions(leftElementObserver.getVisibleEntries())
679
+ );
680
+ }
681
+ };
682
+
683
+ window.quartoToggleReader = () => {
684
+ // Applies a slow class (or removes it)
685
+ // to update the transition speed
686
+ const slowTransition = (slow) => {
687
+ const manageTransition = (id, slow) => {
688
+ const el = document.getElementById(id);
689
+ if (el) {
690
+ if (slow) {
691
+ el.classList.add("slow");
692
+ } else {
693
+ el.classList.remove("slow");
694
+ }
695
+ }
696
+ };
697
+
698
+ manageTransition("TOC", slow);
699
+ manageTransition("quarto-sidebar", slow);
700
+ };
701
+ const readerMode = !isReaderMode();
702
+ setReaderModeValue(readerMode);
703
+
704
+ // If we're entering reader mode, slow the transition
705
+ if (readerMode) {
706
+ slowTransition(readerMode);
707
+ }
708
+ highlightReaderToggle(readerMode);
709
+ hideOverlappedSidebars();
710
+
711
+ // If we're exiting reader mode, restore the non-slow transition
712
+ if (!readerMode) {
713
+ slowTransition(!readerMode);
714
+ }
715
+ };
716
+
717
+ const highlightReaderToggle = (readerMode) => {
718
+ const els = document.querySelectorAll(".quarto-reader-toggle");
719
+ if (els) {
720
+ els.forEach((el) => {
721
+ if (readerMode) {
722
+ el.classList.add("reader");
723
+ } else {
724
+ el.classList.remove("reader");
725
+ }
726
+ });
727
+ }
728
+ };
729
+
730
+ const setReaderModeValue = (val) => {
731
+ if (window.location.protocol !== "file:") {
732
+ window.localStorage.setItem("quarto-reader-mode", val);
733
+ } else {
734
+ localReaderMode = val;
735
+ }
736
+ };
737
+
738
+ const isReaderMode = () => {
739
+ if (window.location.protocol !== "file:") {
740
+ return window.localStorage.getItem("quarto-reader-mode") === "true";
741
+ } else {
742
+ return localReaderMode;
743
+ }
744
+ };
745
+ let localReaderMode = null;
746
+
747
+ const tocOpenDepthStr = tocEl?.getAttribute("data-toc-expanded");
748
+ const tocOpenDepth = tocOpenDepthStr ? Number(tocOpenDepthStr) : 1;
749
+
750
+ // Walk the TOC and collapse/expand nodes
751
+ // Nodes are expanded if:
752
+ // - they are top level
753
+ // - they have children that are 'active' links
754
+ // - they are directly below an link that is 'active'
755
+ const walk = (el, depth) => {
756
+ // Tick depth when we enter a UL
757
+ if (el.tagName === "UL") {
758
+ depth = depth + 1;
759
+ }
760
+
761
+ // It this is active link
762
+ let isActiveNode = false;
763
+ if (el.tagName === "A" && el.classList.contains("active")) {
764
+ isActiveNode = true;
765
+ }
766
+
767
+ // See if there is an active child to this element
768
+ let hasActiveChild = false;
769
+ for (const child of el.children) {
770
+ hasActiveChild = walk(child, depth) || hasActiveChild;
771
+ }
772
+
773
+ // Process the collapse state if this is an UL
774
+ if (el.tagName === "UL") {
775
+ if (tocOpenDepth === -1 && depth > 1) {
776
+ // toc-expand: false
777
+ el.classList.add("collapse");
778
+ } else if (
779
+ depth <= tocOpenDepth ||
780
+ hasActiveChild ||
781
+ prevSiblingIsActiveLink(el)
782
+ ) {
783
+ el.classList.remove("collapse");
784
+ } else {
785
+ el.classList.add("collapse");
786
+ }
787
+
788
+ // untick depth when we leave a UL
789
+ depth = depth - 1;
790
+ }
791
+ return hasActiveChild || isActiveNode;
792
+ };
793
+
794
+ // walk the TOC and expand / collapse any items that should be shown
795
+ if (tocEl) {
796
+ updateActiveLink();
797
+ walk(tocEl, 0);
798
+ }
799
+
800
+ // Throttle the scroll event and walk peridiocally
801
+ window.document.addEventListener(
802
+ "scroll",
803
+ throttle(() => {
804
+ if (tocEl) {
805
+ updateActiveLink();
806
+ walk(tocEl, 0);
807
+ }
808
+ if (!isReaderMode()) {
809
+ hideOverlappedSidebars();
810
+ }
811
+ }, 5)
812
+ );
813
+ window.addEventListener(
814
+ "resize",
815
+ throttle(() => {
816
+ if (tocEl) {
817
+ updateActiveLink();
818
+ walk(tocEl, 0);
819
+ }
820
+ if (!isReaderMode()) {
821
+ hideOverlappedSidebars();
822
+ }
823
+ }, 10)
824
+ );
825
+ hideOverlappedSidebars();
826
+ highlightReaderToggle(isReaderMode());
827
+ });
828
+
829
+ tabsets.init();
830
+ axe.init();
831
+
832
+ function throttle(func, wait) {
833
+ let waiting = false;
834
+ return function () {
835
+ if (!waiting) {
836
+ func.apply(this, arguments);
837
+ waiting = true;
838
+ setTimeout(function () {
839
+ waiting = false;
840
+ }, wait);
841
+ }
842
+ };
843
+ }
844
+
845
+ function nexttick(func) {
846
+ return setTimeout(func, 0);
847
+ }
site_libs/quarto-html/tabsets/tabsets.js ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // grouped tabsets
2
+
3
+ export function init() {
4
+ window.addEventListener("pageshow", (_event) => {
5
+ function getTabSettings() {
6
+ const data = localStorage.getItem("quarto-persistent-tabsets-data");
7
+ if (!data) {
8
+ localStorage.setItem("quarto-persistent-tabsets-data", "{}");
9
+ return {};
10
+ }
11
+ if (data) {
12
+ return JSON.parse(data);
13
+ }
14
+ }
15
+
16
+ function setTabSettings(data) {
17
+ localStorage.setItem(
18
+ "quarto-persistent-tabsets-data",
19
+ JSON.stringify(data)
20
+ );
21
+ }
22
+
23
+ function setTabState(groupName, groupValue) {
24
+ const data = getTabSettings();
25
+ data[groupName] = groupValue;
26
+ setTabSettings(data);
27
+ }
28
+
29
+ function toggleTab(tab, active) {
30
+ const tabPanelId = tab.getAttribute("aria-controls");
31
+ const tabPanel = document.getElementById(tabPanelId);
32
+ if (active) {
33
+ tab.classList.add("active");
34
+ tabPanel.classList.add("active");
35
+ } else {
36
+ tab.classList.remove("active");
37
+ tabPanel.classList.remove("active");
38
+ }
39
+ }
40
+
41
+ function toggleAll(selectedGroup, selectorsToSync) {
42
+ for (const [thisGroup, tabs] of Object.entries(selectorsToSync)) {
43
+ const active = selectedGroup === thisGroup;
44
+ for (const tab of tabs) {
45
+ toggleTab(tab, active);
46
+ }
47
+ }
48
+ }
49
+
50
+ function findSelectorsToSyncByLanguage() {
51
+ const result = {};
52
+ const tabs = Array.from(
53
+ document.querySelectorAll(`div[data-group] a[id^='tabset-']`)
54
+ );
55
+ for (const item of tabs) {
56
+ const div = item.parentElement.parentElement.parentElement;
57
+ const group = div.getAttribute("data-group");
58
+ if (!result[group]) {
59
+ result[group] = {};
60
+ }
61
+ const selectorsToSync = result[group];
62
+ const value = item.innerHTML;
63
+ if (!selectorsToSync[value]) {
64
+ selectorsToSync[value] = [];
65
+ }
66
+ selectorsToSync[value].push(item);
67
+ }
68
+ return result;
69
+ }
70
+
71
+ function setupSelectorSync() {
72
+ const selectorsToSync = findSelectorsToSyncByLanguage();
73
+ Object.entries(selectorsToSync).forEach(([group, tabSetsByValue]) => {
74
+ Object.entries(tabSetsByValue).forEach(([value, items]) => {
75
+ items.forEach((item) => {
76
+ item.addEventListener("click", (_event) => {
77
+ setTabState(group, value);
78
+ toggleAll(value, selectorsToSync[group]);
79
+ });
80
+ });
81
+ });
82
+ });
83
+ return selectorsToSync;
84
+ }
85
+
86
+ const selectorsToSync = setupSelectorSync();
87
+ for (const [group, selectedName] of Object.entries(getTabSettings())) {
88
+ const selectors = selectorsToSync[group];
89
+ // it's possible that stale state gives us empty selections, so we explicitly check here.
90
+ if (selectors) {
91
+ toggleAll(selectedName, selectors);
92
+ }
93
+ }
94
+ });
95
+ }
site_libs/quarto-html/tippy.css ADDED
@@ -0,0 +1 @@
 
 
1
+ .tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}
site_libs/quarto-html/tippy.umd.min.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],t):(e=e||self).tippy=t(e.Popper)}(this,(function(e){"use strict";var t={passive:!0,capture:!0},n=function(){return document.body};function r(e,t,n){if(Array.isArray(e)){var r=e[t];return null==r?Array.isArray(n)?n[t]:n:r}return e}function o(e,t){var n={}.toString.call(e);return 0===n.indexOf("[object")&&n.indexOf(t+"]")>-1}function i(e,t){return"function"==typeof e?e.apply(void 0,t):e}function a(e,t){return 0===t?e:function(r){clearTimeout(n),n=setTimeout((function(){e(r)}),t)};var n}function s(e,t){var n=Object.assign({},e);return t.forEach((function(e){delete n[e]})),n}function u(e){return[].concat(e)}function c(e,t){-1===e.indexOf(t)&&e.push(t)}function p(e){return e.split("-")[0]}function f(e){return[].slice.call(e)}function l(e){return Object.keys(e).reduce((function(t,n){return void 0!==e[n]&&(t[n]=e[n]),t}),{})}function d(){return document.createElement("div")}function v(e){return["Element","Fragment"].some((function(t){return o(e,t)}))}function m(e){return o(e,"MouseEvent")}function g(e){return!(!e||!e._tippy||e._tippy.reference!==e)}function h(e){return v(e)?[e]:function(e){return o(e,"NodeList")}(e)?f(e):Array.isArray(e)?e:f(document.querySelectorAll(e))}function b(e,t){e.forEach((function(e){e&&(e.style.transitionDuration=t+"ms")}))}function y(e,t){e.forEach((function(e){e&&e.setAttribute("data-state",t)}))}function w(e){var t,n=u(e)[0];return null!=n&&null!=(t=n.ownerDocument)&&t.body?n.ownerDocument:document}function E(e,t,n){var r=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(t){e[r](t,n)}))}function O(e,t){for(var n=t;n;){var r;if(e.contains(n))return!0;n=null==n.getRootNode||null==(r=n.getRootNode())?void 0:r.host}return!1}var x={isTouch:!1},C=0;function T(){x.isTouch||(x.isTouch=!0,window.performance&&document.addEventListener("mousemove",A))}function A(){var e=performance.now();e-C<20&&(x.isTouch=!1,document.removeEventListener("mousemove",A)),C=e}function L(){var e=document.activeElement;if(g(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}var D=!!("undefined"!=typeof window&&"undefined"!=typeof document)&&!!window.msCrypto,R=Object.assign({appendTo:n,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),k=Object.keys(R);function P(e){var t=(e.plugins||[]).reduce((function(t,n){var r,o=n.name,i=n.defaultValue;o&&(t[o]=void 0!==e[o]?e[o]:null!=(r=R[o])?r:i);return t}),{});return Object.assign({},e,t)}function j(e,t){var n=Object.assign({},t,{content:i(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(P(Object.assign({},R,{plugins:t}))):k).reduce((function(t,n){var r=(e.getAttribute("data-tippy-"+n)||"").trim();if(!r)return t;if("content"===n)t[n]=r;else try{t[n]=JSON.parse(r)}catch(e){t[n]=r}return t}),{})}(e,t.plugins));return n.aria=Object.assign({},R.aria,n.aria),n.aria={expanded:"auto"===n.aria.expanded?t.interactive:n.aria.expanded,content:"auto"===n.aria.content?t.interactive?null:"describedby":n.aria.content},n}function M(e,t){e.innerHTML=t}function V(e){var t=d();return!0===e?t.className="tippy-arrow":(t.className="tippy-svg-arrow",v(e)?t.appendChild(e):M(t,e)),t}function I(e,t){v(t.content)?(M(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(t.allowHTML?M(e,t.content):e.textContent=t.content)}function S(e){var t=e.firstElementChild,n=f(t.children);return{box:t,content:n.find((function(e){return e.classList.contains("tippy-content")})),arrow:n.find((function(e){return e.classList.contains("tippy-arrow")||e.classList.contains("tippy-svg-arrow")})),backdrop:n.find((function(e){return e.classList.contains("tippy-backdrop")}))}}function N(e){var t=d(),n=d();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var r=d();function o(n,r){var o=S(t),i=o.box,a=o.content,s=o.arrow;r.theme?i.setAttribute("data-theme",r.theme):i.removeAttribute("data-theme"),"string"==typeof r.animation?i.setAttribute("data-animation",r.animation):i.removeAttribute("data-animation"),r.inertia?i.setAttribute("data-inertia",""):i.removeAttribute("data-inertia"),i.style.maxWidth="number"==typeof r.maxWidth?r.maxWidth+"px":r.maxWidth,r.role?i.setAttribute("role",r.role):i.removeAttribute("role"),n.content===r.content&&n.allowHTML===r.allowHTML||I(a,e.props),r.arrow?s?n.arrow!==r.arrow&&(i.removeChild(s),i.appendChild(V(r.arrow))):i.appendChild(V(r.arrow)):s&&i.removeChild(s)}return r.className="tippy-content",r.setAttribute("data-state","hidden"),I(r,e.props),t.appendChild(n),n.appendChild(r),o(e.props,e.props),{popper:t,onUpdate:o}}N.$$tippy=!0;var B=1,H=[],U=[];function _(o,s){var v,g,h,C,T,A,L,k,M=j(o,Object.assign({},R,P(l(s)))),V=!1,I=!1,N=!1,_=!1,F=[],W=a(we,M.interactiveDebounce),X=B++,Y=(k=M.plugins).filter((function(e,t){return k.indexOf(e)===t})),$={id:X,reference:o,popper:d(),popperInstance:null,props:M,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:Y,clearDelayTimeouts:function(){clearTimeout(v),clearTimeout(g),cancelAnimationFrame(h)},setProps:function(e){if($.state.isDestroyed)return;ae("onBeforeUpdate",[$,e]),be();var t=$.props,n=j(o,Object.assign({},t,l(e),{ignoreAttributes:!0}));$.props=n,he(),t.interactiveDebounce!==n.interactiveDebounce&&(ce(),W=a(we,n.interactiveDebounce));t.triggerTarget&&!n.triggerTarget?u(t.triggerTarget).forEach((function(e){e.removeAttribute("aria-expanded")})):n.triggerTarget&&o.removeAttribute("aria-expanded");ue(),ie(),J&&J(t,n);$.popperInstance&&(Ce(),Ae().forEach((function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})));ae("onAfterUpdate",[$,e])},setContent:function(e){$.setProps({content:e})},show:function(){var e=$.state.isVisible,t=$.state.isDestroyed,o=!$.state.isEnabled,a=x.isTouch&&!$.props.touch,s=r($.props.duration,0,R.duration);if(e||t||o||a)return;if(te().hasAttribute("disabled"))return;if(ae("onShow",[$],!1),!1===$.props.onShow($))return;$.state.isVisible=!0,ee()&&(z.style.visibility="visible");ie(),de(),$.state.isMounted||(z.style.transition="none");if(ee()){var u=re(),p=u.box,f=u.content;b([p,f],0)}A=function(){var e;if($.state.isVisible&&!_){if(_=!0,z.offsetHeight,z.style.transition=$.props.moveTransition,ee()&&$.props.animation){var t=re(),n=t.box,r=t.content;b([n,r],s),y([n,r],"visible")}se(),ue(),c(U,$),null==(e=$.popperInstance)||e.forceUpdate(),ae("onMount",[$]),$.props.animation&&ee()&&function(e,t){me(e,t)}(s,(function(){$.state.isShown=!0,ae("onShown",[$])}))}},function(){var e,t=$.props.appendTo,r=te();e=$.props.interactive&&t===n||"parent"===t?r.parentNode:i(t,[r]);e.contains(z)||e.appendChild(z);$.state.isMounted=!0,Ce()}()},hide:function(){var e=!$.state.isVisible,t=$.state.isDestroyed,n=!$.state.isEnabled,o=r($.props.duration,1,R.duration);if(e||t||n)return;if(ae("onHide",[$],!1),!1===$.props.onHide($))return;$.state.isVisible=!1,$.state.isShown=!1,_=!1,V=!1,ee()&&(z.style.visibility="hidden");if(ce(),ve(),ie(!0),ee()){var i=re(),a=i.box,s=i.content;$.props.animation&&(b([a,s],o),y([a,s],"hidden"))}se(),ue(),$.props.animation?ee()&&function(e,t){me(e,(function(){!$.state.isVisible&&z.parentNode&&z.parentNode.contains(z)&&t()}))}(o,$.unmount):$.unmount()},hideWithInteractivity:function(e){ne().addEventListener("mousemove",W),c(H,W),W(e)},enable:function(){$.state.isEnabled=!0},disable:function(){$.hide(),$.state.isEnabled=!1},unmount:function(){$.state.isVisible&&$.hide();if(!$.state.isMounted)return;Te(),Ae().forEach((function(e){e._tippy.unmount()})),z.parentNode&&z.parentNode.removeChild(z);U=U.filter((function(e){return e!==$})),$.state.isMounted=!1,ae("onHidden",[$])},destroy:function(){if($.state.isDestroyed)return;$.clearDelayTimeouts(),$.unmount(),be(),delete o._tippy,$.state.isDestroyed=!0,ae("onDestroy",[$])}};if(!M.render)return $;var q=M.render($),z=q.popper,J=q.onUpdate;z.setAttribute("data-tippy-root",""),z.id="tippy-"+$.id,$.popper=z,o._tippy=$,z._tippy=$;var G=Y.map((function(e){return e.fn($)})),K=o.hasAttribute("aria-expanded");return he(),ue(),ie(),ae("onCreate",[$]),M.showOnCreate&&Le(),z.addEventListener("mouseenter",(function(){$.props.interactive&&$.state.isVisible&&$.clearDelayTimeouts()})),z.addEventListener("mouseleave",(function(){$.props.interactive&&$.props.trigger.indexOf("mouseenter")>=0&&ne().addEventListener("mousemove",W)})),$;function Q(){var e=$.props.touch;return Array.isArray(e)?e:[e,0]}function Z(){return"hold"===Q()[0]}function ee(){var e;return!(null==(e=$.props.render)||!e.$$tippy)}function te(){return L||o}function ne(){var e=te().parentNode;return e?w(e):document}function re(){return S(z)}function oe(e){return $.state.isMounted&&!$.state.isVisible||x.isTouch||C&&"focus"===C.type?0:r($.props.delay,e?0:1,R.delay)}function ie(e){void 0===e&&(e=!1),z.style.pointerEvents=$.props.interactive&&!e?"":"none",z.style.zIndex=""+$.props.zIndex}function ae(e,t,n){var r;(void 0===n&&(n=!0),G.forEach((function(n){n[e]&&n[e].apply(n,t)})),n)&&(r=$.props)[e].apply(r,t)}function se(){var e=$.props.aria;if(e.content){var t="aria-"+e.content,n=z.id;u($.props.triggerTarget||o).forEach((function(e){var r=e.getAttribute(t);if($.state.isVisible)e.setAttribute(t,r?r+" "+n:n);else{var o=r&&r.replace(n,"").trim();o?e.setAttribute(t,o):e.removeAttribute(t)}}))}}function ue(){!K&&$.props.aria.expanded&&u($.props.triggerTarget||o).forEach((function(e){$.props.interactive?e.setAttribute("aria-expanded",$.state.isVisible&&e===te()?"true":"false"):e.removeAttribute("aria-expanded")}))}function ce(){ne().removeEventListener("mousemove",W),H=H.filter((function(e){return e!==W}))}function pe(e){if(!x.isTouch||!N&&"mousedown"!==e.type){var t=e.composedPath&&e.composedPath()[0]||e.target;if(!$.props.interactive||!O(z,t)){if(u($.props.triggerTarget||o).some((function(e){return O(e,t)}))){if(x.isTouch)return;if($.state.isVisible&&$.props.trigger.indexOf("click")>=0)return}else ae("onClickOutside",[$,e]);!0===$.props.hideOnClick&&($.clearDelayTimeouts(),$.hide(),I=!0,setTimeout((function(){I=!1})),$.state.isMounted||ve())}}}function fe(){N=!0}function le(){N=!1}function de(){var e=ne();e.addEventListener("mousedown",pe,!0),e.addEventListener("touchend",pe,t),e.addEventListener("touchstart",le,t),e.addEventListener("touchmove",fe,t)}function ve(){var e=ne();e.removeEventListener("mousedown",pe,!0),e.removeEventListener("touchend",pe,t),e.removeEventListener("touchstart",le,t),e.removeEventListener("touchmove",fe,t)}function me(e,t){var n=re().box;function r(e){e.target===n&&(E(n,"remove",r),t())}if(0===e)return t();E(n,"remove",T),E(n,"add",r),T=r}function ge(e,t,n){void 0===n&&(n=!1),u($.props.triggerTarget||o).forEach((function(r){r.addEventListener(e,t,n),F.push({node:r,eventType:e,handler:t,options:n})}))}function he(){var e;Z()&&(ge("touchstart",ye,{passive:!0}),ge("touchend",Ee,{passive:!0})),(e=$.props.trigger,e.split(/\s+/).filter(Boolean)).forEach((function(e){if("manual"!==e)switch(ge(e,ye),e){case"mouseenter":ge("mouseleave",Ee);break;case"focus":ge(D?"focusout":"blur",Oe);break;case"focusin":ge("focusout",Oe)}}))}function be(){F.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),F=[]}function ye(e){var t,n=!1;if($.state.isEnabled&&!xe(e)&&!I){var r="focus"===(null==(t=C)?void 0:t.type);C=e,L=e.currentTarget,ue(),!$.state.isVisible&&m(e)&&H.forEach((function(t){return t(e)})),"click"===e.type&&($.props.trigger.indexOf("mouseenter")<0||V)&&!1!==$.props.hideOnClick&&$.state.isVisible?n=!0:Le(e),"click"===e.type&&(V=!n),n&&!r&&De(e)}}function we(e){var t=e.target,n=te().contains(t)||z.contains(t);"mousemove"===e.type&&n||function(e,t){var n=t.clientX,r=t.clientY;return e.every((function(e){var t=e.popperRect,o=e.popperState,i=e.props.interactiveBorder,a=p(o.placement),s=o.modifiersData.offset;if(!s)return!0;var u="bottom"===a?s.top.y:0,c="top"===a?s.bottom.y:0,f="right"===a?s.left.x:0,l="left"===a?s.right.x:0,d=t.top-r+u>i,v=r-t.bottom-c>i,m=t.left-n+f>i,g=n-t.right-l>i;return d||v||m||g}))}(Ae().concat(z).map((function(e){var t,n=null==(t=e._tippy.popperInstance)?void 0:t.state;return n?{popperRect:e.getBoundingClientRect(),popperState:n,props:M}:null})).filter(Boolean),e)&&(ce(),De(e))}function Ee(e){xe(e)||$.props.trigger.indexOf("click")>=0&&V||($.props.interactive?$.hideWithInteractivity(e):De(e))}function Oe(e){$.props.trigger.indexOf("focusin")<0&&e.target!==te()||$.props.interactive&&e.relatedTarget&&z.contains(e.relatedTarget)||De(e)}function xe(e){return!!x.isTouch&&Z()!==e.type.indexOf("touch")>=0}function Ce(){Te();var t=$.props,n=t.popperOptions,r=t.placement,i=t.offset,a=t.getReferenceClientRect,s=t.moveTransition,u=ee()?S(z).arrow:null,c=a?{getBoundingClientRect:a,contextElement:a.contextElement||te()}:o,p=[{name:"offset",options:{offset:i}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!s}},{name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t=e.state;if(ee()){var n=re().box;["placement","reference-hidden","escaped"].forEach((function(e){"placement"===e?n.setAttribute("data-placement",t.placement):t.attributes.popper["data-popper-"+e]?n.setAttribute("data-"+e,""):n.removeAttribute("data-"+e)})),t.attributes.popper={}}}}];ee()&&u&&p.push({name:"arrow",options:{element:u,padding:3}}),p.push.apply(p,(null==n?void 0:n.modifiers)||[]),$.popperInstance=e.createPopper(c,z,Object.assign({},n,{placement:r,onFirstUpdate:A,modifiers:p}))}function Te(){$.popperInstance&&($.popperInstance.destroy(),$.popperInstance=null)}function Ae(){return f(z.querySelectorAll("[data-tippy-root]"))}function Le(e){$.clearDelayTimeouts(),e&&ae("onTrigger",[$,e]),de();var t=oe(!0),n=Q(),r=n[0],o=n[1];x.isTouch&&"hold"===r&&o&&(t=o),t?v=setTimeout((function(){$.show()}),t):$.show()}function De(e){if($.clearDelayTimeouts(),ae("onUntrigger",[$,e]),$.state.isVisible){if(!($.props.trigger.indexOf("mouseenter")>=0&&$.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(e.type)>=0&&V)){var t=oe(!1);t?g=setTimeout((function(){$.state.isVisible&&$.hide()}),t):h=requestAnimationFrame((function(){$.hide()}))}}else ve()}}function F(e,n){void 0===n&&(n={});var r=R.plugins.concat(n.plugins||[]);document.addEventListener("touchstart",T,t),window.addEventListener("blur",L);var o=Object.assign({},n,{plugins:r}),i=h(e).reduce((function(e,t){var n=t&&_(t,o);return n&&e.push(n),e}),[]);return v(e)?i[0]:i}F.defaultProps=R,F.setDefaultProps=function(e){Object.keys(e).forEach((function(t){R[t]=e[t]}))},F.currentInput=x;var W=Object.assign({},e.applyStyles,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),X={mouseover:"mouseenter",focusin:"focus",click:"click"};var Y={name:"animateFill",defaultValue:!1,fn:function(e){var t;if(null==(t=e.props.render)||!t.$$tippy)return{};var n=S(e.popper),r=n.box,o=n.content,i=e.props.animateFill?function(){var e=d();return e.className="tippy-backdrop",y([e],"hidden"),e}():null;return{onCreate:function(){i&&(r.insertBefore(i,r.firstElementChild),r.setAttribute("data-animatefill",""),r.style.overflow="hidden",e.setProps({arrow:!1,animation:"shift-away"}))},onMount:function(){if(i){var e=r.style.transitionDuration,t=Number(e.replace("ms",""));o.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y([i],"visible")}},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y([i],"hidden")}}}};var $={clientX:0,clientY:0},q=[];function z(e){var t=e.clientX,n=e.clientY;$={clientX:t,clientY:n}}var J={name:"followCursor",defaultValue:!1,fn:function(e){var t=e.reference,n=w(e.props.triggerTarget||t),r=!1,o=!1,i=!0,a=e.props;function s(){return"initial"===e.props.followCursor&&e.state.isVisible}function u(){n.addEventListener("mousemove",f)}function c(){n.removeEventListener("mousemove",f)}function p(){r=!0,e.setProps({getReferenceClientRect:null}),r=!1}function f(n){var r=!n.target||t.contains(n.target),o=e.props.followCursor,i=n.clientX,a=n.clientY,s=t.getBoundingClientRect(),u=i-s.left,c=a-s.top;!r&&e.props.interactive||e.setProps({getReferenceClientRect:function(){var e=t.getBoundingClientRect(),n=i,r=a;"initial"===o&&(n=e.left+u,r=e.top+c);var s="horizontal"===o?e.top:r,p="vertical"===o?e.right:n,f="horizontal"===o?e.bottom:r,l="vertical"===o?e.left:n;return{width:p-l,height:f-s,top:s,right:p,bottom:f,left:l}}})}function l(){e.props.followCursor&&(q.push({instance:e,doc:n}),function(e){e.addEventListener("mousemove",z)}(n))}function d(){0===(q=q.filter((function(t){return t.instance!==e}))).filter((function(e){return e.doc===n})).length&&function(e){e.removeEventListener("mousemove",z)}(n)}return{onCreate:l,onDestroy:d,onBeforeUpdate:function(){a=e.props},onAfterUpdate:function(t,n){var i=n.followCursor;r||void 0!==i&&a.followCursor!==i&&(d(),i?(l(),!e.state.isMounted||o||s()||u()):(c(),p()))},onMount:function(){e.props.followCursor&&!o&&(i&&(f($),i=!1),s()||u())},onTrigger:function(e,t){m(t)&&($={clientX:t.clientX,clientY:t.clientY}),o="focus"===t.type},onHidden:function(){e.props.followCursor&&(p(),c(),i=!0)}}}};var G={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t,n=e.reference;var r=-1,o=!1,i=[],a={name:"tippyInlinePositioning",enabled:!0,phase:"afterWrite",fn:function(o){var a=o.state;e.props.inlinePositioning&&(-1!==i.indexOf(a.placement)&&(i=[]),t!==a.placement&&-1===i.indexOf(a.placement)&&(i.push(a.placement),e.setProps({getReferenceClientRect:function(){return function(e){return function(e,t,n,r){if(n.length<2||null===e)return t;if(2===n.length&&r>=0&&n[0].left>n[1].right)return n[r]||t;switch(e){case"top":case"bottom":var o=n[0],i=n[n.length-1],a="top"===e,s=o.top,u=i.bottom,c=a?o.left:i.left,p=a?o.right:i.right;return{top:s,bottom:u,left:c,right:p,width:p-c,height:u-s};case"left":case"right":var f=Math.min.apply(Math,n.map((function(e){return e.left}))),l=Math.max.apply(Math,n.map((function(e){return e.right}))),d=n.filter((function(t){return"left"===e?t.left===f:t.right===l})),v=d[0].top,m=d[d.length-1].bottom;return{top:v,bottom:m,left:f,right:l,width:l-f,height:m-v};default:return t}}(p(e),n.getBoundingClientRect(),f(n.getClientRects()),r)}(a.placement)}})),t=a.placement)}};function s(){var t;o||(t=function(e,t){var n;return{popperOptions:Object.assign({},e.popperOptions,{modifiers:[].concat(((null==(n=e.popperOptions)?void 0:n.modifiers)||[]).filter((function(e){return e.name!==t.name})),[t])})}}(e.props,a),o=!0,e.setProps(t),o=!1)}return{onCreate:s,onAfterUpdate:s,onTrigger:function(t,n){if(m(n)){var o=f(e.reference.getClientRects()),i=o.find((function(e){return e.left-2<=n.clientX&&e.right+2>=n.clientX&&e.top-2<=n.clientY&&e.bottom+2>=n.clientY})),a=o.indexOf(i);r=a>-1?a:r}},onHidden:function(){r=-1}}}};var K={name:"sticky",defaultValue:!1,fn:function(e){var t=e.reference,n=e.popper;function r(t){return!0===e.props.sticky||e.props.sticky===t}var o=null,i=null;function a(){var s=r("reference")?(e.popperInstance?e.popperInstance.state.elements.reference:t).getBoundingClientRect():null,u=r("popper")?n.getBoundingClientRect():null;(s&&Q(o,s)||u&&Q(i,u))&&e.popperInstance&&e.popperInstance.update(),o=s,i=u,e.state.isMounted&&requestAnimationFrame(a)}return{onMount:function(){e.props.sticky&&a()}}}};function Q(e,t){return!e||!t||(e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left)}return F.setDefaultProps({plugins:[Y,J,G,K],render:N}),F.createSingleton=function(e,t){var n;void 0===t&&(t={});var r,o=e,i=[],a=[],c=t.overrides,p=[],f=!1;function l(){a=o.map((function(e){return u(e.props.triggerTarget||e.reference)})).reduce((function(e,t){return e.concat(t)}),[])}function v(){i=o.map((function(e){return e.reference}))}function m(e){o.forEach((function(t){e?t.enable():t.disable()}))}function g(e){return o.map((function(t){var n=t.setProps;return t.setProps=function(o){n(o),t.reference===r&&e.setProps(o)},function(){t.setProps=n}}))}function h(e,t){var n=a.indexOf(t);if(t!==r){r=t;var s=(c||[]).concat("content").reduce((function(e,t){return e[t]=o[n].props[t],e}),{});e.setProps(Object.assign({},s,{getReferenceClientRect:"function"==typeof s.getReferenceClientRect?s.getReferenceClientRect:function(){var e;return null==(e=i[n])?void 0:e.getBoundingClientRect()}}))}}m(!1),v(),l();var b={fn:function(){return{onDestroy:function(){m(!0)},onHidden:function(){r=null},onClickOutside:function(e){e.props.showOnCreate&&!f&&(f=!0,r=null)},onShow:function(e){e.props.showOnCreate&&!f&&(f=!0,h(e,i[0]))},onTrigger:function(e,t){h(e,t.currentTarget)}}}},y=F(d(),Object.assign({},s(t,["overrides"]),{plugins:[b].concat(t.plugins||[]),triggerTarget:a,popperOptions:Object.assign({},t.popperOptions,{modifiers:[].concat((null==(n=t.popperOptions)?void 0:n.modifiers)||[],[W])})})),w=y.show;y.show=function(e){if(w(),!r&&null==e)return h(y,i[0]);if(!r||null!=e){if("number"==typeof e)return i[e]&&h(y,i[e]);if(o.indexOf(e)>=0){var t=e.reference;return h(y,t)}return i.indexOf(e)>=0?h(y,e):void 0}},y.showNext=function(){var e=i[0];if(!r)return y.show(0);var t=i.indexOf(r);y.show(i[t+1]||e)},y.showPrevious=function(){var e=i[i.length-1];if(!r)return y.show(e);var t=i.indexOf(r),n=i[t-1]||e;y.show(n)};var E=y.setProps;return y.setProps=function(e){c=e.overrides||c,E(e)},y.setInstances=function(e){m(!0),p.forEach((function(e){return e()})),o=e,m(!1),v(),l(),p=g(y),y.setProps({triggerTarget:a})},p=g(y),y},F.delegate=function(e,n){var r=[],o=[],i=!1,a=n.target,c=s(n,["target"]),p=Object.assign({},c,{trigger:"manual",touch:!1}),f=Object.assign({touch:R.touch},c,{showOnCreate:!0}),l=F(e,p);function d(e){if(e.target&&!i){var t=e.target.closest(a);if(t){var r=t.getAttribute("data-tippy-trigger")||n.trigger||R.trigger;if(!t._tippy&&!("touchstart"===e.type&&"boolean"==typeof f.touch||"touchstart"!==e.type&&r.indexOf(X[e.type])<0)){var s=F(t,f);s&&(o=o.concat(s))}}}}function v(e,t,n,o){void 0===o&&(o=!1),e.addEventListener(t,n,o),r.push({node:e,eventType:t,handler:n,options:o})}return u(l).forEach((function(e){var n=e.destroy,a=e.enable,s=e.disable;e.destroy=function(e){void 0===e&&(e=!0),e&&o.forEach((function(e){e.destroy()})),o=[],r.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),r=[],n()},e.enable=function(){a(),o.forEach((function(e){return e.enable()})),i=!1},e.disable=function(){s(),o.forEach((function(e){return e.disable()})),i=!0},function(e){var n=e.reference;v(n,"touchstart",d,t),v(n,"mouseover",d),v(n,"focusin",d),v(n,"click",d)}(e)})),l},F.hideAll=function(e){var t=void 0===e?{}:e,n=t.exclude,r=t.duration;U.forEach((function(e){var t=!1;if(n&&(t=g(n)?e.reference===n:e.popper===n.popper),!t){var o=e.props.duration;e.setProps({duration:r}),e.hide(),e.state.isDestroyed||e.setProps({duration:o})}}))},F.roundArrow='<svg width="16" height="6" xmlns="http://www.w3.org/2000/svg"><path d="M0 6s1.796-.013 4.67-3.615C5.851.9 6.93.006 8 0c1.07-.006 2.148.887 3.343 2.385C14.233 6.005 16 6 16 6H0z"></svg>',F}));
2
+
site_libs/quarto-listing/list.min.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ var List;List=function(){var t={"./src/add-async.js":function(t){t.exports=function(t){return function e(r,n,s){var i=r.splice(0,50);s=(s=s||[]).concat(t.add(i)),r.length>0?setTimeout((function(){e(r,n,s)}),1):(t.update(),n(s))}}},"./src/filter.js":function(t){t.exports=function(t){return t.handlers.filterStart=t.handlers.filterStart||[],t.handlers.filterComplete=t.handlers.filterComplete||[],function(e){if(t.trigger("filterStart"),t.i=1,t.reset.filter(),void 0===e)t.filtered=!1;else{t.filtered=!0;for(var r=t.items,n=0,s=r.length;n<s;n++){var i=r[n];e(i)?i.filtered=!0:i.filtered=!1}}return t.update(),t.trigger("filterComplete"),t.visibleItems}}},"./src/fuzzy-search.js":function(t,e,r){r("./src/utils/classes.js");var n=r("./src/utils/events.js"),s=r("./src/utils/extend.js"),i=r("./src/utils/to-string.js"),a=r("./src/utils/get-by-class.js"),o=r("./src/utils/fuzzy.js");t.exports=function(t,e){e=s({location:0,distance:100,threshold:.4,multiSearch:!0,searchClass:"fuzzy-search"},e=e||{});var r={search:function(n,s){for(var i=e.multiSearch?n.replace(/ +$/,"").split(/ +/):[n],a=0,o=t.items.length;a<o;a++)r.item(t.items[a],s,i)},item:function(t,e,n){for(var s=!0,i=0;i<n.length;i++){for(var a=!1,o=0,l=e.length;o<l;o++)r.values(t.values(),e[o],n[i])&&(a=!0);a||(s=!1)}t.found=s},values:function(t,r,n){if(t.hasOwnProperty(r)){var s=i(t[r]).toLowerCase();if(o(s,n,e))return!0}return!1}};return n.bind(a(t.listContainer,e.searchClass),"keyup",t.utils.events.debounce((function(e){var n=e.target||e.srcElement;t.search(n.value,r.search)}),t.searchDelay)),function(e,n){t.search(e,n,r.search)}}},"./src/index.js":function(t,e,r){var n=r("./node_modules/string-natural-compare/natural-compare.js"),s=r("./src/utils/get-by-class.js"),i=r("./src/utils/extend.js"),a=r("./src/utils/index-of.js"),o=r("./src/utils/events.js"),l=r("./src/utils/to-string.js"),u=r("./src/utils/classes.js"),c=r("./src/utils/get-attribute.js"),f=r("./src/utils/to-array.js");t.exports=function(t,e,h){var d,v=this,g=r("./src/item.js")(v),m=r("./src/add-async.js")(v),p=r("./src/pagination.js")(v);d={start:function(){v.listClass="list",v.searchClass="search",v.sortClass="sort",v.page=1e4,v.i=1,v.items=[],v.visibleItems=[],v.matchingItems=[],v.searched=!1,v.filtered=!1,v.searchColumns=void 0,v.searchDelay=0,v.handlers={updated:[]},v.valueNames=[],v.utils={getByClass:s,extend:i,indexOf:a,events:o,toString:l,naturalSort:n,classes:u,getAttribute:c,toArray:f},v.utils.extend(v,e),v.listContainer="string"==typeof t?document.getElementById(t):t,v.listContainer&&(v.list=s(v.listContainer,v.listClass,!0),v.parse=r("./src/parse.js")(v),v.templater=r("./src/templater.js")(v),v.search=r("./src/search.js")(v),v.filter=r("./src/filter.js")(v),v.sort=r("./src/sort.js")(v),v.fuzzySearch=r("./src/fuzzy-search.js")(v,e.fuzzySearch),this.handlers(),this.items(),this.pagination(),v.update())},handlers:function(){for(var t in v.handlers)v[t]&&v.handlers.hasOwnProperty(t)&&v.on(t,v[t])},items:function(){v.parse(v.list),void 0!==h&&v.add(h)},pagination:function(){if(void 0!==e.pagination){!0===e.pagination&&(e.pagination=[{}]),void 0===e.pagination[0]&&(e.pagination=[e.pagination]);for(var t=0,r=e.pagination.length;t<r;t++)p(e.pagination[t])}}},this.reIndex=function(){v.items=[],v.visibleItems=[],v.matchingItems=[],v.searched=!1,v.filtered=!1,v.parse(v.list)},this.toJSON=function(){for(var t=[],e=0,r=v.items.length;e<r;e++)t.push(v.items[e].values());return t},this.add=function(t,e){if(0!==t.length){if(!e){var r=[],n=!1;void 0===t[0]&&(t=[t]);for(var s=0,i=t.length;s<i;s++){var a;n=v.items.length>v.page,a=new g(t[s],void 0,n),v.items.push(a),r.push(a)}return v.update(),r}m(t.slice(0),e)}},this.show=function(t,e){return this.i=t,this.page=e,v.update(),v},this.remove=function(t,e,r){for(var n=0,s=0,i=v.items.length;s<i;s++)v.items[s].values()[t]==e&&(v.templater.remove(v.items[s],r),v.items.splice(s,1),i--,s--,n++);return v.update(),n},this.get=function(t,e){for(var r=[],n=0,s=v.items.length;n<s;n++){var i=v.items[n];i.values()[t]==e&&r.push(i)}return r},this.size=function(){return v.items.length},this.clear=function(){return v.templater.clear(),v.items=[],v},this.on=function(t,e){return v.handlers[t].push(e),v},this.off=function(t,e){var r=v.handlers[t],n=a(r,e);return n>-1&&r.splice(n,1),v},this.trigger=function(t){for(var e=v.handlers[t].length;e--;)v.handlers[t][e](v);return v},this.reset={filter:function(){for(var t=v.items,e=t.length;e--;)t[e].filtered=!1;return v},search:function(){for(var t=v.items,e=t.length;e--;)t[e].found=!1;return v}},this.update=function(){var t=v.items,e=t.length;v.visibleItems=[],v.matchingItems=[],v.templater.clear();for(var r=0;r<e;r++)t[r].matching()&&v.matchingItems.length+1>=v.i&&v.visibleItems.length<v.page?(t[r].show(),v.visibleItems.push(t[r]),v.matchingItems.push(t[r])):t[r].matching()?(v.matchingItems.push(t[r]),t[r].hide()):t[r].hide();return v.trigger("updated"),v},d.start()}},"./src/item.js":function(t){t.exports=function(t){return function(e,r,n){var s=this;this._values={},this.found=!1,this.filtered=!1;this.values=function(e,r){if(void 0===e)return s._values;for(var n in e)s._values[n]=e[n];!0!==r&&t.templater.set(s,s.values())},this.show=function(){t.templater.show(s)},this.hide=function(){t.templater.hide(s)},this.matching=function(){return t.filtered&&t.searched&&s.found&&s.filtered||t.filtered&&!t.searched&&s.filtered||!t.filtered&&t.searched&&s.found||!t.filtered&&!t.searched},this.visible=function(){return!(!s.elm||s.elm.parentNode!=t.list)},function(e,r,n){if(void 0===r)n?s.values(e,n):s.values(e);else{s.elm=r;var i=t.templater.get(s,e);s.values(i)}}(e,r,n)}}},"./src/pagination.js":function(t,e,r){var n=r("./src/utils/classes.js"),s=r("./src/utils/events.js"),i=r("./src/index.js");t.exports=function(t){var e=!1,r=function(r,s){if(t.page<1)return t.listContainer.style.display="none",void(e=!0);e&&(t.listContainer.style.display="block");var i,o=t.matchingItems.length,l=t.i,u=t.page,c=Math.ceil(o/u),f=Math.ceil(l/u),h=s.innerWindow||2,d=s.left||s.outerWindow||0,v=s.right||s.outerWindow||0;v=c-v,r.clear();for(var g=1;g<=c;g++){var m=f===g?"active":"";a.number(g,d,v,f,h)?(i=r.add({page:g,dotted:!1})[0],m&&n(i.elm).add(m),i.elm.firstChild.setAttribute("data-i",g),i.elm.firstChild.setAttribute("data-page",u)):a.dotted(r,g,d,v,f,h,r.size())&&(i=r.add({page:"...",dotted:!0})[0],n(i.elm).add("disabled"))}},a={number:function(t,e,r,n,s){return this.left(t,e)||this.right(t,r)||this.innerWindow(t,n,s)},left:function(t,e){return t<=e},right:function(t,e){return t>e},innerWindow:function(t,e,r){return t>=e-r&&t<=e+r},dotted:function(t,e,r,n,s,i,a){return this.dottedLeft(t,e,r,n,s,i)||this.dottedRight(t,e,r,n,s,i,a)},dottedLeft:function(t,e,r,n,s,i){return e==r+1&&!this.innerWindow(e,s,i)&&!this.right(e,n)},dottedRight:function(t,e,r,n,s,i,a){return!t.items[a-1].values().dotted&&(e==n&&!this.innerWindow(e,s,i)&&!this.right(e,n))}};return function(e){var n=new i(t.listContainer.id,{listClass:e.paginationClass||"pagination",item:e.item||"<li><a class='page' href='#'></a></li>",valueNames:["page","dotted"],searchClass:"pagination-search-that-is-not-supposed-to-exist",sortClass:"pagination-sort-that-is-not-supposed-to-exist"});s.bind(n.listContainer,"click",(function(e){var r=e.target||e.srcElement,n=t.utils.getAttribute(r,"data-page"),s=t.utils.getAttribute(r,"data-i");s&&t.show((s-1)*n+1,n)})),t.on("updated",(function(){r(n,e)})),r(n,e)}}},"./src/parse.js":function(t,e,r){t.exports=function(t){var e=r("./src/item.js")(t),n=function(r,n){for(var s=0,i=r.length;s<i;s++)t.items.push(new e(n,r[s]))},s=function e(r,s){var i=r.splice(0,50);n(i,s),r.length>0?setTimeout((function(){e(r,s)}),1):(t.update(),t.trigger("parseComplete"))};return t.handlers.parseComplete=t.handlers.parseComplete||[],function(){var e=function(t){for(var e=t.childNodes,r=[],n=0,s=e.length;n<s;n++)void 0===e[n].data&&r.push(e[n]);return r}(t.list),r=t.valueNames;t.indexAsync?s(e,r):n(e,r)}}},"./src/search.js":function(t){t.exports=function(t){var e,r,n,s={resetList:function(){t.i=1,t.templater.clear(),n=void 0},setOptions:function(t){2==t.length&&t[1]instanceof Array?e=t[1]:2==t.length&&"function"==typeof t[1]?(e=void 0,n=t[1]):3==t.length?(e=t[1],n=t[2]):e=void 0},setColumns:function(){0!==t.items.length&&void 0===e&&(e=void 0===t.searchColumns?s.toArray(t.items[0].values()):t.searchColumns)},setSearchString:function(e){e=(e=t.utils.toString(e).toLowerCase()),r=e},toArray:function(t){var e=[];for(var r in t)e.push(r);return e}},i=function(){for(var n,s=[],i=r;null!==(n=i.match(/"([^"]+)"/));)s.push(n[1]),i=i.substring(0,n.index)+i.substring(n.index+n[0].length);(i=i.trim()).length&&(s=s.concat(i.split(/\s+/)));for(var a=0,o=t.items.length;a<o;a++){var l=t.items[a];if(l.found=!1,s.length){for(var u=0,c=s.length;u<c;u++){for(var f=!1,h=0,d=e.length;h<d;h++){var v=l.values(),g=e[h];if(v.hasOwnProperty(g)&&void 0!==v[g]&&null!==v[g])if(-1!==("string"!=typeof v[g]?v[g].toString():v[g]).toLowerCase().indexOf(s[u])){f=!0;break}}if(!f)break}l.found=f}}},a=function(){t.reset.search(),t.searched=!1},o=function(o){return t.trigger("searchStart"),s.resetList(),s.setSearchString(o),s.setOptions(arguments),s.setColumns(),""===r?a():(t.searched=!0,n?n(r,e):i()),t.update(),t.trigger("searchComplete"),t.visibleItems};return t.handlers.searchStart=t.handlers.searchStart||[],t.handlers.searchComplete=t.handlers.searchComplete||[],t.utils.events.bind(t.utils.getByClass(t.listContainer,t.searchClass),"keyup",t.utils.events.debounce((function(e){var r=e.target||e.srcElement;""===r.value&&!t.searched||o(r.value)}),t.searchDelay)),t.utils.events.bind(t.utils.getByClass(t.listContainer,t.searchClass),"input",(function(t){""===(t.target||t.srcElement).value&&o("")})),o}},"./src/sort.js":function(t){t.exports=function(t){var e={els:void 0,clear:function(){for(var r=0,n=e.els.length;r<n;r++)t.utils.classes(e.els[r]).remove("asc"),t.utils.classes(e.els[r]).remove("desc")},getOrder:function(e){var r=t.utils.getAttribute(e,"data-order");return"asc"==r||"desc"==r?r:t.utils.classes(e).has("desc")?"asc":t.utils.classes(e).has("asc")?"desc":"asc"},getInSensitive:function(e,r){var n=t.utils.getAttribute(e,"data-insensitive");r.insensitive="false"!==n},setOrder:function(r){for(var n=0,s=e.els.length;n<s;n++){var i=e.els[n];if(t.utils.getAttribute(i,"data-sort")===r.valueName){var a=t.utils.getAttribute(i,"data-order");"asc"==a||"desc"==a?a==r.order&&t.utils.classes(i).add(r.order):t.utils.classes(i).add(r.order)}}}},r=function(){t.trigger("sortStart");var r={},n=arguments[0].currentTarget||arguments[0].srcElement||void 0;n?(r.valueName=t.utils.getAttribute(n,"data-sort"),e.getInSensitive(n,r),r.order=e.getOrder(n)):((r=arguments[1]||r).valueName=arguments[0],r.order=r.order||"asc",r.insensitive=void 0===r.insensitive||r.insensitive),e.clear(),e.setOrder(r);var s,i=r.sortFunction||t.sortFunction||null,a="desc"===r.order?-1:1;s=i?function(t,e){return i(t,e,r)*a}:function(e,n){var s=t.utils.naturalSort;return s.alphabet=t.alphabet||r.alphabet||void 0,!s.alphabet&&r.insensitive&&(s=t.utils.naturalSort.caseInsensitive),s(e.values()[r.valueName],n.values()[r.valueName])*a},t.items.sort(s),t.update(),t.trigger("sortComplete")};return t.handlers.sortStart=t.handlers.sortStart||[],t.handlers.sortComplete=t.handlers.sortComplete||[],e.els=t.utils.getByClass(t.listContainer,t.sortClass),t.utils.events.bind(e.els,"click",r),t.on("searchStart",e.clear),t.on("filterStart",e.clear),r}},"./src/templater.js":function(t){var e=function(t){var e,r=this,n=function(e,r){var n=e.cloneNode(!0);n.removeAttribute("id");for(var s=0,i=r.length;s<i;s++){var a=void 0,o=r[s];if(o.data)for(var l=0,u=o.data.length;l<u;l++)n.setAttribute("data-"+o.data[l],"");else o.attr&&o.name?(a=t.utils.getByClass(n,o.name,!0))&&a.setAttribute(o.attr,""):(a=t.utils.getByClass(n,o,!0))&&(a.innerHTML="")}return n},s=function(){for(var e=t.list.childNodes,r=0,n=e.length;r<n;r++)if(void 0===e[r].data)return e[r].cloneNode(!0)},i=function(t){if("string"==typeof t){if(/<tr[\s>]/g.exec(t)){var e=document.createElement("tbody");return e.innerHTML=t,e.firstElementChild}if(-1!==t.indexOf("<")){var r=document.createElement("div");return r.innerHTML=t,r.firstElementChild}}},a=function(e,r,n){var s=void 0,i=function(e){for(var r=0,n=t.valueNames.length;r<n;r++){var s=t.valueNames[r];if(s.data){for(var i=s.data,a=0,o=i.length;a<o;a++)if(i[a]===e)return{data:e}}else{if(s.attr&&s.name&&s.name==e)return s;if(s===e)return e}}}(r);i&&(i.data?e.elm.setAttribute("data-"+i.data,n):i.attr&&i.name?(s=t.utils.getByClass(e.elm,i.name,!0))&&s.setAttribute(i.attr,n):(s=t.utils.getByClass(e.elm,i,!0))&&(s.innerHTML=n))};this.get=function(e,n){r.create(e);for(var s={},i=0,a=n.length;i<a;i++){var o=void 0,l=n[i];if(l.data)for(var u=0,c=l.data.length;u<c;u++)s[l.data[u]]=t.utils.getAttribute(e.elm,"data-"+l.data[u]);else l.attr&&l.name?(o=t.utils.getByClass(e.elm,l.name,!0),s[l.name]=o?t.utils.getAttribute(o,l.attr):""):(o=t.utils.getByClass(e.elm,l,!0),s[l]=o?o.innerHTML:"")}return s},this.set=function(t,e){if(!r.create(t))for(var n in e)e.hasOwnProperty(n)&&a(t,n,e[n])},this.create=function(t){return void 0===t.elm&&(t.elm=e(t.values()),r.set(t,t.values()),!0)},this.remove=function(e){e.elm.parentNode===t.list&&t.list.removeChild(e.elm)},this.show=function(e){r.create(e),t.list.appendChild(e.elm)},this.hide=function(e){void 0!==e.elm&&e.elm.parentNode===t.list&&t.list.removeChild(e.elm)},this.clear=function(){if(t.list.hasChildNodes())for(;t.list.childNodes.length>=1;)t.list.removeChild(t.list.firstChild)},function(){var r;if("function"!=typeof t.item){if(!(r="string"==typeof t.item?-1===t.item.indexOf("<")?document.getElementById(t.item):i(t.item):s()))throw new Error("The list needs to have at least one item on init otherwise you'll have to add a template.");r=n(r,t.valueNames),e=function(){return r.cloneNode(!0)}}else e=function(e){var r=t.item(e);return i(r)}}()};t.exports=function(t){return new e(t)}},"./src/utils/classes.js":function(t,e,r){var n=r("./src/utils/index-of.js"),s=/\s+/;Object.prototype.toString;function i(t){if(!t||!t.nodeType)throw new Error("A DOM element reference is required");this.el=t,this.list=t.classList}t.exports=function(t){return new i(t)},i.prototype.add=function(t){if(this.list)return this.list.add(t),this;var e=this.array();return~n(e,t)||e.push(t),this.el.className=e.join(" "),this},i.prototype.remove=function(t){if(this.list)return this.list.remove(t),this;var e=this.array(),r=n(e,t);return~r&&e.splice(r,1),this.el.className=e.join(" "),this},i.prototype.toggle=function(t,e){return this.list?(void 0!==e?e!==this.list.toggle(t,e)&&this.list.toggle(t):this.list.toggle(t),this):(void 0!==e?e?this.add(t):this.remove(t):this.has(t)?this.remove(t):this.add(t),this)},i.prototype.array=function(){var t=(this.el.getAttribute("class")||"").replace(/^\s+|\s+$/g,"").split(s);return""===t[0]&&t.shift(),t},i.prototype.has=i.prototype.contains=function(t){return this.list?this.list.contains(t):!!~n(this.array(),t)}},"./src/utils/events.js":function(t,e,r){var n=window.addEventListener?"addEventListener":"attachEvent",s=window.removeEventListener?"removeEventListener":"detachEvent",i="addEventListener"!==n?"on":"",a=r("./src/utils/to-array.js");e.bind=function(t,e,r,s){for(var o=0,l=(t=a(t)).length;o<l;o++)t[o][n](i+e,r,s||!1)},e.unbind=function(t,e,r,n){for(var o=0,l=(t=a(t)).length;o<l;o++)t[o][s](i+e,r,n||!1)},e.debounce=function(t,e,r){var n;return e?function(){var s=this,i=arguments,a=function(){n=null,r||t.apply(s,i)},o=r&&!n;clearTimeout(n),n=setTimeout(a,e),o&&t.apply(s,i)}:t}},"./src/utils/extend.js":function(t){t.exports=function(t){for(var e,r=Array.prototype.slice.call(arguments,1),n=0;e=r[n];n++)if(e)for(var s in e)t[s]=e[s];return t}},"./src/utils/fuzzy.js":function(t){t.exports=function(t,e,r){var n=r.location||0,s=r.distance||100,i=r.threshold||.4;if(e===t)return!0;if(e.length>32)return!1;var a=n,o=function(){var t,r={};for(t=0;t<e.length;t++)r[e.charAt(t)]=0;for(t=0;t<e.length;t++)r[e.charAt(t)]|=1<<e.length-t-1;return r}();function l(t,r){var n=t/e.length,i=Math.abs(a-r);return s?n+i/s:i?1:n}var u=i,c=t.indexOf(e,a);-1!=c&&(u=Math.min(l(0,c),u),-1!=(c=t.lastIndexOf(e,a+e.length))&&(u=Math.min(l(0,c),u)));var f,h,d=1<<e.length-1;c=-1;for(var v,g=e.length+t.length,m=0;m<e.length;m++){for(f=0,h=g;f<h;)l(m,a+h)<=u?f=h:g=h,h=Math.floor((g-f)/2+f);g=h;var p=Math.max(1,a-h+1),y=Math.min(a+h,t.length)+e.length,C=Array(y+2);C[y+1]=(1<<m)-1;for(var b=y;b>=p;b--){var j=o[t.charAt(b-1)];if(C[b]=0===m?(C[b+1]<<1|1)&j:(C[b+1]<<1|1)&j|(v[b+1]|v[b])<<1|1|v[b+1],C[b]&d){var x=l(m,b-1);if(x<=u){if(u=x,!((c=b-1)>a))break;p=Math.max(1,2*a-c)}}}if(l(m+1,a)>u)break;v=C}return!(c<0)}},"./src/utils/get-attribute.js":function(t){t.exports=function(t,e){var r=t.getAttribute&&t.getAttribute(e)||null;if(!r)for(var n=t.attributes,s=n.length,i=0;i<s;i++)void 0!==n[i]&&n[i].nodeName===e&&(r=n[i].nodeValue);return r}},"./src/utils/get-by-class.js":function(t){t.exports=function(t,e,r,n){return(n=n||{}).test&&n.getElementsByClassName||!n.test&&document.getElementsByClassName?function(t,e,r){return r?t.getElementsByClassName(e)[0]:t.getElementsByClassName(e)}(t,e,r):n.test&&n.querySelector||!n.test&&document.querySelector?function(t,e,r){return e="."+e,r?t.querySelector(e):t.querySelectorAll(e)}(t,e,r):function(t,e,r){for(var n=[],s=t.getElementsByTagName("*"),i=s.length,a=new RegExp("(^|\\s)"+e+"(\\s|$)"),o=0,l=0;o<i;o++)if(a.test(s[o].className)){if(r)return s[o];n[l]=s[o],l++}return n}(t,e,r)}},"./src/utils/index-of.js":function(t){var e=[].indexOf;t.exports=function(t,r){if(e)return t.indexOf(r);for(var n=0,s=t.length;n<s;++n)if(t[n]===r)return n;return-1}},"./src/utils/to-array.js":function(t){t.exports=function(t){if(void 0===t)return[];if(null===t)return[null];if(t===window)return[window];if("string"==typeof t)return[t];if(function(t){return"[object Array]"===Object.prototype.toString.call(t)}(t))return t;if("number"!=typeof t.length)return[t];if("function"==typeof t&&t instanceof Function)return[t];for(var e=[],r=0,n=t.length;r<n;r++)(Object.prototype.hasOwnProperty.call(t,r)||r in t)&&e.push(t[r]);return e.length?e:[]}},"./src/utils/to-string.js":function(t){t.exports=function(t){return t=(t=null===(t=void 0===t?"":t)?"":t).toString()}},"./node_modules/string-natural-compare/natural-compare.js":function(t){"use strict";var e,r,n=0;function s(t){return t>=48&&t<=57}function i(t,e){for(var i=(t+="").length,a=(e+="").length,o=0,l=0;o<i&&l<a;){var u=t.charCodeAt(o),c=e.charCodeAt(l);if(s(u)){if(!s(c))return u-c;for(var f=o,h=l;48===u&&++f<i;)u=t.charCodeAt(f);for(;48===c&&++h<a;)c=e.charCodeAt(h);for(var d=f,v=h;d<i&&s(t.charCodeAt(d));)++d;for(;v<a&&s(e.charCodeAt(v));)++v;var g=d-f-v+h;if(g)return g;for(;f<d;)if(g=t.charCodeAt(f++)-e.charCodeAt(h++))return g;o=d,l=v}else{if(u!==c)return u<n&&c<n&&-1!==r[u]&&-1!==r[c]?r[u]-r[c]:u-c;++o,++l}}return o>=i&&l<a&&i>=a?-1:l>=a&&o<i&&a>=i?1:i-a}i.caseInsensitive=i.i=function(t,e){return i((""+t).toLowerCase(),(""+e).toLowerCase())},Object.defineProperties(i,{alphabet:{get:function(){return e},set:function(t){r=[];var s=0;if(e=t)for(;s<e.length;s++)r[e.charCodeAt(s)]=s;for(n=r.length,s=0;s<n;s++)void 0===r[s]&&(r[s]=-1)}}}),t.exports=i}},e={};return function r(n){if(e[n])return e[n].exports;var s=e[n]={exports:{}};return t[n](s,s.exports,r),s.exports}("./src/index.js")}();
2
+ //# sourceMappingURL=list.min.js.map
site_libs/quarto-listing/quarto-listing.js ADDED
@@ -0,0 +1,254 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const kProgressiveAttr = "data-src";
2
+ let categoriesLoaded = false;
3
+
4
+ window.quartoListingCategory = (category) => {
5
+ // category is URI encoded in EJS template for UTF-8 support
6
+ category = decodeURIComponent(atob(category));
7
+ if (categoriesLoaded) {
8
+ activateCategory(category);
9
+ setCategoryHash(category);
10
+ }
11
+ };
12
+
13
+ window["quarto-listing-loaded"] = () => {
14
+ // Process any existing hash
15
+ const hash = getHash();
16
+
17
+ if (hash) {
18
+ // If there is a category, switch to that
19
+ if (hash.category) {
20
+ // category hash are URI encoded so we need to decode it before processing
21
+ // so that we can match it with the category element processed in JS
22
+ activateCategory(decodeURIComponent(hash.category));
23
+ }
24
+ // Paginate a specific listing
25
+ const listingIds = Object.keys(window["quarto-listings"]);
26
+ for (const listingId of listingIds) {
27
+ const page = hash[getListingPageKey(listingId)];
28
+ if (page) {
29
+ showPage(listingId, page);
30
+ }
31
+ }
32
+ }
33
+
34
+ const listingIds = Object.keys(window["quarto-listings"]);
35
+ for (const listingId of listingIds) {
36
+ // The actual list
37
+ const list = window["quarto-listings"][listingId];
38
+
39
+ // Update the handlers for pagination events
40
+ refreshPaginationHandlers(listingId);
41
+
42
+ // Render any visible items that need it
43
+ renderVisibleProgressiveImages(list);
44
+
45
+ // Whenever the list is updated, we also need to
46
+ // attach handlers to the new pagination elements
47
+ // and refresh any newly visible items.
48
+ list.on("updated", function () {
49
+ renderVisibleProgressiveImages(list);
50
+ setTimeout(() => refreshPaginationHandlers(listingId));
51
+
52
+ // Show or hide the no matching message
53
+ toggleNoMatchingMessage(list);
54
+ });
55
+ }
56
+ };
57
+
58
+ window.document.addEventListener("DOMContentLoaded", function (_event) {
59
+ // Attach click handlers to categories
60
+ const categoryEls = window.document.querySelectorAll(
61
+ ".quarto-listing-category .category"
62
+ );
63
+
64
+ for (const categoryEl of categoryEls) {
65
+ // category needs to support non ASCII characters
66
+ const category = decodeURIComponent(
67
+ atob(categoryEl.getAttribute("data-category"))
68
+ );
69
+ categoryEl.onclick = () => {
70
+ activateCategory(category);
71
+ setCategoryHash(category);
72
+ };
73
+ }
74
+
75
+ // Attach a click handler to the category title
76
+ // (there should be only one, but since it is a class name, handle N)
77
+ const categoryTitleEls = window.document.querySelectorAll(
78
+ ".quarto-listing-category-title"
79
+ );
80
+ for (const categoryTitleEl of categoryTitleEls) {
81
+ categoryTitleEl.onclick = () => {
82
+ activateCategory("");
83
+ setCategoryHash("");
84
+ };
85
+ }
86
+
87
+ categoriesLoaded = true;
88
+ });
89
+
90
+ function toggleNoMatchingMessage(list) {
91
+ const selector = `#${list.listContainer.id} .listing-no-matching`;
92
+ const noMatchingEl = window.document.querySelector(selector);
93
+ if (noMatchingEl) {
94
+ if (list.visibleItems.length === 0) {
95
+ noMatchingEl.classList.remove("d-none");
96
+ } else {
97
+ if (!noMatchingEl.classList.contains("d-none")) {
98
+ noMatchingEl.classList.add("d-none");
99
+ }
100
+ }
101
+ }
102
+ }
103
+
104
+ function setCategoryHash(category) {
105
+ setHash({ category });
106
+ }
107
+
108
+ function setPageHash(listingId, page) {
109
+ const currentHash = getHash() || {};
110
+ currentHash[getListingPageKey(listingId)] = page;
111
+ setHash(currentHash);
112
+ }
113
+
114
+ function getListingPageKey(listingId) {
115
+ return `${listingId}-page`;
116
+ }
117
+
118
+ function refreshPaginationHandlers(listingId) {
119
+ const listingEl = window.document.getElementById(listingId);
120
+ const paginationEls = listingEl.querySelectorAll(
121
+ ".pagination li.page-item:not(.disabled) .page.page-link"
122
+ );
123
+ for (const paginationEl of paginationEls) {
124
+ paginationEl.onclick = (sender) => {
125
+ setPageHash(listingId, sender.target.getAttribute("data-i"));
126
+ showPage(listingId, sender.target.getAttribute("data-i"));
127
+ return false;
128
+ };
129
+ }
130
+ }
131
+
132
+ function renderVisibleProgressiveImages(list) {
133
+ // Run through the visible items and render any progressive images
134
+ for (const item of list.visibleItems) {
135
+ const itemEl = item.elm;
136
+ if (itemEl) {
137
+ const progressiveImgs = itemEl.querySelectorAll(
138
+ `img[${kProgressiveAttr}]`
139
+ );
140
+ for (const progressiveImg of progressiveImgs) {
141
+ const srcValue = progressiveImg.getAttribute(kProgressiveAttr);
142
+ if (srcValue) {
143
+ progressiveImg.setAttribute("src", srcValue);
144
+ }
145
+ progressiveImg.removeAttribute(kProgressiveAttr);
146
+ }
147
+ }
148
+ }
149
+ }
150
+
151
+ function getHash() {
152
+ // Hashes are of the form
153
+ // #name:value|name1:value1|name2:value2
154
+ const currentUrl = new URL(window.location);
155
+ const hashRaw = currentUrl.hash ? currentUrl.hash.slice(1) : undefined;
156
+ return parseHash(hashRaw);
157
+ }
158
+
159
+ const kAnd = "&";
160
+ const kEquals = "=";
161
+
162
+ function parseHash(hash) {
163
+ if (!hash) {
164
+ return undefined;
165
+ }
166
+ const hasValuesStrs = hash.split(kAnd);
167
+ const hashValues = hasValuesStrs
168
+ .map((hashValueStr) => {
169
+ const vals = hashValueStr.split(kEquals);
170
+ if (vals.length === 2) {
171
+ return { name: vals[0], value: vals[1] };
172
+ } else {
173
+ return undefined;
174
+ }
175
+ })
176
+ .filter((value) => {
177
+ return value !== undefined;
178
+ });
179
+
180
+ const hashObj = {};
181
+ hashValues.forEach((hashValue) => {
182
+ hashObj[hashValue.name] = decodeURIComponent(hashValue.value);
183
+ });
184
+ return hashObj;
185
+ }
186
+
187
+ function makeHash(obj) {
188
+ return Object.keys(obj)
189
+ .map((key) => {
190
+ return `${key}${kEquals}${obj[key]}`;
191
+ })
192
+ .join(kAnd);
193
+ }
194
+
195
+ function setHash(obj) {
196
+ const hash = makeHash(obj);
197
+ window.history.pushState(null, null, `#${hash}`);
198
+ }
199
+
200
+ function showPage(listingId, page) {
201
+ const list = window["quarto-listings"][listingId];
202
+ if (list) {
203
+ list.show((page - 1) * list.page + 1, list.page);
204
+ }
205
+ }
206
+
207
+ function activateCategory(category) {
208
+ // Deactivate existing categories
209
+ const activeEls = window.document.querySelectorAll(
210
+ ".quarto-listing-category .category.active"
211
+ );
212
+ for (const activeEl of activeEls) {
213
+ activeEl.classList.remove("active");
214
+ }
215
+
216
+ // Activate this category
217
+ const categoryEl = window.document.querySelector(
218
+ `.quarto-listing-category .category[data-category='${btoa(
219
+ encodeURIComponent(category)
220
+ )}']`
221
+ );
222
+ if (categoryEl) {
223
+ categoryEl.classList.add("active");
224
+ }
225
+
226
+ // Filter the listings to this category
227
+ filterListingCategory(category);
228
+ }
229
+
230
+ function filterListingCategory(category) {
231
+ const listingIds = Object.keys(window["quarto-listings"]);
232
+ for (const listingId of listingIds) {
233
+ const list = window["quarto-listings"][listingId];
234
+ if (list) {
235
+ if (category === "") {
236
+ // resets the filter
237
+ list.filter();
238
+ } else {
239
+ // filter to this category
240
+ list.filter(function (item) {
241
+ const itemValues = item.values();
242
+ if (itemValues.categories !== null) {
243
+ const categories = decodeURIComponent(
244
+ atob(itemValues.categories)
245
+ ).split(",");
246
+ return categories.includes(category);
247
+ } else {
248
+ return false;
249
+ }
250
+ });
251
+ }
252
+ }
253
+ }
254
+ }
site_libs/quarto-nav/headroom.min.js ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * headroom.js v0.12.0 - Give your page some headroom. Hide your header until you need it
3
+ * Copyright (c) 2020 Nick Williams - http://wicky.nillia.ms/headroom.js
4
+ * License: MIT
5
+ */
6
+
7
+ !function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t=t||self).Headroom=n()}(this,function(){"use strict";function t(){return"undefined"!=typeof window}function d(t){return function(t){return t&&t.document&&function(t){return 9===t.nodeType}(t.document)}(t)?function(t){var n=t.document,o=n.body,s=n.documentElement;return{scrollHeight:function(){return Math.max(o.scrollHeight,s.scrollHeight,o.offsetHeight,s.offsetHeight,o.clientHeight,s.clientHeight)},height:function(){return t.innerHeight||s.clientHeight||o.clientHeight},scrollY:function(){return void 0!==t.pageYOffset?t.pageYOffset:(s||o.parentNode||o).scrollTop}}}(t):function(t){return{scrollHeight:function(){return Math.max(t.scrollHeight,t.offsetHeight,t.clientHeight)},height:function(){return Math.max(t.offsetHeight,t.clientHeight)},scrollY:function(){return t.scrollTop}}}(t)}function n(t,s,e){var n,o=function(){var n=!1;try{var t={get passive(){n=!0}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){n=!1}return n}(),i=!1,r=d(t),l=r.scrollY(),a={};function c(){var t=Math.round(r.scrollY()),n=r.height(),o=r.scrollHeight();a.scrollY=t,a.lastScrollY=l,a.direction=l<t?"down":"up",a.distance=Math.abs(t-l),a.isOutOfBounds=t<0||o<t+n,a.top=t<=s.offset[a.direction],a.bottom=o<=t+n,a.toleranceExceeded=a.distance>s.tolerance[a.direction],e(a),l=t,i=!1}function h(){i||(i=!0,n=requestAnimationFrame(c))}var u=!!o&&{passive:!0,capture:!1};return t.addEventListener("scroll",h,u),c(),{destroy:function(){cancelAnimationFrame(n),t.removeEventListener("scroll",h,u)}}}function o(t){return t===Object(t)?t:{down:t,up:t}}function s(t,n){n=n||{},Object.assign(this,s.options,n),this.classes=Object.assign({},s.options.classes,n.classes),this.elem=t,this.tolerance=o(this.tolerance),this.offset=o(this.offset),this.initialised=!1,this.frozen=!1}return s.prototype={constructor:s,init:function(){return s.cutsTheMustard&&!this.initialised&&(this.addClass("initial"),this.initialised=!0,setTimeout(function(t){t.scrollTracker=n(t.scroller,{offset:t.offset,tolerance:t.tolerance},t.update.bind(t))},100,this)),this},destroy:function(){this.initialised=!1,Object.keys(this.classes).forEach(this.removeClass,this),this.scrollTracker.destroy()},unpin:function(){!this.hasClass("pinned")&&this.hasClass("unpinned")||(this.addClass("unpinned"),this.removeClass("pinned"),this.onUnpin&&this.onUnpin.call(this))},pin:function(){this.hasClass("unpinned")&&(this.addClass("pinned"),this.removeClass("unpinned"),this.onPin&&this.onPin.call(this))},freeze:function(){this.frozen=!0,this.addClass("frozen")},unfreeze:function(){this.frozen=!1,this.removeClass("frozen")},top:function(){this.hasClass("top")||(this.addClass("top"),this.removeClass("notTop"),this.onTop&&this.onTop.call(this))},notTop:function(){this.hasClass("notTop")||(this.addClass("notTop"),this.removeClass("top"),this.onNotTop&&this.onNotTop.call(this))},bottom:function(){this.hasClass("bottom")||(this.addClass("bottom"),this.removeClass("notBottom"),this.onBottom&&this.onBottom.call(this))},notBottom:function(){this.hasClass("notBottom")||(this.addClass("notBottom"),this.removeClass("bottom"),this.onNotBottom&&this.onNotBottom.call(this))},shouldUnpin:function(t){return"down"===t.direction&&!t.top&&t.toleranceExceeded},shouldPin:function(t){return"up"===t.direction&&t.toleranceExceeded||t.top},addClass:function(t){this.elem.classList.add.apply(this.elem.classList,this.classes[t].split(" "))},removeClass:function(t){this.elem.classList.remove.apply(this.elem.classList,this.classes[t].split(" "))},hasClass:function(t){return this.classes[t].split(" ").every(function(t){return this.classList.contains(t)},this.elem)},update:function(t){t.isOutOfBounds||!0!==this.frozen&&(t.top?this.top():this.notTop(),t.bottom?this.bottom():this.notBottom(),this.shouldUnpin(t)?this.unpin():this.shouldPin(t)&&this.pin())}},s.options={tolerance:{up:0,down:0},offset:0,scroller:t()?window:null,classes:{frozen:"headroom--frozen",pinned:"headroom--pinned",unpinned:"headroom--unpinned",top:"headroom--top",notTop:"headroom--not-top",bottom:"headroom--bottom",notBottom:"headroom--not-bottom",initial:"headroom"}},s.cutsTheMustard=!!(t()&&function(){}.bind&&"classList"in document.documentElement&&Object.assign&&Object.keys&&requestAnimationFrame),s});
site_libs/quarto-nav/quarto-nav.js ADDED
@@ -0,0 +1,325 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const headroomChanged = new CustomEvent("quarto-hrChanged", {
2
+ detail: {},
3
+ bubbles: true,
4
+ cancelable: false,
5
+ composed: false,
6
+ });
7
+
8
+ const announceDismiss = () => {
9
+ const annEl = window.document.getElementById("quarto-announcement");
10
+ if (annEl) {
11
+ annEl.remove();
12
+
13
+ const annId = annEl.getAttribute("data-announcement-id");
14
+ window.localStorage.setItem(`quarto-announce-${annId}`, "true");
15
+ }
16
+ };
17
+
18
+ const announceRegister = () => {
19
+ const annEl = window.document.getElementById("quarto-announcement");
20
+ if (annEl) {
21
+ const annId = annEl.getAttribute("data-announcement-id");
22
+ const isDismissed =
23
+ window.localStorage.getItem(`quarto-announce-${annId}`) || false;
24
+ if (isDismissed) {
25
+ announceDismiss();
26
+ return;
27
+ } else {
28
+ annEl.classList.remove("hidden");
29
+ }
30
+
31
+ const actionEl = annEl.querySelector(".quarto-announcement-action");
32
+ if (actionEl) {
33
+ actionEl.addEventListener("click", function (e) {
34
+ e.preventDefault();
35
+ // Hide the bar immediately
36
+ announceDismiss();
37
+ });
38
+ }
39
+ }
40
+ };
41
+
42
+ window.document.addEventListener("DOMContentLoaded", function () {
43
+ let init = false;
44
+
45
+ announceRegister();
46
+
47
+ // Manage the back to top button, if one is present.
48
+ let lastScrollTop = window.pageYOffset || document.documentElement.scrollTop;
49
+ const scrollDownBuffer = 5;
50
+ const scrollUpBuffer = 35;
51
+ const btn = document.getElementById("quarto-back-to-top");
52
+ const hideBackToTop = () => {
53
+ btn.style.display = "none";
54
+ };
55
+ const showBackToTop = () => {
56
+ btn.style.display = "inline-block";
57
+ };
58
+ if (btn) {
59
+ window.document.addEventListener(
60
+ "scroll",
61
+ function () {
62
+ const currentScrollTop =
63
+ window.pageYOffset || document.documentElement.scrollTop;
64
+
65
+ // Shows and hides the button 'intelligently' as the user scrolls
66
+ if (currentScrollTop - scrollDownBuffer > lastScrollTop) {
67
+ hideBackToTop();
68
+ lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop;
69
+ } else if (currentScrollTop < lastScrollTop - scrollUpBuffer) {
70
+ showBackToTop();
71
+ lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop;
72
+ }
73
+
74
+ // Show the button at the bottom, hides it at the top
75
+ if (currentScrollTop <= 0) {
76
+ hideBackToTop();
77
+ } else if (
78
+ window.innerHeight + currentScrollTop >=
79
+ document.body.offsetHeight
80
+ ) {
81
+ showBackToTop();
82
+ }
83
+ },
84
+ false
85
+ );
86
+ }
87
+
88
+ function throttle(func, wait) {
89
+ var timeout;
90
+ return function () {
91
+ const context = this;
92
+ const args = arguments;
93
+ const later = function () {
94
+ clearTimeout(timeout);
95
+ timeout = null;
96
+ func.apply(context, args);
97
+ };
98
+
99
+ if (!timeout) {
100
+ timeout = setTimeout(later, wait);
101
+ }
102
+ };
103
+ }
104
+
105
+ function headerOffset() {
106
+ // Set an offset if there is are fixed top navbar
107
+ const headerEl = window.document.querySelector("header.fixed-top");
108
+ if (headerEl) {
109
+ return headerEl.clientHeight;
110
+ } else {
111
+ return 0;
112
+ }
113
+ }
114
+
115
+ function footerOffset() {
116
+ const footerEl = window.document.querySelector("footer.footer");
117
+ if (footerEl) {
118
+ return footerEl.clientHeight;
119
+ } else {
120
+ return 0;
121
+ }
122
+ }
123
+
124
+ function dashboardOffset() {
125
+ const dashboardNavEl = window.document.getElementById(
126
+ "quarto-dashboard-header"
127
+ );
128
+ if (dashboardNavEl !== null) {
129
+ return dashboardNavEl.clientHeight;
130
+ } else {
131
+ return 0;
132
+ }
133
+ }
134
+
135
+ function updateDocumentOffsetWithoutAnimation() {
136
+ updateDocumentOffset(false);
137
+ }
138
+
139
+ function updateDocumentOffset(animated) {
140
+ // set body offset
141
+ const topOffset = headerOffset();
142
+ const bodyOffset = topOffset + footerOffset() + dashboardOffset();
143
+ const bodyEl = window.document.body;
144
+ bodyEl.setAttribute("data-bs-offset", topOffset);
145
+ bodyEl.style.paddingTop = topOffset + "px";
146
+
147
+ // deal with sidebar offsets
148
+ const sidebars = window.document.querySelectorAll(
149
+ ".sidebar, .headroom-target"
150
+ );
151
+ sidebars.forEach((sidebar) => {
152
+ if (!animated) {
153
+ sidebar.classList.add("notransition");
154
+ // Remove the no transition class after the animation has time to complete
155
+ setTimeout(function () {
156
+ sidebar.classList.remove("notransition");
157
+ }, 201);
158
+ }
159
+
160
+ if (window.Headroom && sidebar.classList.contains("sidebar-unpinned")) {
161
+ sidebar.style.top = "0";
162
+ sidebar.style.maxHeight = "100vh";
163
+ } else {
164
+ sidebar.style.top = topOffset + "px";
165
+ sidebar.style.maxHeight = "calc(100vh - " + topOffset + "px)";
166
+ }
167
+ });
168
+
169
+ // allow space for footer
170
+ const mainContainer = window.document.querySelector(".quarto-container");
171
+ if (mainContainer) {
172
+ mainContainer.style.minHeight = "calc(100vh - " + bodyOffset + "px)";
173
+ }
174
+
175
+ // link offset
176
+ let linkStyle = window.document.querySelector("#quarto-target-style");
177
+ if (!linkStyle) {
178
+ linkStyle = window.document.createElement("style");
179
+ linkStyle.setAttribute("id", "quarto-target-style");
180
+ window.document.head.appendChild(linkStyle);
181
+ }
182
+ while (linkStyle.firstChild) {
183
+ linkStyle.removeChild(linkStyle.firstChild);
184
+ }
185
+ if (topOffset > 0) {
186
+ linkStyle.appendChild(
187
+ window.document.createTextNode(`
188
+ section:target::before {
189
+ content: "";
190
+ display: block;
191
+ height: ${topOffset}px;
192
+ margin: -${topOffset}px 0 0;
193
+ }`)
194
+ );
195
+ }
196
+ if (init) {
197
+ window.dispatchEvent(headroomChanged);
198
+ }
199
+ init = true;
200
+ }
201
+
202
+ // initialize headroom
203
+ var header = window.document.querySelector("#quarto-header");
204
+ if (header && window.Headroom) {
205
+ const headroom = new window.Headroom(header, {
206
+ tolerance: 5,
207
+ onPin: function () {
208
+ const sidebars = window.document.querySelectorAll(
209
+ ".sidebar, .headroom-target"
210
+ );
211
+ sidebars.forEach((sidebar) => {
212
+ sidebar.classList.remove("sidebar-unpinned");
213
+ });
214
+ updateDocumentOffset();
215
+ },
216
+ onUnpin: function () {
217
+ const sidebars = window.document.querySelectorAll(
218
+ ".sidebar, .headroom-target"
219
+ );
220
+ sidebars.forEach((sidebar) => {
221
+ sidebar.classList.add("sidebar-unpinned");
222
+ });
223
+ updateDocumentOffset();
224
+ },
225
+ });
226
+ headroom.init();
227
+
228
+ let frozen = false;
229
+ window.quartoToggleHeadroom = function () {
230
+ if (frozen) {
231
+ headroom.unfreeze();
232
+ frozen = false;
233
+ } else {
234
+ headroom.freeze();
235
+ frozen = true;
236
+ }
237
+ };
238
+ }
239
+
240
+ window.addEventListener(
241
+ "hashchange",
242
+ function (e) {
243
+ if (
244
+ getComputedStyle(document.documentElement).scrollBehavior !== "smooth"
245
+ ) {
246
+ window.scrollTo(0, window.pageYOffset - headerOffset());
247
+ }
248
+ },
249
+ false
250
+ );
251
+
252
+ // Observe size changed for the header
253
+ const headerEl = window.document.querySelector("header.fixed-top");
254
+ if (headerEl && window.ResizeObserver) {
255
+ const observer = new window.ResizeObserver(() => {
256
+ setTimeout(updateDocumentOffsetWithoutAnimation, 0);
257
+ });
258
+ observer.observe(headerEl, {
259
+ attributes: true,
260
+ childList: true,
261
+ characterData: true,
262
+ });
263
+ } else {
264
+ window.addEventListener(
265
+ "resize",
266
+ throttle(updateDocumentOffsetWithoutAnimation, 50)
267
+ );
268
+ }
269
+ setTimeout(updateDocumentOffsetWithoutAnimation, 250);
270
+
271
+ // fixup index.html links if we aren't on the filesystem
272
+ if (window.location.protocol !== "file:") {
273
+ const links = window.document.querySelectorAll("a");
274
+ for (let i = 0; i < links.length; i++) {
275
+ if (links[i].href) {
276
+ links[i].dataset.originalHref = links[i].href;
277
+ links[i].href = links[i].href.replace(/\/index\.html/, "/");
278
+ }
279
+ }
280
+
281
+ // Fixup any sharing links that require urls
282
+ // Append url to any sharing urls
283
+ const sharingLinks = window.document.querySelectorAll(
284
+ "a.sidebar-tools-main-item, a.quarto-navigation-tool, a.quarto-navbar-tools, a.quarto-navbar-tools-item"
285
+ );
286
+ for (let i = 0; i < sharingLinks.length; i++) {
287
+ const sharingLink = sharingLinks[i];
288
+ const href = sharingLink.getAttribute("href");
289
+ if (href) {
290
+ sharingLink.setAttribute(
291
+ "href",
292
+ href.replace("|url|", window.location.href)
293
+ );
294
+ }
295
+ }
296
+
297
+ // Scroll the active navigation item into view, if necessary
298
+ const navSidebar = window.document.querySelector("nav#quarto-sidebar");
299
+ if (navSidebar) {
300
+ // Find the active item
301
+ const activeItem = navSidebar.querySelector("li.sidebar-item a.active");
302
+ if (activeItem) {
303
+ // Wait for the scroll height and height to resolve by observing size changes on the
304
+ // nav element that is scrollable
305
+ const resizeObserver = new ResizeObserver((_entries) => {
306
+ // The bottom of the element
307
+ const elBottom = activeItem.offsetTop;
308
+ const viewBottom = navSidebar.scrollTop + navSidebar.clientHeight;
309
+
310
+ // The element height and scroll height are the same, then we are still loading
311
+ if (viewBottom !== navSidebar.scrollHeight) {
312
+ // Determine if the item isn't visible and scroll to it
313
+ if (elBottom >= viewBottom) {
314
+ navSidebar.scrollTop = elBottom;
315
+ }
316
+
317
+ // stop observing now since we've completed the scroll
318
+ resizeObserver.unobserve(navSidebar);
319
+ }
320
+ });
321
+ resizeObserver.observe(navSidebar);
322
+ }
323
+ }
324
+ }
325
+ });
site_libs/quarto-search/autocomplete.umd.js ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ /*! @algolia/autocomplete-js 1.19.1 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
2
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/autocomplete-js"]={})}(this,(function(e){"use strict";function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function n(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?t(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):t(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function o(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}function u(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,u,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(u=n.return(),Object(u)!==u))return}finally{if(c)throw o}}return a}}(e,t)||c(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||c(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){if(e){if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function f(e){return{current:e}}function p(e,t){var n=void 0;return function(){for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];n&&clearTimeout(n),n=setTimeout((function(){return e.apply(void 0,o)}),t)}}function m(e){return e.reduce((function(e,t){return e.concat(t)}),[])}var v=0;function d(){return"autocomplete-".concat(v++)}function y(e,t){return t.reduce((function(e,t){return e&&e[t]}),e)}function b(e){return 0===e.collections.length?0:e.collections.reduce((function(e,t){return e+t.items.length}),0)}function g(e){return e!==Object(e)}function h(e,t){if(e===t)return!0;if(g(e)||g(t)||"function"==typeof e||"function"==typeof t)return e===t;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n=0,r=Object.keys(e);n<r.length;n++){var o=r[n];if(!(o in t))return!1;if(!h(e[o],t[o]))return!1}return!0}var _=function(){};var O="1.19.1",S=[{segment:"autocomplete-core",version:O}];function j(e){var t=e.item,n=e.items,r=void 0===n?[]:n;return{index:t.__autocomplete_indexName,items:[t],positions:[1+r.findIndex((function(e){return e.objectID===t.objectID}))],queryID:t.__autocomplete_queryID,algoliaSource:["autocomplete"]}}function P(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,u,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(u=n.return(),Object(u)!==u))return}finally{if(c)throw o}}return a}}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return w(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return w(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function w(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var I=["items"],A=["items"];function E(e){return E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},E(e)}function D(e){return function(e){if(Array.isArray(e))return C(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return C(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return C(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function C(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function k(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function x(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function N(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?x(Object(n),!0).forEach((function(t){T(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):x(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function T(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==E(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==E(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===E(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function q(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20,n=[],r=0;r<e.objectIDs.length;r+=t)n.push(N(N({},e),{},{objectIDs:e.objectIDs.slice(r,r+t)}));return n}function B(e){return e.map((function(e){var t=e.items,n=k(e,I);return N(N({},n),{},{objectIDs:(null==t?void 0:t.map((function(e){return e.objectID})))||n.objectIDs})}))}function R(e){var t,n,r,o=(t=P((e.version||"").split(".").map(Number),2),n=t[0],r=t[1],n>=3||2===n&&r>=4||1===n&&r>=10);function i(t,n,r){if(o&&void 0!==r){var i=r[0].__autocomplete_algoliaCredentials,u={"X-Algolia-Application-Id":i.appId,"X-Algolia-API-Key":i.apiKey};e.apply(void 0,[t].concat(D(n),[{headers:u}]))}else e.apply(void 0,[t].concat(D(n)))}return{init:function(t,n){e("init",{appId:t,apiKey:n})},setAuthenticatedUserToken:function(t){e("setAuthenticatedUserToken",t)},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];t.length>0&&i("clickedObjectIDsAfterSearch",B(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];t.length>0&&i("clickedObjectIDs",B(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];n.length>0&&e.apply(void 0,["clickedFilters"].concat(n))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];t.length>0&&i("convertedObjectIDsAfterSearch",B(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];t.length>0&&i("convertedObjectIDs",B(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];n.length>0&&e.apply(void 0,["convertedFilters"].concat(n))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];t.length>0&&t.reduce((function(e,t){var n=t.items,r=k(t,A);return[].concat(D(e),D(q(N(N({},r),{},{objectIDs:(null==n?void 0:n.map((function(e){return e.objectID})))||r.objectIDs})).map((function(e){return{items:n,payload:e}}))))}),[]).forEach((function(e){var t=e.items;return i("viewedObjectIDs",[e.payload],t)}))},viewedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];n.length>0&&e.apply(void 0,["viewedFilters"].concat(n))}}}function L(e){var t=e.items.reduce((function(e,t){var n;return e[t.__autocomplete_indexName]=(null!==(n=e[t.__autocomplete_indexName])&&void 0!==n?n:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function F(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function U(e){return U="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},U(e)}function M(e){return function(e){if(Array.isArray(e))return H(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return H(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return H(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function H(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function V(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function W(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?V(Object(n),!0).forEach((function(t){Q(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):V(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Q(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==U(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==U(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===U(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var K="2.15.0",$="https://cdn.jsdelivr.net/npm/search-insights@".concat(K,"/dist/search-insights.min.js"),z=p((function(e){var t=e.onItemsChange,n=e.items,r=e.insights,o=e.state;t({insights:r,insightsEvents:L({items:n}).map((function(e){return W({eventName:"Items Viewed"},e)})),state:o})}),400);function G(e){var t=function(e){return W({onItemsChange:function(e){var t=e.insights,n=e.insightsEvents,r=e.state;t.viewedObjectIDs.apply(t,M(n.map((function(e){return W(W({},e),{},{algoliaSource:J(e.algoliaSource,r.context)})}))))},onSelect:function(e){var t=e.insights,n=e.insightsEvents,r=e.state;t.clickedObjectIDsAfterSearch.apply(t,M(n.map((function(e){return W(W({},e),{},{algoliaSource:J(e.algoliaSource,r.context)})}))))},onActive:_,__autocomplete_clickAnalytics:!0},e)}(e),n=t.insightsClient,r=t.insightsInitParams,o=t.onItemsChange,i=t.onSelect,u=t.onActive,a=t.__autocomplete_clickAnalytics,l=n;if(n||function(e){if("undefined"!=typeof window)e({window:window})}((function(e){var t=e.window,n=t.AlgoliaAnalyticsObject||"aa";"string"==typeof n&&(l=t[n]),l||(t.AlgoliaAnalyticsObject=n,t[n]||(t[n]=function(){t[n].queue||(t[n].queue=[]);for(var e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];t[n].queue.push(r)}),t[n].version=K,l=t[n],function(e){var t="[Autocomplete]: Could not load search-insights.js. Please load it manually following https://alg.li/insights-autocomplete";try{var n=e.document.createElement("script");n.async=!0,n.src=$,n.onerror=function(){console.error(t)},document.body.appendChild(n)}catch(e){console.error(t)}}(t))})),!l)return{};r&&l("init",W({partial:!0},r));var c=R(l),s=f([]),m=p((function(e){var t=e.state;if(t.isOpen){var n=t.collections.reduce((function(e,t){return[].concat(M(e),M(t.items))}),[]).filter(F);h(s.current.map((function(e){return e.objectID})),n.map((function(e){return e.objectID})))||(s.current=n,n.length>0&&z({onItemsChange:o,items:n,insights:c,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,n=e.onSelect,r=e.onActive;function o(e){t({algoliaInsightsPlugin:{__algoliaSearchParameters:W(W({},a?{clickAnalytics:!0}:{}),e?{userToken:X(e)}:{}),insights:c}})}l("addAlgoliaAgent","insights-plugin"),o(),l("onUserTokenChange",(function(e){o(e)})),l("getUserToken",null,(function(e,t){o(t)})),n((function(e){var t=e.item,n=e.state,r=e.event,o=e.source;F(t)&&i({state:n,event:r,insights:c,item:t,insightsEvents:[W({eventName:"Item Selected"},j({item:t,items:o.getItems().filter(F)}))]})})),r((function(e){var t=e.item,n=e.source,r=e.state,o=e.event;F(t)&&u({state:r,event:o,insights:c,item:t,insightsEvents:[W({eventName:"Item Active"},j({item:t,items:n.getItems().filter(F)}))]})}))},onStateChange:function(e){var t=e.state;m({state:t})},__autocomplete_pluginOptions:e}}function J(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0;return[].concat(M(t),["autocomplete-internal"],M(null!==(e=n.algoliaInsightsPlugin)&&void 0!==e&&e.__automaticInsights?["autocomplete-automatic"]:[]))}function X(e){return"number"==typeof e?e.toString():e}function Y(e,t){var n=t;return{then:function(t,r){return Y(e.then(ee(t,n,e),ee(r,n,e)),n)},catch:function(t){return Y(e.catch(ee(t,n,e)),n)},finally:function(t){return t&&n.onCancelList.push(t),Y(e.finally(ee(t&&function(){return n.onCancelList=[],t()},n,e)),n)},cancel:function(){n.isCanceled=!0;var e=n.onCancelList;n.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===n.isCanceled}}}function Z(e){return Y(e,{isCanceled:!1,onCancelList:[]})}function ee(e,t,n){return e?function(n){return t.isCanceled?n:e(n)}:n}var te,ne=!0;function re(e,t,n,r){if(!n)return null;if(e<0&&(null===t||null!==r&&0===t))return n+e;var o=(null===t?-1:t)+e;return o<=-1||o>=n?null===r?null:0:o}function oe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ie(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?oe(Object(n),!0).forEach((function(t){ue(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):oe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ue(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==ae(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==ae(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===ae(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ae(e){return ae="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ae(e)}function le(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return ce(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ce(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,u=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return u=e.done,e},e:function(e){a=!0,i=e},f:function(){try{u||null==n.return||n.return()}finally{if(a)throw i}}}}function ce(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var se=function(e,t){var n,r=!1,o=[],i=le(e);try{for(i.s();!(n=i.n()).done;){var u,a,l,c=null===(u=n.value.__autocomplete_pluginOptions)||void 0===u||null===(a=(l=u).awaitSubmit)||void 0===a?void 0:a.call(l);if("number"==typeof c)o.push(c);else if(!0===c){r=!0;break}}}catch(e){i.e(e)}finally{i.f()}return r?t.wait():o.length>0?t.wait(Math.max.apply(Math,o)):void 0};function fe(e){var t=function(e){var t=e.collections.map((function(e){return e.items.length})).reduce((function(e,t,n){var r=(e[n-1]||0)+t;return e.push(r),e}),[]).reduce((function(t,n){return n<=e.activeItemId?t+1:t}),0);return e.collections[t]}(e);if(!t)return null;var n=t.items[function(e){for(var t=e.state,n=e.collection,r=!1,o=0,i=0;!1===r;){var u=t.collections[o];if(u===n){r=!0;break}i+=u.items.length,o++}return t.activeItemId-i}({state:e,collection:t})],r=t.source;return{item:n,itemInputValue:r.getItemInputValue({item:n,state:e}),itemUrl:r.getItemUrl({item:n,state:e}),source:r}}function pe(e,t,n){return[e,null==n?void 0:n.sourceId,t].filter(Boolean).join("-").replace(/\s/g,"")}var me=/((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;function ve(e){return e.nativeEvent||e}function de(e){return de="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},de(e)}function ye(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function be(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==de(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==de(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===de(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ge(e,t,n){var r,o=t.initialState;return{getState:function(){return o},dispatch:function(r,i){var u=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ye(Object(n),!0).forEach((function(t){be(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ye(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},o);o=e(o,{type:r,props:t,payload:i}),n({state:o,prevState:u})},pendingRequests:(r=[],{add:function(e){return r.push(e),e.finally((function(){r=r.filter((function(t){return t!==e}))}))},cancelAll:function(){r.forEach((function(e){return e.cancel()}))},isEmpty:function(){return 0===r.length},wait:function(e){return ne?(ne=!1,te=e?Promise.race([Promise.all(r),new Promise((function(t){return setTimeout(t,e)}))]):Promise.all(r),te.then((function(){ne=!0}))):te}})}}function he(e){return he="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},he(e)}function _e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Oe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_e(Object(n),!0).forEach((function(t){Se(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_e(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Se(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==he(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==he(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===he(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function je(e){return je="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},je(e)}function Pe(e){return function(e){if(Array.isArray(e))return we(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return we(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return we(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function we(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Ie(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ae(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ie(Object(n),!0).forEach((function(t){Ee(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ie(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ee(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==je(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==je(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===je(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function De(e,t){var n,r="undefined"!=typeof window?window:{},o=e.plugins||[];return Ae(Ae({debug:!1,openOnFocus:!1,enterKeyHint:void 0,ignoreCompositionEvents:!1,placeholder:"",autoFocus:!1,defaultActiveItemId:null,stallThreshold:300,insights:void 0,environment:r,shouldPanelOpen:function(e){return b(e.state)>0},reshape:function(e){return e.sources}},e),{},{id:null!==(n=e.id)&&void 0!==n?n:d(),plugins:o,initialState:Ae({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(n){return Promise.all([].concat(Pe(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var n=[];return Promise.resolve(e(t)).then((function(e){return Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,n.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));n.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:_,onResolve:_};Object.keys(t).forEach((function(e){t[e].__default=!0}));var r=ie(ie({},t),e);return Promise.resolve(r)})))}))}(e,n)}))).then((function(e){return m(e)})).then((function(e){return e.map((function(e){return Ae(Ae({},e),{},{onSelect:function(n){e.onSelect(n),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,n)}))},onActive:function(n){e.onActive(n),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,n)}))},onResolve:function(n){e.onResolve(n),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:Ae({navigate:function(e){var t=e.itemUrl;r.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=r.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;r.open(t,"_blank","noopener")}},e.navigator)})}function Ce(e){return Ce="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ce(e)}function ke(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function xe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ke(Object(n),!0).forEach((function(t){Ne(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ke(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ne(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==Ce(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==Ce(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Ce(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Te(e){return Te="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Te(e)}function qe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Be(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?qe(Object(n),!0).forEach((function(t){Re(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):qe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Re(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==Te(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==Te(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Te(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Le(e){return function(e){if(Array.isArray(e))return Fe(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Fe(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Fe(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Fe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Ue(e){return Boolean(e.execute)}function Me(e,t,n){if(o=e,Boolean(null==o?void 0:o.execute)){var r="algolia"===e.requesterId?Object.assign.apply(Object,[{}].concat(Le(Object.keys(n.context).map((function(e){var t;return null===(t=n.context[e])||void 0===t?void 0:t.__algoliaSearchParameters}))))):{};return Be(Be({},e),{},{requests:e.queries.map((function(n){return{query:"algolia"===e.requesterId?Be(Be({},n),{},{params:Be(Be({},r),n.params)}):n,sourceId:t,transformResponse:e.transformResponse}}))})}var o;return{items:e,sourceId:t}}function He(e){var t=e.reduce((function(e,t){if(!Ue(t))return e.push(t),e;var n=t.searchClient,r=t.execute,o=t.requesterId,i=t.requests,u=e.find((function(e){return Ue(t)&&Ue(e)&&e.searchClient===n&&Boolean(o)&&e.requesterId===o}));if(u){var a;(a=u.items).push.apply(a,Le(i))}else{var l={execute:r,requesterId:o,items:i,searchClient:n};e.push(l)}return e}),[]).map((function(e){if(!Ue(e))return Promise.resolve(e);var t=e,n=t.execute,r=t.items;return n({searchClient:t.searchClient,requests:r})}));return Promise.all(t).then((function(e){return m(e)}))}function Ve(e,t,n){return t.map((function(t){var r,o=e.filter((function(e){return e.sourceId===t.sourceId})),i=o.map((function(e){return e.items})),u=o[0].transformResponse,a=u?u({results:r=i,hits:r.map((function(e){return e.hits})).filter(Boolean),facetHits:r.map((function(e){var t;return null===(t=e.facetHits)||void 0===t?void 0:t.map((function(e){return{label:e.value,count:e.count,_highlightResult:{label:{value:e.highlighted}}}}))})).filter(Boolean)}):i;return t.onResolve({source:t,results:i,items:a,state:n.getState()}),a.every(Boolean),'The `getItems` function from source "'.concat(t.sourceId,'" must return an array of items but returned ').concat(JSON.stringify(void 0),".\n\nDid you forget to return items?\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems"),{source:t,items:a}}))}function We(e){return We="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},We(e)}var Qe=["event","nextState","props","query","refresh","store"];function Ke(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $e(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ke(Object(n),!0).forEach((function(t){ze(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ke(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ze(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==We(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==We(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===We(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ge(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var Je,Xe,Ye,Ze=null,et=(Je=-1,Xe=-1,Ye=void 0,function(e){var t=++Je;return Promise.resolve(e).then((function(e){return Ye&&t<Xe?Ye:(Xe=t,Ye=e,e)}))});function tt(e){var t=e.event,n=e.nextState,r=void 0===n?{}:n,o=e.props,i=e.query,u=e.refresh,a=e.store,l=Ge(e,Qe);Ze&&o.environment.clearTimeout(Ze);var c=l.setCollections,s=l.setIsOpen,f=l.setQuery,p=l.setActiveItemId,v=l.setStatus,d=l.setContext;if(f(i),p(o.defaultActiveItemId),!i&&!1===o.openOnFocus){var y,b=a.getState().collections.map((function(e){return $e($e({},e),{},{items:[]})}));v("idle"),c(b),s(null!==(y=r.isOpen)&&void 0!==y?y:o.shouldPanelOpen({state:a.getState()}));var g=Z(et(b).then((function(){return Promise.resolve()})));return a.pendingRequests.add(g)}v("loading"),Ze=o.environment.setTimeout((function(){v("stalled")}),o.stallThreshold);var h=Z(et(o.getSources($e({query:i,refresh:u,state:a.getState()},l)).then((function(e){return Promise.all(e.map((function(e){return Promise.resolve(e.getItems($e({query:i,refresh:u,state:a.getState()},l))).then((function(t){return Me(t,e.sourceId,a.getState())}))}))).then(He).then((function(t){var n,r=t.some((function(e){return function(e){return!Array.isArray(e)&&Boolean(null==e?void 0:e._automaticInsights)}(e.items)}));r&&d({algoliaInsightsPlugin:$e($e({},(null===(n=a.getState().context)||void 0===n?void 0:n.algoliaInsightsPlugin)||{}),{},{__automaticInsights:r})});return Ve(t,e,a)})).then((function(e){return function(e){var t=e.collections,n=e.props,r=e.state,o=t.reduce((function(e,t){return xe(xe({},e),{},Ne({},t.source.sourceId,xe(xe({},t.source),{},{getItems:function(){return m(t.items)}})))}),{}),i=n.plugins.reduce((function(e,t){return t.reshape?t.reshape(e):e}),{sourcesBySourceId:o,state:r}).sourcesBySourceId;return m(n.reshape({sourcesBySourceId:i,sources:Object.values(i),state:r})).filter(Boolean).map((function(e){return{source:e,items:e.getItems()}}))}({collections:e,props:o,state:a.getState()})}))})))).then((function(e){var n;v("idle"),c(e);var f=o.shouldPanelOpen({state:a.getState()});s(null!==(n=r.isOpen)&&void 0!==n?n:o.openOnFocus&&!i&&f||f);var p=fe(a.getState());if(null!==a.getState().activeItemId&&p){var m=p.item,d=p.itemInputValue,y=p.itemUrl,b=p.source;b.onActive($e({event:t,item:m,itemInputValue:d,itemUrl:y,refresh:u,source:b,state:a.getState()},l))}})).finally((function(){v("idle"),Ze&&o.environment.clearTimeout(Ze)}));return a.pendingRequests.add(h)}function nt(e){return nt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},nt(e)}var rt=["event","props","refresh","store"];function ot(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function it(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ot(Object(n),!0).forEach((function(t){ut(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ot(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ut(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==nt(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==nt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===nt(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function at(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function lt(e){return lt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},lt(e)}var ct=["props","refresh","store"],st=["inputElement","formElement","panelElement"],ft=["inputElement"],pt=["inputElement","maxLength"],mt=["source"],vt=["item","source"];function dt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function yt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?dt(Object(n),!0).forEach((function(t){bt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):dt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function bt(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==lt(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==lt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===lt(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function gt(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function ht(e){var t=e.props,n=e.refresh,r=e.store,o=gt(e,ct);return{getEnvironmentProps:function(e){var n=e.inputElement,o=e.formElement,i=e.panelElement;function u(e){!r.getState().isOpen&&r.pendingRequests.isEmpty()||e.target===n||!1===[o,i].some((function(t){return n=t,r=e.target,n===r||n.contains(r);var n,r}))&&(r.dispatch("blur",null),t.debug||r.pendingRequests.cancelAll())}return yt({onTouchStart:u,onMouseDown:u,onTouchMove:function(e){!1!==r.getState().isOpen&&n===t.environment.document.activeElement&&e.target!==n&&n.blur()}},gt(e,st))},getRootProps:function(e){return yt({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-controls":r.getState().isOpen?r.getState().collections.map((function(e){var n=e.source;return pe(t.id,"list",n)})).join(" "):void 0,"aria-labelledby":pe(t.id,"label")},e)},getFormProps:function(e){e.inputElement;var i=gt(e,ft),u=function(i){var u;t.onSubmit(yt({event:i,refresh:n,state:r.getState()},o)),r.dispatch("submit",null),null===(u=e.inputElement)||void 0===u||u.blur()};return yt({action:"",noValidate:!0,role:"search",onSubmit:function(e){e.preventDefault();var n=se(t.plugins,r.pendingRequests);void 0!==n?n.then((function(){return u(e)})):u(e)},onReset:function(i){var u;i.preventDefault(),t.onReset(yt({event:i,refresh:n,state:r.getState()},o)),r.dispatch("reset",null),null===(u=e.inputElement)||void 0===u||u.focus()}},i)},getLabelProps:function(e){return yt({htmlFor:pe(t.id,"input"),id:pe(t.id,"label")},e)},getInputProps:function(e){var i;function u(e){(t.openOnFocus||Boolean(r.getState().query))&&tt(yt({event:e,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},o)),r.dispatch("focus",null)}var a=e||{};a.inputElement;var l=a.maxLength,c=void 0===l?512:l,s=gt(a,pt),f=fe(r.getState()),p=function(e){return Boolean(e&&e.match(me))}((null===(i=t.environment.navigator)||void 0===i?void 0:i.userAgent)||""),m=t.enterKeyHint||(null!=f&&f.itemUrl&&!p?"go":"search");return yt({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().activeItemId?pe(t.id,"item-".concat(r.getState().activeItemId),null==f?void 0:f.source):void 0,"aria-controls":r.getState().isOpen?r.getState().collections.filter((function(e){return e.items.length>0})).map((function(e){var n=e.source;return pe(t.id,"list",n)})).join(" "):void 0,"aria-labelledby":pe(t.id,"label"),value:r.getState().completion||r.getState().query,id:pe(t.id,"input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:m,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:c,type:"search",onChange:function(e){var i=e.currentTarget.value;t.ignoreCompositionEvents&&ve(e).isComposing?o.setQuery(i):tt(yt({event:e,props:t,query:i.slice(0,c),refresh:n,store:r},o))},onCompositionEnd:function(e){tt(yt({event:e,props:t,query:e.currentTarget.value.slice(0,c),refresh:n,store:r},o))},onKeyDown:function(e){ve(e).isComposing||function(e){var t=e.event,n=e.props,r=e.refresh,o=e.store,i=at(e,rt);if("ArrowUp"===t.key||"ArrowDown"===t.key){var u=function(){var e=fe(o.getState()),t=n.environment.document.getElementById(pe(n.id,"item-".concat(o.getState().activeItemId),null==e?void 0:e.source));t&&(t.scrollIntoViewIfNeeded?t.scrollIntoViewIfNeeded(!1):t.scrollIntoView(!1))},a=function(){var e=fe(o.getState());if(null!==o.getState().activeItemId&&e){var n=e.item,u=e.itemInputValue,a=e.itemUrl,l=e.source;l.onActive(it({event:t,item:n,itemInputValue:u,itemUrl:a,refresh:r,source:l,state:o.getState()},i))}};t.preventDefault(),!1===o.getState().isOpen&&(n.openOnFocus||Boolean(o.getState().query))?tt(it({event:t,props:n,query:o.getState().query,refresh:r,store:o},i)).then((function(){o.dispatch(t.key,{nextActiveItemId:n.defaultActiveItemId}),a(),setTimeout(u,0)})):(o.dispatch(t.key,{}),a(),u())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length}))){var l=se(n.plugins,o.pendingRequests);return void(void 0!==l?l.then(o.pendingRequests.cancelAll):n.debug||o.pendingRequests.cancelAll())}t.preventDefault();var c=fe(o.getState()),s=c.item,f=c.itemInputValue,p=c.itemUrl,m=c.source;if(t.metaKey||t.ctrlKey)void 0!==p&&(m.onSelect(it({event:t,item:s,itemInputValue:f,itemUrl:p,refresh:r,source:m,state:o.getState()},i)),n.navigator.navigateNewTab({itemUrl:p,item:s,state:o.getState()}));else if(t.shiftKey)void 0!==p&&(m.onSelect(it({event:t,item:s,itemInputValue:f,itemUrl:p,refresh:r,source:m,state:o.getState()},i)),n.navigator.navigateNewWindow({itemUrl:p,item:s,state:o.getState()}));else if(t.altKey);else{if(void 0!==p)return m.onSelect(it({event:t,item:s,itemInputValue:f,itemUrl:p,refresh:r,source:m,state:o.getState()},i)),void n.navigator.navigate({itemUrl:p,item:s,state:o.getState()});tt(it({event:t,nextState:{isOpen:!1},props:n,query:f,refresh:r,store:o},i)).then((function(){m.onSelect(it({event:t,item:s,itemInputValue:f,itemUrl:p,refresh:r,source:m,state:o.getState()},i))}))}}}(yt({event:e,props:t,refresh:n,store:r},o))},onFocus:u,onBlur:_,onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||u(n)}},s)},getPanelProps:function(e){return yt({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){var n=e||{},r=n.source,o=gt(n,mt);return yt({role:"listbox","aria-labelledby":pe(t.id,"label"),id:pe(t.id,"list",r)},o)},getItemProps:function(e){var i=e.item,u=e.source,a=gt(e,vt);return yt({id:pe(t.id,"item-".concat(i.__autocomplete_id),u),role:"option","aria-selected":r.getState().activeItemId===i.__autocomplete_id,onMouseMove:function(e){if(i.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",i.__autocomplete_id);var t=fe(r.getState());if(null!==r.getState().activeItemId&&t){var u=t.item,a=t.itemInputValue,l=t.itemUrl,c=t.source;c.onActive(yt({event:e,item:u,itemInputValue:a,itemUrl:l,refresh:n,source:c,state:r.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var a=u.getItemInputValue({item:i,state:r.getState()}),l=u.getItemUrl({item:i,state:r.getState()});(l?Promise.resolve():tt(yt({event:e,nextState:{isOpen:!1},props:t,query:a,refresh:n,store:r},o))).then((function(){u.onSelect(yt({event:e,item:i,itemInputValue:a,itemUrl:l,refresh:n,source:u,state:r.getState()},o))}))}},a)}}}function _t(e){return _t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_t(e)}function Ot(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function St(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ot(Object(n),!0).forEach((function(t){jt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ot(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function jt(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==_t(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==_t(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===_t(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Pt(e){var t,n,r,o,i=e.plugins,u=e.options,a=null===(t=((null===(n=u.__autocomplete_metadata)||void 0===n?void 0:n.userAgents)||[])[0])||void 0===t?void 0:t.segment,l=a?jt({},a,Object.keys((null===(r=u.__autocomplete_metadata)||void 0===r?void 0:r.options)||{})):{};return{plugins:i.map((function(e){return{name:e.name,options:Object.keys(e.__autocomplete_pluginOptions||[])}})),options:St({"autocomplete-core":Object.keys(u)},l),ua:S.concat((null===(o=u.__autocomplete_metadata)||void 0===o?void 0:o.userAgents)||[])}}function wt(e){var t,n=e.state;return!1===n.isOpen||null===n.activeItemId?null:(null===(t=fe(n))||void 0===t?void 0:t.itemInputValue)||null}function It(e){return It="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},It(e)}function At(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Et(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?At(Object(n),!0).forEach((function(t){Dt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):At(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Dt(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==It(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==It(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===It(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ct=function(e,t){switch(t.type){case"setActiveItemId":case"mousemove":return Et(Et({},e),{},{activeItemId:t.payload});case"setQuery":return Et(Et({},e),{},{query:t.payload,completion:null});case"setCollections":return Et(Et({},e),{},{collections:t.payload});case"setIsOpen":return Et(Et({},e),{},{isOpen:t.payload});case"setStatus":return Et(Et({},e),{},{status:t.payload});case"setContext":return Et(Et({},e),{},{context:Et(Et({},e.context),t.payload)});case"ArrowDown":var n=Et(Et({},e),{},{activeItemId:t.payload.hasOwnProperty("nextActiveItemId")?t.payload.nextActiveItemId:re(1,e.activeItemId,b(e),t.props.defaultActiveItemId)});return Et(Et({},n),{},{completion:wt({state:n})});case"ArrowUp":var r=Et(Et({},e),{},{activeItemId:re(-1,e.activeItemId,b(e),t.props.defaultActiveItemId)});return Et(Et({},r),{},{completion:wt({state:r})});case"Escape":return e.isOpen?Et(Et({},e),{},{activeItemId:null,isOpen:!1,completion:null}):Et(Et({},e),{},{activeItemId:null,query:"",status:"idle",collections:[]});case"submit":return Et(Et({},e),{},{activeItemId:null,isOpen:!1,status:"idle"});case"reset":return Et(Et({},e),{},{activeItemId:!0===t.props.openOnFocus?t.props.defaultActiveItemId:null,status:"idle",completion:null,query:""});case"focus":return Et(Et({},e),{},{activeItemId:t.props.defaultActiveItemId,isOpen:(t.props.openOnFocus||Boolean(e.query))&&t.props.shouldPanelOpen({state:e})});case"blur":return t.props.debug?e:Et(Et({},e),{},{isOpen:!1,activeItemId:null});case"mouseleave":return Et(Et({},e),{},{activeItemId:t.props.defaultActiveItemId});default:return"The reducer action ".concat(JSON.stringify(t.type)," is not supported."),e}};function kt(e){return kt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},kt(e)}function xt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Nt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xt(Object(n),!0).forEach((function(t){Tt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Tt(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==kt(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==kt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===kt(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qt(e){var t=[],n=De(e,t),r=ge(Ct,n,(function(e){var t,r,i=e.prevState,c=e.state;if(n.onStateChange(Nt({prevState:i,state:c,refresh:u,navigator:n.navigator},o)),!l()&&null!==(t=c.context)&&void 0!==t&&null!==(r=t.algoliaInsightsPlugin)&&void 0!==r&&r.__automaticInsights&&!1!==n.insights){var s=G({__autocomplete_clickAnalytics:!1});n.plugins.push(s),a([s])}})),o=function(e){var t=e.store;return{setActiveItemId:function(e){t.dispatch("setActiveItemId",e)},setQuery:function(e){t.dispatch("setQuery",e)},setCollections:function(e){var n=0,r=e.map((function(e){return Oe(Oe({},e),{},{items:m(e.items).map((function(e){return Oe(Oe({},e),{},{__autocomplete_id:n++})}))})}));t.dispatch("setCollections",r)},setIsOpen:function(e){t.dispatch("setIsOpen",e)},setStatus:function(e){t.dispatch("setStatus",e)},setContext:function(e){t.dispatch("setContext",e)}}}({store:r}),i=ht(Nt({props:n,refresh:u,store:r,navigator:n.navigator},o));function u(){return tt(Nt({event:new Event("input"),nextState:{isOpen:r.getState().isOpen},props:n,navigator:n.navigator,query:r.getState().query,refresh:u,store:r},o))}function a(e){e.forEach((function(e){var r;return null===(r=e.subscribe)||void 0===r?void 0:r.call(e,Nt(Nt({},o),{},{navigator:n.navigator,refresh:u,onSelect:function(e){t.push({onSelect:e})},onActive:function(e){t.push({onActive:e})},onResolve:function(e){t.push({onResolve:e})}}))}))}function l(){return n.plugins.some((function(e){return"aa.algoliaInsightsPlugin"===e.name}))}if(n.insights&&!l()){var c="boolean"==typeof n.insights?{}:n.insights;n.plugins.push(G(c))}return a(n.plugins),function(e){var t,n,r=e.metadata,o=e.environment;if(null===(t=o.navigator)||void 0===t||null===(n=t.userAgent)||void 0===n?void 0:n.includes("Algolia Crawler")){var i=o.document.createElement("meta"),u=o.document.querySelector("head");i.name="algolia:metadata",setTimeout((function(){i.content=JSON.stringify(r),u.appendChild(i)}),0)}}({metadata:Pt({plugins:n.plugins,options:e}),environment:n.environment}),Nt(Nt({refresh:u,navigator:n.navigator},i),o)}var Bt=function(e,t,n,r){var o;t[0]=0;for(var i=1;i<t.length;i++){var u=t[i++],a=t[i]?(t[0]|=u?1:2,n[t[i++]]):t[++i];3===u?r[0]=a:4===u?r[1]=Object.assign(r[1]||{},a):5===u?(r[1]=r[1]||{})[t[++i]]=a:6===u?r[1][t[++i]]+=a+"":u?(o=e.apply(a,Bt(e,a,n,["",null])),r.push(o),a[0]?t[0]|=2:(t[i-2]=0,t[i]=o)):r.push(a)}return r},Rt=new Map;function Lt(e){var t=Rt.get(this);return t||(t=new Map,Rt.set(this,t)),(t=Bt(this,t.get(e)||(t.set(e,t=function(e){for(var t,n,r=1,o="",i="",u=[0],a=function(e){1===r&&(e||(o=o.replace(/^\s*\n\s*|\s*\n\s*$/g,"")))?u.push(0,e,o):3===r&&(e||o)?(u.push(3,e,o),r=2):2===r&&"..."===o&&e?u.push(4,e,0):2===r&&o&&!e?u.push(5,0,!0,o):r>=5&&((o||!e&&5===r)&&(u.push(r,0,o,n),r=6),e&&(u.push(r,e,0,n),r=6)),o=""},l=0;l<e.length;l++){l&&(1===r&&a(),a(l));for(var c=0;c<e[l].length;c++)t=e[l][c],1===r?"<"===t?(a(),u=[u],r=3):o+=t:4===r?"--"===o&&">"===t?(r=1,o=""):o=t+o[0]:i?t===i?i="":o+=t:'"'===t||"'"===t?i=t:">"===t?(a(),r=1):r&&("="===t?(r=5,n=o,o=""):"/"===t&&(r<5||">"===e[l][c+1])?(a(),3===r&&(u=u[0]),r=u,(u=u[0]).push(2,0,r),r=0):" "===t||"\t"===t||"\n"===t||"\r"===t?(a(),r=2):o+=t),3===r&&"!--"===o&&(r=4,u=u[0])}return a(),u}(e)),t),arguments,[])).length>1?t:t[0]}var Ft=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-ClearIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","18"),n.setAttribute("height","18"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M5.293 6.707l5.293 5.293-5.293 5.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0l5.293-5.293 5.293 5.293c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-5.293-5.293 5.293-5.293c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-5.293 5.293-5.293-5.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414z"),n.appendChild(r),n};function Ut(e,t){if("string"==typeof t){var n=e.document.querySelector(t);return"The element ".concat(JSON.stringify(t)," is not in the document."),n}return t}function Mt(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((function(e,t){return Object.keys(t).forEach((function(n){var r=e[n],o=t[n];r!==o&&(e[n]=[r,o].filter(Boolean).join(" "))})),e}),{})}var Ht=function(e){return e&&"object"===r(e)&&"[object Object]"===Object.prototype.toString.call(e)};function Vt(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((function(e,t){return Object.keys(t).forEach((function(n){var r=e[n],o=t[n];Array.isArray(r)&&Array.isArray(o)?e[n]=r.concat.apply(r,l(o)):Ht(r)&&Ht(o)?e[n]=Vt(r,o):e[n]=o})),e}),{})}function Wt(e,t){return Object.entries(e).reduce((function(e,r){var i=a(r,2),u=i[0],l=i[1];return t({key:u,value:l})?n(n({},e),{},o({},u,l)):e}),{})}var Qt=["ontouchstart","ontouchend","ontouchmove","ontouchcancel"];function Kt(e,t,n){e[t]=null===n?"":"number"!=typeof n?n:n+"px"}function $t(e){this._listeners[e.type](e)}function zt(e,t,n){var r,o,i=e[t];if("style"===t)if("string"==typeof n)e.style=n;else if(null===n)e.style="";else for(t in n)i&&n[t]===i[t]||Kt(e.style,t,n[t]);else"o"===t[0]&&"n"===t[1]?(r=t!==(t=t.replace(/Capture$/,"")),((o=t.toLowerCase())in e||Qt.includes(o))&&(t=o),t=t.slice(2),e._listeners||(e._listeners={}),e._listeners[t]=n,n?i||e.addEventListener(t,$t,r):e.removeEventListener(t,$t,r)):"list"!==t&&"tagName"!==t&&"form"!==t&&"type"!==t&&"size"!==t&&"download"!==t&&"href"!==t&&t in e?e[t]=null==n?"":n:"function"!=typeof n&&"dangerouslySetInnerHTML"!==t&&(null==n||!1===n&&!/^ar/.test(t)?e.removeAttribute(t):e.setAttribute(t,n))}function Gt(e){switch(e){case"onChange":return"onInput";case"onCompositionEnd":return"oncompositionend";default:return e}}function Jt(e,t){for(var n in t)zt(e,Gt(n),t[n])}function Xt(e,t){for(var n in t)"o"===n[0]&&"n"===n[1]||zt(e,Gt(n),t[n])}var Yt=["children"];function Zt(e){return function(t,n){var r=n.children,o=void 0===r?[]:r,i=u(n,Yt),a=e.document.createElement(t);return Jt(a,i),a.append.apply(a,l(o)),a}}var en=["autocompleteScopeApi","environment","classNames","getInputProps","getInputPropsCore","isDetached","state"],tn=function(e){var t=e.environment.document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("class","aa-LoadingIcon"),t.setAttribute("viewBox","0 0 100 100"),t.setAttribute("width","20"),t.setAttribute("height","20"),t.innerHTML='<circle\n cx="50"\n cy="50"\n fill="none"\n r="35"\n stroke="currentColor"\n stroke-dasharray="164.93361431346415 56.97787143782138"\n stroke-width="6"\n>\n <animateTransform\n attributeName="transform"\n type="rotate"\n repeatCount="indefinite"\n dur="1s"\n values="0 50 50;90 50 50;180 50 50;360 50 50"\n keyTimes="0;0.40;0.65;1"\n />\n</circle>',t},nn=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-SubmitIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","20"),n.setAttribute("height","20"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M16.041 15.856c-0.034 0.026-0.067 0.055-0.099 0.087s-0.060 0.064-0.087 0.099c-1.258 1.213-2.969 1.958-4.855 1.958-1.933 0-3.682-0.782-4.95-2.050s-2.050-3.017-2.050-4.95 0.782-3.682 2.050-4.95 3.017-2.050 4.95-2.050 3.682 0.782 4.95 2.050 2.050 3.017 2.050 4.95c0 1.886-0.745 3.597-1.959 4.856zM21.707 20.293l-3.675-3.675c1.231-1.54 1.968-3.493 1.968-5.618 0-2.485-1.008-4.736-2.636-6.364s-3.879-2.636-6.364-2.636-4.736 1.008-6.364 2.636-2.636 3.879-2.636 6.364 1.008 4.736 2.636 6.364 3.879 2.636 6.364 2.636c2.125 0 4.078-0.737 5.618-1.968l3.675 3.675c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414z"),n.appendChild(r),n};function rn(e){var t=e.autocomplete,r=e.autocompleteScopeApi,o=e.classNames,i=e.environment,a=e.isDetached,l=e.placeholder,c=void 0===l?"Search":l,s=e.propGetters,f=e.setIsModalOpen,p=e.state,m=e.translations,v=Zt(i),d=s.getRootProps(n({state:p,props:t.getRootProps({})},r)),y=v("div",n({class:o.root,ariaLabel:m.detachedSearchButtonTitle},d)),b=v("div",{class:o.detachedContainer,onMouseDown:function(e){e.stopPropagation()}}),g=v("div",{class:o.detachedOverlay,children:[b],onMouseDown:function(){f(!1),t.setIsOpen(!1)}}),h=s.getLabelProps(n({state:p,props:t.getLabelProps({})},r)),_=v("button",{class:o.submitButton,type:"submit",title:m.submitButtonTitle,children:[nn({environment:i})]}),O=v("label",n({class:o.label,children:[_],ariaLabel:m.submitButtonTitle},h)),S=v("button",{class:o.clearButton,type:"reset",title:m.clearButtonTitle,children:[Ft({environment:i})]}),j=v("div",{class:o.loadingIndicator,children:[tn({environment:i})]}),P=function(e){var t=e.autocompleteScopeApi,r=e.environment;e.classNames;var o=e.getInputProps,i=e.getInputPropsCore,a=e.isDetached,l=e.state,c=u(e,en),s=Zt(r)("input",c),f=o(n({state:l,props:i({inputElement:s}),inputElement:s},t));return Jt(s,n(n({},f),{},{onKeyDown:function(e){a&&"Tab"===e.key||f.onKeyDown(e)}})),s}({class:o.input,environment:i,state:p,getInputProps:s.getInputProps,getInputPropsCore:t.getInputProps,autocompleteScopeApi:r,isDetached:a}),w=v("div",{class:o.inputWrapperPrefix,children:[O,j]}),I=v("div",{class:o.inputWrapperSuffix,children:[S]}),A=v("div",{class:o.inputWrapper,children:[P]}),E=s.getFormProps(n({state:p,props:t.getFormProps({inputElement:P})},r)),D=v("form",n({class:o.form,children:[w,A,I]},E)),C=s.getPanelProps(n({state:p,props:t.getPanelProps({})},r)),k=v("div",n({class:o.panel},C)),x=v("div",{class:o.detachedSearchButtonQuery,textContent:p.query}),N=v("div",{class:o.detachedSearchButtonPlaceholder,hidden:Boolean(p.query),textContent:c});if(a){var T=v("div",{class:o.detachedSearchButtonIcon,children:[nn({environment:i})]}),q=v("button",{type:"button",class:o.detachedSearchButton,title:m.detachedSearchButtonTitle,id:h.id,onClick:function(){f(!0)},children:[T,N,x]}),B=v("button",{type:"button",class:o.detachedCancelButton,textContent:m.detachedCancelButtonText,onTouchStart:function(e){e.stopPropagation()},onClick:function(){t.setIsOpen(!1),f(!1)}}),R=v("div",{class:o.detachedFormContainer,children:[D,B]});b.appendChild(R),y.appendChild(q)}else y.appendChild(D);return{detachedContainer:b,detachedOverlay:g,detachedSearchButtonQuery:x,detachedSearchButtonPlaceholder:N,inputWrapper:A,input:P,root:y,form:D,label:O,submitButton:_,clearButton:S,loadingIndicator:j,panel:k}}var on,un,an,ln,cn,sn,fn,pn={},mn=[],vn=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function dn(e,t){for(var n in t)e[n]=t[n];return e}function yn(e){var t=e.parentNode;t&&t.removeChild(e)}function bn(e,t,n){var r,o,i,u={};for(i in t)"key"==i?r=t[i]:"ref"==i?o=t[i]:u[i]=t[i];if(arguments.length>2&&(u.children=arguments.length>3?on.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(i in e.defaultProps)void 0===u[i]&&(u[i]=e.defaultProps[i]);return gn(e,u,r,o,null)}function gn(e,t,n,r,o){var i={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++an:o};return null==o&&null!=un.vnode&&un.vnode(i),i}function hn(e){return e.children}function _n(e,t){this.props=e,this.context=t}function On(e,t){if(null==t)return e.__?On(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?On(e):null}function Sn(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e){e.__e=e.__c.base=n.__e;break}return Sn(e)}}function jn(e){(!e.__d&&(e.__d=!0)&&ln.push(e)&&!Pn.__r++||cn!==un.debounceRendering)&&((cn=un.debounceRendering)||sn)(Pn)}function Pn(){var e,t,n,r,o,i,u,a;for(ln.sort(fn);e=ln.shift();)e.__d&&(t=ln.length,r=void 0,o=void 0,u=(i=(n=e).__v).__e,(a=n.__P)&&(r=[],(o=dn({},i)).__v=i.__v+1,Nn(a,i,o,n.__n,void 0!==a.ownerSVGElement,null!=i.__h?[u]:null,r,null==u?On(i):u,i.__h),Tn(r,i),i.__e!=u&&Sn(i)),ln.length>t&&ln.sort(fn));Pn.__r=0}function wn(e,t,n,r,o,i,u,a,l,c){var s,f,p,m,v,d,y,b=r&&r.__k||mn,g=b.length;for(n.__k=[],s=0;s<t.length;s++)if(null!=(m=n.__k[s]=null==(m=t[s])||"boolean"==typeof m||"function"==typeof m?null:"string"==typeof m||"number"==typeof m||"bigint"==typeof m?gn(null,m,null,null,m):Array.isArray(m)?gn(hn,{children:m},null,null,null):m.__b>0?gn(m.type,m.props,m.key,m.ref?m.ref:null,m.__v):m)){if(m.__=n,m.__b=n.__b+1,null===(p=b[s])||p&&m.key==p.key&&m.type===p.type)b[s]=void 0;else for(f=0;f<g;f++){if((p=b[f])&&m.key==p.key&&m.type===p.type){b[f]=void 0;break}p=null}Nn(e,m,p=p||pn,o,i,u,a,l,c),v=m.__e,(f=m.ref)&&p.ref!=f&&(y||(y=[]),p.ref&&y.push(p.ref,null,m),y.push(f,m.__c||v,m)),null!=v?(null==d&&(d=v),"function"==typeof m.type&&m.__k===p.__k?m.__d=l=In(m,l,e):l=An(e,m,p,b,v,l),"function"==typeof n.type&&(n.__d=l)):l&&p.__e==l&&l.parentNode!=e&&(l=On(p))}for(n.__e=d,s=g;s--;)null!=b[s]&&("function"==typeof n.type&&null!=b[s].__e&&b[s].__e==n.__d&&(n.__d=En(r).nextSibling),Rn(b[s],b[s]));if(y)for(s=0;s<y.length;s++)Bn(y[s],y[++s],y[++s])}function In(e,t,n){for(var r,o=e.__k,i=0;o&&i<o.length;i++)(r=o[i])&&(r.__=e,t="function"==typeof r.type?In(r,t,n):An(n,r,r,o,r.__e,t));return t}function An(e,t,n,r,o,i){var u,a,l;if(void 0!==t.__d)u=t.__d,t.__d=void 0;else if(null==n||o!=i||null==o.parentNode)e:if(null==i||i.parentNode!==e)e.appendChild(o),u=null;else{for(a=i,l=0;(a=a.nextSibling)&&l<r.length;l+=1)if(a==o)break e;e.insertBefore(o,i),u=i}return void 0!==u?u:o.nextSibling}function En(e){var t,n,r;if(null==e.type||"string"==typeof e.type)return e.__e;if(e.__k)for(t=e.__k.length-1;t>=0;t--)if((n=e.__k[t])&&(r=En(n)))return r;return null}function Dn(e,t,n){"-"===t[0]?e.setProperty(t,null==n?"":n):e[t]=null==n?"":"number"!=typeof n||vn.test(t)?n:n+"px"}function Cn(e,t,n,r,o){var i;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||Dn(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||Dn(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])i=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=n,n?r||e.addEventListener(t,i?xn:kn,i):e.removeEventListener(t,i?xn:kn,i);else if("dangerouslySetInnerHTML"!==t){if(o)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!==t&&"height"!==t&&"href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null==n||!1===n&&"-"!==t[4]?e.removeAttribute(t):e.setAttribute(t,n))}}function kn(e){return this.l[e.type+!1](un.event?un.event(e):e)}function xn(e){return this.l[e.type+!0](un.event?un.event(e):e)}function Nn(e,t,n,r,o,i,u,a,l){var c,s,f,p,m,v,d,y,b,g,h,_,O,S,j,P=t.type;if(void 0!==t.constructor)return null;null!=n.__h&&(l=n.__h,a=t.__e=n.__e,t.__h=null,i=[a]),(c=un.__b)&&c(t);try{e:if("function"==typeof P){if(y=t.props,b=(c=P.contextType)&&r[c.__c],g=c?b?b.props.value:c.__:r,n.__c?d=(s=t.__c=n.__c).__=s.__E:("prototype"in P&&P.prototype.render?t.__c=s=new P(y,g):(t.__c=s=new _n(y,g),s.constructor=P,s.render=Ln),b&&b.sub(s),s.props=y,s.state||(s.state={}),s.context=g,s.__n=r,f=s.__d=!0,s.__h=[],s._sb=[]),null==s.__s&&(s.__s=s.state),null!=P.getDerivedStateFromProps&&(s.__s==s.state&&(s.__s=dn({},s.__s)),dn(s.__s,P.getDerivedStateFromProps(y,s.__s))),p=s.props,m=s.state,s.__v=t,f)null==P.getDerivedStateFromProps&&null!=s.componentWillMount&&s.componentWillMount(),null!=s.componentDidMount&&s.__h.push(s.componentDidMount);else{if(null==P.getDerivedStateFromProps&&y!==p&&null!=s.componentWillReceiveProps&&s.componentWillReceiveProps(y,g),!s.__e&&null!=s.shouldComponentUpdate&&!1===s.shouldComponentUpdate(y,s.__s,g)||t.__v===n.__v){for(t.__v!==n.__v&&(s.props=y,s.state=s.__s,s.__d=!1),s.__e=!1,t.__e=n.__e,t.__k=n.__k,t.__k.forEach((function(e){e&&(e.__=t)})),h=0;h<s._sb.length;h++)s.__h.push(s._sb[h]);s._sb=[],s.__h.length&&u.push(s);break e}null!=s.componentWillUpdate&&s.componentWillUpdate(y,s.__s,g),null!=s.componentDidUpdate&&s.__h.push((function(){s.componentDidUpdate(p,m,v)}))}if(s.context=g,s.props=y,s.__P=e,_=un.__r,O=0,"prototype"in P&&P.prototype.render){for(s.state=s.__s,s.__d=!1,_&&_(t),c=s.render(s.props,s.state,s.context),S=0;S<s._sb.length;S++)s.__h.push(s._sb[S]);s._sb=[]}else do{s.__d=!1,_&&_(t),c=s.render(s.props,s.state,s.context),s.state=s.__s}while(s.__d&&++O<25);s.state=s.__s,null!=s.getChildContext&&(r=dn(dn({},r),s.getChildContext())),f||null==s.getSnapshotBeforeUpdate||(v=s.getSnapshotBeforeUpdate(p,m)),j=null!=c&&c.type===hn&&null==c.key?c.props.children:c,wn(e,Array.isArray(j)?j:[j],t,n,r,o,i,u,a,l),s.base=t.__e,t.__h=null,s.__h.length&&u.push(s),d&&(s.__E=s.__=null),s.__e=!1}else null==i&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=qn(n.__e,t,n,r,o,i,u,l);(c=un.diffed)&&c(t)}catch(e){t.__v=null,(l||null!=i)&&(t.__e=a,t.__h=!!l,i[i.indexOf(a)]=null),un.__e(e,t,n)}}function Tn(e,t){un.__c&&un.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){un.__e(e,t.__v)}}))}function qn(e,t,n,r,o,i,u,a){var l,c,s,f=n.props,p=t.props,m=t.type,v=0;if("svg"===m&&(o=!0),null!=i)for(;v<i.length;v++)if((l=i[v])&&"setAttribute"in l==!!m&&(m?l.localName===m:3===l.nodeType)){e=l,i[v]=null;break}if(null==e){if(null===m)return document.createTextNode(p);e=o?document.createElementNS("http://www.w3.org/2000/svg",m):document.createElement(m,p.is&&p),i=null,a=!1}if(null===m)f===p||a&&e.data===p||(e.data=p);else{if(i=i&&on.call(e.childNodes),c=(f=n.props||pn).dangerouslySetInnerHTML,s=p.dangerouslySetInnerHTML,!a){if(null!=i)for(f={},v=0;v<e.attributes.length;v++)f[e.attributes[v].name]=e.attributes[v].value;(s||c)&&(s&&(c&&s.__html==c.__html||s.__html===e.innerHTML)||(e.innerHTML=s&&s.__html||""))}if(function(e,t,n,r,o){var i;for(i in n)"children"===i||"key"===i||i in t||Cn(e,i,null,n[i],r);for(i in t)o&&"function"!=typeof t[i]||"children"===i||"key"===i||"value"===i||"checked"===i||n[i]===t[i]||Cn(e,i,t[i],n[i],r)}(e,p,f,o,a),s)t.__k=[];else if(v=t.props.children,wn(e,Array.isArray(v)?v:[v],t,n,r,o&&"foreignObject"!==m,i,u,i?i[0]:n.__k&&On(n,0),a),null!=i)for(v=i.length;v--;)null!=i[v]&&yn(i[v]);a||("value"in p&&void 0!==(v=p.value)&&(v!==e.value||"progress"===m&&!v||"option"===m&&v!==f.value)&&Cn(e,"value",v,f.value,!1),"checked"in p&&void 0!==(v=p.checked)&&v!==e.checked&&Cn(e,"checked",v,f.checked,!1))}return e}function Bn(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){un.__e(e,n)}}function Rn(e,t,n){var r,o;if(un.unmount&&un.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||Bn(r,null,t)),null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){un.__e(e,t)}r.base=r.__P=null,e.__c=void 0}if(r=e.__k)for(o=0;o<r.length;o++)r[o]&&Rn(r[o],t,n||"function"!=typeof e.type);n||null==e.__e||yn(e.__e),e.__=e.__e=e.__d=void 0}function Ln(e,t,n){return this.constructor(e,n)}on=mn.slice,un={__e:function(e,t,n,r){for(var o,i,u;t=t.__;)if((o=t.__c)&&!o.__)try{if((i=o.constructor)&&null!=i.getDerivedStateFromError&&(o.setState(i.getDerivedStateFromError(e)),u=o.__d),null!=o.componentDidCatch&&(o.componentDidCatch(e,r||{}),u=o.__d),u)return o.__E=o}catch(t){e=t}throw e}},an=0,_n.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=dn({},this.state),"function"==typeof e&&(e=e(dn({},n),this.props)),e&&dn(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),jn(this))},_n.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),jn(this))},_n.prototype.render=hn,ln=[],sn="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,fn=function(e,t){return e.__v.__b-t.__v.__b},Pn.__r=0;var Fn="__aa-highlight__",Un="__/aa-highlight__";function Mn(e){var t=e.highlightedValue.split(Fn),n=t.shift(),r=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{get:function(){return e},add:function(t){var n=e[e.length-1];(null==n?void 0:n.isHighlighted)===t.isHighlighted?e[e.length-1]={value:n.value+t.value,isHighlighted:n.isHighlighted}:e.push(t)}}}(n?[{value:n,isHighlighted:!1}]:[]);return t.forEach((function(e){var t=e.split(Un);r.add({value:t[0],isHighlighted:!0}),""!==t[1]&&r.add({value:t[1],isHighlighted:!1})})),r.get()}function Hn(e){return function(e){if(Array.isArray(e))return Vn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Vn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Vn(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Vn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Wn(e){var t=e.hit,n=e.attribute,r=Array.isArray(n)?n:[n],o=y(t,["_highlightResult"].concat(Hn(r),["value"]));return"string"!=typeof o&&(o=y(t,r)||""),Mn({highlightedValue:o})}var Qn={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},Kn=new RegExp(/\w/i),$n=/&(amp|quot|lt|gt|#39);/g,zn=RegExp($n.source);function Gn(e,t){var n,r,o,i=e[t],u=(null===(n=e[t+1])||void 0===n?void 0:n.isHighlighted)||!0,a=(null===(r=e[t-1])||void 0===r?void 0:r.isHighlighted)||!0;return Kn.test((o=i.value)&&zn.test(o)?o.replace($n,(function(e){return Qn[e]})):o)||a!==u?i.isHighlighted:a}function Jn(e){return Jn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Jn(e)}function Xn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Yn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Xn(Object(n),!0).forEach((function(t){Zn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Xn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Zn(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==Jn(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==Jn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Jn(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function er(e){return e.some((function(e){return e.isHighlighted}))?e.map((function(t,n){return Yn(Yn({},t),{},{isHighlighted:!Gn(e,n)})})):e.map((function(e){return Yn(Yn({},e),{},{isHighlighted:!1})}))}function tr(e){return function(e){if(Array.isArray(e))return nr(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return nr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return nr(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function nr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function rr(e){var t=e.hit,n=e.attribute,r=Array.isArray(n)?n:[n],o=y(t,["_snippetResult"].concat(tr(r),["value"]));return"string"!=typeof o&&(o=y(t,r)||""),Mn({highlightedValue:o})}function or(e){return or="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},or(e)}function ir(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ur(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ir(Object(n),!0).forEach((function(t){ar(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ir(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ar(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==or(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==or(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===or(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function lr(e){return lr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},lr(e)}var cr=["params"];function sr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function fr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?sr(Object(n),!0).forEach((function(t){pr(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):sr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function pr(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==lr(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==lr(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===lr(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function mr(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function vr(e){return function(e){if(Array.isArray(e))return dr(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return dr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return dr(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function dr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function yr(e){var t=e.createElement,n=e.Fragment;function r(e){var r=e.hit,o=e.attribute,i=e.tagName,u=void 0===i?"mark":i;return t(n,{},Wn({hit:r,attribute:o}).map((function(e,n){return e.isHighlighted?t(u,{key:n},e.value):e.value})))}return r.__autocomplete_componentName="Highlight",r}function br(e){var t=e.createElement,n=e.Fragment;function r(e){var r,o=e.hit,i=e.attribute,u=e.tagName,a=void 0===u?"mark":u;return t(n,{},(r={hit:o,attribute:i},er(Wn(r))).map((function(e,n){return e.isHighlighted?t(a,{key:n},e.value):e.value})))}return r.__autocomplete_componentName="ReverseHighlight",r}function gr(e){var t=e.createElement,n=e.Fragment;function r(e){var r,o=e.hit,i=e.attribute,u=e.tagName,a=void 0===u?"mark":u;return t(n,{},(r={hit:o,attribute:i},er(rr(r))).map((function(e,n){return e.isHighlighted?t(a,{key:n},e.value):e.value})))}return r.__autocomplete_componentName="ReverseSnippet",r}function hr(e){var t=e.createElement,n=e.Fragment;function r(e){var r=e.hit,o=e.attribute,i=e.tagName,u=void 0===i?"mark":i;return t(n,{},rr({hit:r,attribute:o}).map((function(e,n){return e.isHighlighted?t(u,{key:n},e.value):e.value})))}return r.__autocomplete_componentName="Snippet",r}var _r=["classNames","container","getEnvironmentProps","getFormProps","getInputProps","getItemProps","getLabelProps","getListProps","getPanelProps","getRootProps","panelContainer","panelPlacement","render","renderNoResults","renderer","detachedMediaQuery","components","translations"],Or={clearButton:"aa-ClearButton",detachedCancelButton:"aa-DetachedCancelButton",detachedContainer:"aa-DetachedContainer",detachedFormContainer:"aa-DetachedFormContainer",detachedOverlay:"aa-DetachedOverlay",detachedSearchButton:"aa-DetachedSearchButton",detachedSearchButtonIcon:"aa-DetachedSearchButtonIcon",detachedSearchButtonPlaceholder:"aa-DetachedSearchButtonPlaceholder",detachedSearchButtonQuery:"aa-DetachedSearchButtonQuery",form:"aa-Form",input:"aa-Input",inputWrapper:"aa-InputWrapper",inputWrapperPrefix:"aa-InputWrapperPrefix",inputWrapperSuffix:"aa-InputWrapperSuffix",item:"aa-Item",label:"aa-Label",list:"aa-List",loadingIndicator:"aa-LoadingIndicator",panel:"aa-Panel",panelLayout:"aa-PanelLayout aa-Panel--scrollable",root:"aa-Autocomplete",source:"aa-Source",sourceFooter:"aa-SourceFooter",sourceHeader:"aa-SourceHeader",sourceNoResults:"aa-SourceNoResults",submitButton:"aa-SubmitButton"},Sr=function(e,t){var n=e.children;(0,e.render)(n,t)},jr={createElement:bn,Fragment:hn,render:function(e,t,n){var r,o,i;un.__&&un.__(e,t),o=(r="function"==typeof n)?null:n&&n.__k||t.__k,i=[],Nn(t,e=(!r&&n||t).__k=bn(hn,null,[e]),o||pn,pn,void 0!==t.ownerSVGElement,!r&&n?[n]:o?null:t.firstChild?on.call(t.childNodes):null,i,!r&&n?n:o?o.__e:t.firstChild,r),Tn(i,e)}};function Pr(e){var t=e.panelPlacement,n=e.container,r=e.form,o=e.environment,i=n.getBoundingClientRect(),u=(o.pageYOffset||o.document.documentElement.scrollTop||o.document.body.scrollTop||0)+i.top+i.height;switch(t){case"start":return{top:u,left:i.left};case"end":return{top:u,right:o.document.documentElement.clientWidth-(i.left+i.width)};case"full-width":return{top:u,left:0,right:0,width:"unset",maxWidth:"unset"};case"input-wrapper-width":var a=r.getBoundingClientRect();return{top:u,left:a.left,right:o.document.documentElement.clientWidth-(a.left+a.width),width:"unset",maxWidth:"unset"};default:throw new Error("[Autocomplete] The `panelPlacement` value ".concat(JSON.stringify(t)," is not valid."))}}var wr=[{segment:"autocomplete-js",version:O}],Ir=["components"];var Ar=function(e,t){function n(t){return e({searchClient:t.searchClient,queries:t.requests.map((function(e){return e.query}))}).then((function(e){return e.map((function(e,n){var r=t.requests[n];return{items:e,sourceId:r.sourceId,transformResponse:r.transformResponse}}))}))}return function(e){return function(r){return ur(ur({requesterId:t,execute:n},e),r)}}}((function(e){return function(e){var t=e.searchClient,n=e.queries,r=e.userAgents,o=void 0===r?[]:r;"function"==typeof t.addAlgoliaAgent&&[].concat(vr(S),vr(o)).forEach((function(e){var n=e.segment,r=e.version;t.addAlgoliaAgent(n,r)}));var i=function(e){var t=e.transporter||{},n=t.headers||t.baseHeaders||{},r=t.queryParameters||t.baseQueryParameters||{},o="x-algolia-application-id",i="x-algolia-api-key";return{appId:n[o]||r[o],apiKey:n[i]||r[i]}}(t),u=i.appId,a=i.apiKey;return t.search(n.map((function(e){var t=e.params;return fr(fr({},mr(e,cr)),{},{params:fr({hitsPerPage:5,highlightPreTag:Fn,highlightPostTag:Un},t)})}))).then((function(e){return e.results.map((function(e,t){var r;return fr(fr({},e),{},{hits:null===(r=e.hits)||void 0===r?void 0:r.map((function(r){return fr(fr({},r),{},{__autocomplete_indexName:e.index||n[t].indexName,__autocomplete_queryID:e.queryID,__autocomplete_algoliaCredentials:{appId:u,apiKey:a}})}))})}))}))}(n(n({},e),{},{userAgents:wr}))}),"algolia");var Er=Ar({transformResponse:function(e){return e.hits}});e.autocomplete=function(e){var t,r=function(){var e=[],t=[];function n(n){e.push(n);var r=n();t.push(r)}return{runEffect:n,cleanupEffects:function(){var e=t;t=[],e.forEach((function(e){e()}))},runEffects:function(){var t=e;e=[],t.forEach((function(e){n(e)}))}}}(),a=r.runEffect,l=r.cleanupEffects,c=r.runEffects,s=(t=[],{reactive:function(e){var n=e(),r={_fn:e,_ref:{current:n},get value(){return this._ref.current},set value(e){this._ref.current=e}};return t.push(r),r},runReactives:function(){t.forEach((function(e){e._ref.current=e._fn()}))}}),m=s.reactive,v=s.runReactives,y=f(!1),g=f(e),h=f(void 0),_=m((function(){return function(e){var t,r=e.classNames,o=e.container,i=e.getEnvironmentProps,a=e.getFormProps,l=e.getInputProps,c=e.getItemProps,s=e.getLabelProps,f=e.getListProps,p=e.getPanelProps,m=e.getRootProps,v=e.panelContainer,y=e.panelPlacement,b=e.render,g=e.renderNoResults,h=e.renderer,_=e.detachedMediaQuery,O=e.components,S=e.translations,j=u(e,_r),P="undefined"!=typeof window?window:{},w=Ut(P,o);w.tagName;var I=n(n({},jr),h),A={Highlight:yr(I),ReverseHighlight:br(I),ReverseSnippet:gr(I),Snippet:hr(I)};return{renderer:{classNames:Mt(Or,null!=r?r:{}),container:w,getEnvironmentProps:null!=i?i:function(e){return e.props},getFormProps:null!=a?a:function(e){return e.props},getInputProps:null!=l?l:function(e){return e.props},getItemProps:null!=c?c:function(e){return e.props},getLabelProps:null!=s?s:function(e){return e.props},getListProps:null!=f?f:function(e){return e.props},getPanelProps:null!=p?p:function(e){return e.props},getRootProps:null!=m?m:function(e){return e.props},panelContainer:v?Ut(P,v):P.document.body,panelPlacement:null!=y?y:"input-wrapper-width",render:null!=b?b:Sr,renderNoResults:g,renderer:I,detachedMediaQuery:null!=_?_:getComputedStyle(P.document.documentElement).getPropertyValue("--aa-detached-media-query"),components:n(n({},A),O),translations:n(n({},{clearButtonTitle:"Clear",detachedCancelButtonText:"Cancel",detachedSearchButtonTitle:"Search",submitButtonTitle:"Submit"}),S)},core:n(n({},j),{},{id:null!==(t=j.id)&&void 0!==t?t:d(),environment:P})}}(g.current)})),O=m((function(){return _.value.core.environment.matchMedia(_.value.renderer.detachedMediaQuery).matches})),S=m((function(){return qt(n(n({},_.value.core),{},{onStateChange:function(e){var t,n,r;y.current=e.state.collections.some((function(e){return e.source.templates.noResults})),null===(t=h.current)||void 0===t||t.call(h,e),null===(n=(r=_.value.core).onStateChange)||void 0===n||n.call(r,e)},shouldPanelOpen:g.current.shouldPanelOpen||function(e){var t=e.state;if(O.value)return!0;var n=b(t)>0;if(!_.value.core.openOnFocus&&!t.query)return n;var r=Boolean(y.current||_.value.renderer.renderNoResults);return!n&&r||n},__autocomplete_metadata:{userAgents:wr,options:e}}))})),j=f(n({collections:[],completion:null,context:{},isOpen:!1,query:"",activeItemId:null,status:"idle"},_.value.core.initialState)),P={getEnvironmentProps:_.value.renderer.getEnvironmentProps,getFormProps:_.value.renderer.getFormProps,getInputProps:_.value.renderer.getInputProps,getItemProps:_.value.renderer.getItemProps,getLabelProps:_.value.renderer.getLabelProps,getListProps:_.value.renderer.getListProps,getPanelProps:_.value.renderer.getPanelProps,getRootProps:_.value.renderer.getRootProps},w={setActiveItemId:S.value.setActiveItemId,setQuery:S.value.setQuery,setCollections:S.value.setCollections,setIsOpen:S.value.setIsOpen,setStatus:S.value.setStatus,setContext:S.value.setContext,refresh:S.value.refresh,navigator:S.value.navigator},I=m((function(){return Lt.bind(_.value.renderer.renderer.createElement)})),A=m((function(){return rn({autocomplete:S.value,autocompleteScopeApi:w,classNames:_.value.renderer.classNames,environment:_.value.core.environment,isDetached:O.value,placeholder:_.value.core.placeholder,propGetters:P,setIsModalOpen:k,state:j.current,translations:_.value.renderer.translations})}));function E(){Jt(A.value.panel,{style:O.value?{}:Pr({panelPlacement:_.value.renderer.panelPlacement,container:A.value.root,form:A.value.form,environment:_.value.core.environment})})}function D(e){j.current=e;var t={autocomplete:S.value,autocompleteScopeApi:w,classNames:_.value.renderer.classNames,components:_.value.renderer.components,container:_.value.renderer.container,html:I.value,dom:A.value,panelContainer:O.value?A.value.detachedContainer:_.value.renderer.panelContainer,propGetters:P,state:j.current,renderer:_.value.renderer.renderer},r=!b(e)&&!y.current&&_.value.renderer.renderNoResults||_.value.renderer.render;!function(e){var t=e.autocomplete,r=e.autocompleteScopeApi,o=e.dom,i=e.propGetters,u=e.state;Xt(o.root,i.getRootProps(n({state:u,props:t.getRootProps({})},r))),Xt(o.input,i.getInputProps(n({state:u,props:t.getInputProps({inputElement:o.input}),inputElement:o.input},r))),Jt(o.label,{hidden:"stalled"===u.status}),Jt(o.loadingIndicator,{hidden:"stalled"!==u.status}),Jt(o.clearButton,{hidden:!u.query}),Jt(o.detachedSearchButtonQuery,{textContent:u.query}),Jt(o.detachedSearchButtonPlaceholder,{hidden:Boolean(u.query)})}(t),function(e,t){var r=t.autocomplete,o=t.autocompleteScopeApi,u=t.classNames,a=t.html,l=t.dom,c=t.panelContainer,s=t.propGetters,f=t.state,p=t.components,m=t.renderer;if(f.isOpen){c.contains(l.panel)||"loading"===f.status||c.appendChild(l.panel),l.panel.classList.toggle("aa-Panel--stalled","stalled"===f.status);var v=f.collections.filter((function(e){var t=e.source,n=e.items;return t.templates.noResults||n.length>0})).map((function(e,t){var l=e.source,c=e.items;return m.createElement("section",{key:t,className:u.source,"data-autocomplete-source-id":l.sourceId},l.templates.header&&m.createElement("div",{className:u.sourceHeader},l.templates.header({components:p,createElement:m.createElement,Fragment:m.Fragment,items:c,source:l,state:f,html:a})),l.templates.noResults&&0===c.length?m.createElement("div",{className:u.sourceNoResults},l.templates.noResults({components:p,createElement:m.createElement,Fragment:m.Fragment,source:l,state:f,html:a})):m.createElement("ul",i({className:u.list},s.getListProps(n({state:f,props:r.getListProps({source:l})},o))),c.map((function(e){var t=r.getItemProps({item:e,source:l});return m.createElement("li",i({key:t.id,className:u.item},s.getItemProps(n({state:f,props:t},o))),l.templates.item({components:p,createElement:m.createElement,Fragment:m.Fragment,item:e,state:f,html:a}))}))),l.templates.footer&&m.createElement("div",{className:u.sourceFooter},l.templates.footer({components:p,createElement:m.createElement,Fragment:m.Fragment,items:c,source:l,state:f,html:a})))})),d=m.createElement(m.Fragment,null,m.createElement("div",{className:u.panelLayout},v),m.createElement("div",{className:"aa-GradientBottom"})),y=v.reduce((function(e,t){return e[t.props["data-autocomplete-source-id"]]=t,e}),{});e(n(n({children:d,state:f,sections:v,elements:y},m),{},{components:p,html:a},o),l.panel)}else c.contains(l.panel)&&c.removeChild(l.panel)}(r,t)}function C(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l();var t=_.value.renderer,n=t.components,r=u(t,Ir);g.current=Vt(r,_.value.core,{components:Wt(n,(function(e){return!e.value.hasOwnProperty("__autocomplete_componentName")})),initialState:j.current},e),v(),c(),S.value.refresh().then((function(){D(j.current)}))}function k(e){e!==_.value.core.environment.document.body.contains(A.value.detachedOverlay)&&(e?(_.value.core.environment.document.body.appendChild(A.value.detachedOverlay),_.value.core.environment.document.body.classList.add("aa-Detached"),A.value.input.focus()):(_.value.core.environment.document.body.removeChild(A.value.detachedOverlay),_.value.core.environment.document.body.classList.remove("aa-Detached")))}return a((function(){var e=S.value.getEnvironmentProps({formElement:A.value.form,panelElement:A.value.panel,inputElement:A.value.input});return Jt(_.value.core.environment,e),function(){Jt(_.value.core.environment,Object.keys(e).reduce((function(e,t){return n(n({},e),{},o({},t,void 0))}),{}))}})),a((function(){var e=O.value?_.value.core.environment.document.body:_.value.renderer.panelContainer,t=O.value?A.value.detachedOverlay:A.value.panel;return O.value&&j.current.isOpen&&k(!0),D(j.current),function(){e.contains(t)&&(e.removeChild(t),e.classList.remove("aa-Detached"))}})),a((function(){var e=_.value.renderer.container;return e.appendChild(A.value.root),function(){e.removeChild(A.value.root)}})),a((function(){var e=p((function(e){D(e.state)}),0);return h.current=function(t){var n=t.state,r=t.prevState;(O.value&&r.isOpen!==n.isOpen&&k(n.isOpen),O.value||!n.isOpen||r.isOpen||E(),n.query!==r.query)&&_.value.core.environment.document.querySelectorAll(".aa-Panel--scrollable").forEach((function(e){0!==e.scrollTop&&(e.scrollTop=0)}));e({state:n})},function(){h.current=void 0}})),a((function(){var e=p((function(){var e=O.value;O.value=_.value.core.environment.matchMedia(_.value.renderer.detachedMediaQuery).matches,e!==O.value?C({}):requestAnimationFrame(E)}),20);return _.value.core.environment.addEventListener("resize",e),function(){_.value.core.environment.removeEventListener("resize",e)}})),a((function(){if(!O.value)return function(){};function e(e){A.value.detachedContainer.classList.toggle("aa-DetachedContainer--modal",e)}function t(t){e(t.matches)}var n=_.value.core.environment.matchMedia(getComputedStyle(_.value.core.environment.document.documentElement).getPropertyValue("--aa-detached-modal-media-query"));e(n.matches);var r=Boolean(n.addEventListener);return r?n.addEventListener("change",t):n.addListener(t),function(){r?n.removeEventListener("change",t):n.removeListener(t)}})),a((function(){return requestAnimationFrame(E),function(){}})),n(n({},w),{},{update:C,destroy:function(){l()}})},e.getAlgoliaFacets=function(e){var t=Ar({transformResponse:function(e){return e.facetHits}}),r=e.queries.map((function(e){return n(n({},e),{},{type:"facet"})}));return t(n(n({},e),{},{queries:r}))},e.getAlgoliaResults=Er,Object.defineProperty(e,"__esModule",{value:!0})}));
3
+
site_libs/quarto-search/fuse.min.js ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Fuse.js v6.6.2 - Lightweight fuzzy-search (http://fusejs.io)
3
+ *
4
+ * Copyright (c) 2022 Kiro Risk (http://kiro.me)
5
+ * All Rights Reserved. Apache Software License 2.0
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ */
9
+ var e,t;e=this,t=function(){"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?e(Object(r),!0).forEach((function(e){c(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):e(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function o(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");Object.defineProperty(e,"prototype",{value:Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),writable:!1}),t&&u(e,t)}function s(e){return s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},s(e)}function u(e,t){return u=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},u(e,t)}function h(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function l(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=s(e);if(t){var i=s(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return h(this,n)}}function f(e){return function(e){if(Array.isArray(e))return d(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function v(e){return Array.isArray?Array.isArray(e):"[object Array]"===b(e)}function g(e){return"string"==typeof e}function y(e){return"number"==typeof e}function p(e){return!0===e||!1===e||function(e){return m(e)&&null!==e}(e)&&"[object Boolean]"==b(e)}function m(e){return"object"===n(e)}function k(e){return null!=e}function M(e){return!e.trim().length}function b(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}var x=function(e){return"Invalid value for key ".concat(e)},w=function(e){return"Pattern length exceeds max of ".concat(e,".")},L=Object.prototype.hasOwnProperty,S=function(){function e(t){var n=this;r(this,e),this._keys=[],this._keyMap={};var i=0;t.forEach((function(e){var t=_(e);i+=t.weight,n._keys.push(t),n._keyMap[t.id]=t,i+=t.weight})),this._keys.forEach((function(e){e.weight/=i}))}return o(e,[{key:"get",value:function(e){return this._keyMap[e]}},{key:"keys",value:function(){return this._keys}},{key:"toJSON",value:function(){return JSON.stringify(this._keys)}}]),e}();function _(e){var t=null,n=null,r=null,i=1,o=null;if(g(e)||v(e))r=e,t=O(e),n=j(e);else{if(!L.call(e,"name"))throw new Error(function(e){return"Missing ".concat(e," property in key")}("name"));var c=e.name;if(r=c,L.call(e,"weight")&&(i=e.weight)<=0)throw new Error(function(e){return"Property 'weight' in key '".concat(e,"' must be a positive integer")}(c));t=O(c),n=j(c),o=e.getFn}return{path:t,id:n,weight:i,src:r,getFn:o}}function O(e){return v(e)?e:e.split(".")}function j(e){return v(e)?e.join("."):e}var A={useExtendedSearch:!1,getFn:function(e,t){var n=[],r=!1;return function e(t,i,o){if(k(t))if(i[o]){var c=t[i[o]];if(!k(c))return;if(o===i.length-1&&(g(c)||y(c)||p(c)))n.push(function(e){return null==e?"":function(e){if("string"==typeof e)return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}(e)}(c));else if(v(c)){r=!0;for(var a=0,s=c.length;a<s;a+=1)e(c[a],i,o+1)}else i.length&&e(c,i,o+1)}else n.push(t)}(e,g(t)?t.split("."):t,0),r?n:n[0]},ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1},I=t(t(t(t({},{isCaseSensitive:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:function(e,t){return e.score===t.score?e.idx<t.idx?-1:1:e.score<t.score?-1:1}}),{includeMatches:!1,findAllMatches:!1,minMatchCharLength:1}),{location:0,threshold:.6,distance:100}),A),C=/[^ ]+/g;function E(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,n=new Map,r=Math.pow(10,t);return{get:function(t){var i=t.match(C).length;if(n.has(i))return n.get(i);var o=1/Math.pow(i,.5*e),c=parseFloat(Math.round(o*r)/r);return n.set(i,c),c},clear:function(){n.clear()}}}var $=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.getFn,i=void 0===n?I.getFn:n,o=t.fieldNormWeight,c=void 0===o?I.fieldNormWeight:o;r(this,e),this.norm=E(c,3),this.getFn=i,this.isCreated=!1,this.setIndexRecords()}return o(e,[{key:"setSources",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.docs=e}},{key:"setIndexRecords",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.records=e}},{key:"setKeys",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.keys=t,this._keysMap={},t.forEach((function(t,n){e._keysMap[t.id]=n}))}},{key:"create",value:function(){var e=this;!this.isCreated&&this.docs.length&&(this.isCreated=!0,g(this.docs[0])?this.docs.forEach((function(t,n){e._addString(t,n)})):this.docs.forEach((function(t,n){e._addObject(t,n)})),this.norm.clear())}},{key:"add",value:function(e){var t=this.size();g(e)?this._addString(e,t):this._addObject(e,t)}},{key:"removeAt",value:function(e){this.records.splice(e,1);for(var t=e,n=this.size();t<n;t+=1)this.records[t].i-=1}},{key:"getValueForItemAtKeyId",value:function(e,t){return e[this._keysMap[t]]}},{key:"size",value:function(){return this.records.length}},{key:"_addString",value:function(e,t){if(k(e)&&!M(e)){var n={v:e,i:t,n:this.norm.get(e)};this.records.push(n)}}},{key:"_addObject",value:function(e,t){var n=this,r={i:t,$:{}};this.keys.forEach((function(t,i){var o=t.getFn?t.getFn(e):n.getFn(e,t.path);if(k(o))if(v(o))!function(){for(var e=[],t=[{nestedArrIndex:-1,value:o}];t.length;){var c=t.pop(),a=c.nestedArrIndex,s=c.value;if(k(s))if(g(s)&&!M(s)){var u={v:s,i:a,n:n.norm.get(s)};e.push(u)}else v(s)&&s.forEach((function(e,n){t.push({nestedArrIndex:n,value:e})}))}r.$[i]=e}();else if(g(o)&&!M(o)){var c={v:o,n:n.norm.get(o)};r.$[i]=c}})),this.records.push(r)}},{key:"toJSON",value:function(){return{keys:this.keys,records:this.records}}}]),e}();function F(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.getFn,i=void 0===r?I.getFn:r,o=n.fieldNormWeight,c=void 0===o?I.fieldNormWeight:o,a=new $({getFn:i,fieldNormWeight:c});return a.setKeys(e.map(_)),a.setSources(t),a.create(),a}function R(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.errors,r=void 0===n?0:n,i=t.currentLocation,o=void 0===i?0:i,c=t.expectedLocation,a=void 0===c?0:c,s=t.distance,u=void 0===s?I.distance:s,h=t.ignoreLocation,l=void 0===h?I.ignoreLocation:h,f=r/e.length;if(l)return f;var d=Math.abs(a-o);return u?f+d/u:d?1:f}function N(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:I.minMatchCharLength,n=[],r=-1,i=-1,o=0,c=e.length;o<c;o+=1){var a=e[o];a&&-1===r?r=o:a||-1===r||((i=o-1)-r+1>=t&&n.push([r,i]),r=-1)}return e[o-1]&&o-r>=t&&n.push([r,o-1]),n}var P=32;function W(e){for(var t={},n=0,r=e.length;n<r;n+=1){var i=e.charAt(n);t[i]=(t[i]||0)|1<<r-n-1}return t}var T=function(){function e(t){var n=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=i.location,c=void 0===o?I.location:o,a=i.threshold,s=void 0===a?I.threshold:a,u=i.distance,h=void 0===u?I.distance:u,l=i.includeMatches,f=void 0===l?I.includeMatches:l,d=i.findAllMatches,v=void 0===d?I.findAllMatches:d,g=i.minMatchCharLength,y=void 0===g?I.minMatchCharLength:g,p=i.isCaseSensitive,m=void 0===p?I.isCaseSensitive:p,k=i.ignoreLocation,M=void 0===k?I.ignoreLocation:k;if(r(this,e),this.options={location:c,threshold:s,distance:h,includeMatches:f,findAllMatches:v,minMatchCharLength:y,isCaseSensitive:m,ignoreLocation:M},this.pattern=m?t:t.toLowerCase(),this.chunks=[],this.pattern.length){var b=function(e,t){n.chunks.push({pattern:e,alphabet:W(e),startIndex:t})},x=this.pattern.length;if(x>P){for(var w=0,L=x%P,S=x-L;w<S;)b(this.pattern.substr(w,P),w),w+=P;if(L){var _=x-P;b(this.pattern.substr(_),_)}}else b(this.pattern,0)}}return o(e,[{key:"searchIn",value:function(e){var t=this.options,n=t.isCaseSensitive,r=t.includeMatches;if(n||(e=e.toLowerCase()),this.pattern===e){var i={isMatch:!0,score:0};return r&&(i.indices=[[0,e.length-1]]),i}var o=this.options,c=o.location,a=o.distance,s=o.threshold,u=o.findAllMatches,h=o.minMatchCharLength,l=o.ignoreLocation,d=[],v=0,g=!1;this.chunks.forEach((function(t){var n=t.pattern,i=t.alphabet,o=t.startIndex,y=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=r.location,o=void 0===i?I.location:i,c=r.distance,a=void 0===c?I.distance:c,s=r.threshold,u=void 0===s?I.threshold:s,h=r.findAllMatches,l=void 0===h?I.findAllMatches:h,f=r.minMatchCharLength,d=void 0===f?I.minMatchCharLength:f,v=r.includeMatches,g=void 0===v?I.includeMatches:v,y=r.ignoreLocation,p=void 0===y?I.ignoreLocation:y;if(t.length>P)throw new Error(w(P));for(var m,k=t.length,M=e.length,b=Math.max(0,Math.min(o,M)),x=u,L=b,S=d>1||g,_=S?Array(M):[];(m=e.indexOf(t,L))>-1;){var O=R(t,{currentLocation:m,expectedLocation:b,distance:a,ignoreLocation:p});if(x=Math.min(O,x),L=m+k,S)for(var j=0;j<k;)_[m+j]=1,j+=1}L=-1;for(var A=[],C=1,E=k+M,$=1<<k-1,F=0;F<k;F+=1){for(var W=0,T=E;W<T;)R(t,{errors:F,currentLocation:b+T,expectedLocation:b,distance:a,ignoreLocation:p})<=x?W=T:E=T,T=Math.floor((E-W)/2+W);E=T;var z=Math.max(1,b-T+1),D=l?M:Math.min(b+T,M)+k,K=Array(D+2);K[D+1]=(1<<F)-1;for(var q=D;q>=z;q-=1){var B=q-1,J=n[e.charAt(B)];if(S&&(_[B]=+!!J),K[q]=(K[q+1]<<1|1)&J,F&&(K[q]|=(A[q+1]|A[q])<<1|1|A[q+1]),K[q]&$&&(C=R(t,{errors:F,currentLocation:B,expectedLocation:b,distance:a,ignoreLocation:p}))<=x){if(x=C,(L=B)<=b)break;z=Math.max(1,2*b-L)}}if(R(t,{errors:F+1,currentLocation:b,expectedLocation:b,distance:a,ignoreLocation:p})>x)break;A=K}var U={isMatch:L>=0,score:Math.max(.001,C)};if(S){var V=N(_,d);V.length?g&&(U.indices=V):U.isMatch=!1}return U}(e,n,i,{location:c+o,distance:a,threshold:s,findAllMatches:u,minMatchCharLength:h,includeMatches:r,ignoreLocation:l}),p=y.isMatch,m=y.score,k=y.indices;p&&(g=!0),v+=m,p&&k&&(d=[].concat(f(d),f(k)))}));var y={isMatch:g,score:g?v/this.chunks.length:1};return g&&r&&(y.indices=d),y}}]),e}(),z=function(){function e(t){r(this,e),this.pattern=t}return o(e,[{key:"search",value:function(){}}],[{key:"isMultiMatch",value:function(e){return D(e,this.multiRegex)}},{key:"isSingleMatch",value:function(e){return D(e,this.singleRegex)}}]),e}();function D(e,t){var n=e.match(t);return n?n[1]:null}var K=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=e===this.pattern;return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}],[{key:"type",get:function(){return"exact"}},{key:"multiRegex",get:function(){return/^="(.*)"$/}},{key:"singleRegex",get:function(){return/^=(.*)$/}}]),n}(z),q=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=-1===e.indexOf(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-exact"}},{key:"multiRegex",get:function(){return/^!"(.*)"$/}},{key:"singleRegex",get:function(){return/^!(.*)$/}}]),n}(z),B=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}],[{key:"type",get:function(){return"prefix-exact"}},{key:"multiRegex",get:function(){return/^\^"(.*)"$/}},{key:"singleRegex",get:function(){return/^\^(.*)$/}}]),n}(z),J=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=!e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-prefix-exact"}},{key:"multiRegex",get:function(){return/^!\^"(.*)"$/}},{key:"singleRegex",get:function(){return/^!\^(.*)$/}}]),n}(z),U=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[e.length-this.pattern.length,e.length-1]}}}],[{key:"type",get:function(){return"suffix-exact"}},{key:"multiRegex",get:function(){return/^"(.*)"\$$/}},{key:"singleRegex",get:function(){return/^(.*)\$$/}}]),n}(z),V=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=!e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-suffix-exact"}},{key:"multiRegex",get:function(){return/^!"(.*)"\$$/}},{key:"singleRegex",get:function(){return/^!(.*)\$$/}}]),n}(z),G=function(e){a(n,e);var t=l(n);function n(e){var i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=o.location,a=void 0===c?I.location:c,s=o.threshold,u=void 0===s?I.threshold:s,h=o.distance,l=void 0===h?I.distance:h,f=o.includeMatches,d=void 0===f?I.includeMatches:f,v=o.findAllMatches,g=void 0===v?I.findAllMatches:v,y=o.minMatchCharLength,p=void 0===y?I.minMatchCharLength:y,m=o.isCaseSensitive,k=void 0===m?I.isCaseSensitive:m,M=o.ignoreLocation,b=void 0===M?I.ignoreLocation:M;return r(this,n),(i=t.call(this,e))._bitapSearch=new T(e,{location:a,threshold:u,distance:l,includeMatches:d,findAllMatches:g,minMatchCharLength:p,isCaseSensitive:k,ignoreLocation:b}),i}return o(n,[{key:"search",value:function(e){return this._bitapSearch.searchIn(e)}}],[{key:"type",get:function(){return"fuzzy"}},{key:"multiRegex",get:function(){return/^"(.*)"$/}},{key:"singleRegex",get:function(){return/^(.*)$/}}]),n}(z),H=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){for(var t,n=0,r=[],i=this.pattern.length;(t=e.indexOf(this.pattern,n))>-1;)n=t+i,r.push([t,n-1]);var o=!!r.length;return{isMatch:o,score:o?0:1,indices:r}}}],[{key:"type",get:function(){return"include"}},{key:"multiRegex",get:function(){return/^'"(.*)"$/}},{key:"singleRegex",get:function(){return/^'(.*)$/}}]),n}(z),Q=[K,H,B,J,V,U,q,G],X=Q.length,Y=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/;function Z(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.split("|").map((function(e){for(var n=e.trim().split(Y).filter((function(e){return e&&!!e.trim()})),r=[],i=0,o=n.length;i<o;i+=1){for(var c=n[i],a=!1,s=-1;!a&&++s<X;){var u=Q[s],h=u.isMultiMatch(c);h&&(r.push(new u(h,t)),a=!0)}if(!a)for(s=-1;++s<X;){var l=Q[s],f=l.isSingleMatch(c);if(f){r.push(new l(f,t));break}}}return r}))}var ee=new Set([G.type,H.type]),te=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=n.isCaseSensitive,o=void 0===i?I.isCaseSensitive:i,c=n.includeMatches,a=void 0===c?I.includeMatches:c,s=n.minMatchCharLength,u=void 0===s?I.minMatchCharLength:s,h=n.ignoreLocation,l=void 0===h?I.ignoreLocation:h,f=n.findAllMatches,d=void 0===f?I.findAllMatches:f,v=n.location,g=void 0===v?I.location:v,y=n.threshold,p=void 0===y?I.threshold:y,m=n.distance,k=void 0===m?I.distance:m;r(this,e),this.query=null,this.options={isCaseSensitive:o,includeMatches:a,minMatchCharLength:u,findAllMatches:d,ignoreLocation:l,location:g,threshold:p,distance:k},this.pattern=o?t:t.toLowerCase(),this.query=Z(this.pattern,this.options)}return o(e,[{key:"searchIn",value:function(e){var t=this.query;if(!t)return{isMatch:!1,score:1};var n=this.options,r=n.includeMatches;e=n.isCaseSensitive?e:e.toLowerCase();for(var i=0,o=[],c=0,a=0,s=t.length;a<s;a+=1){var u=t[a];o.length=0,i=0;for(var h=0,l=u.length;h<l;h+=1){var d=u[h],v=d.search(e),g=v.isMatch,y=v.indices,p=v.score;if(!g){c=0,i=0,o.length=0;break}if(i+=1,c+=p,r){var m=d.constructor.type;ee.has(m)?o=[].concat(f(o),f(y)):o.push(y)}}if(i){var k={isMatch:!0,score:c/i};return r&&(k.indices=o),k}}return{isMatch:!1,score:1}}}],[{key:"condition",value:function(e,t){return t.useExtendedSearch}}]),e}(),ne=[];function re(e,t){for(var n=0,r=ne.length;n<r;n+=1){var i=ne[n];if(i.condition(e,t))return new i(e,t)}return new T(e,t)}var ie="$and",oe="$or",ce="$path",ae="$val",se=function(e){return!(!e[ie]&&!e[oe])},ue=function(e){return!!e[ce]},he=function(e){return!v(e)&&m(e)&&!se(e)},le=function(e){return c({},ie,Object.keys(e).map((function(t){return c({},t,e[t])})))};function fe(e,t){var n=t.ignoreFieldNorm,r=void 0===n?I.ignoreFieldNorm:n;e.forEach((function(e){var t=1;e.matches.forEach((function(e){var n=e.key,i=e.norm,o=e.score,c=n?n.weight:null;t*=Math.pow(0===o&&c?Number.EPSILON:o,(c||1)*(r?1:i))})),e.score=t}))}function de(e,t){var n=e.matches;t.matches=[],k(n)&&n.forEach((function(e){if(k(e.indices)&&e.indices.length){var n={indices:e.indices,value:e.value};e.key&&(n.key=e.key.src),e.idx>-1&&(n.refIndex=e.idx),t.matches.push(n)}}))}function ve(e,t){t.score=e.score}function ge(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.includeMatches,i=void 0===r?I.includeMatches:r,o=n.includeScore,c=void 0===o?I.includeScore:o,a=[];return i&&a.push(de),c&&a.push(ve),e.map((function(e){var n=e.idx,r={item:t[n],refIndex:n};return a.length&&a.forEach((function(t){t(e,r)})),r}))}var ye=function(){function e(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2?arguments[2]:void 0;r(this,e),this.options=t(t({},I),i),this.options.useExtendedSearch,this._keyStore=new S(this.options.keys),this.setCollection(n,o)}return o(e,[{key:"setCollection",value:function(e,t){if(this._docs=e,t&&!(t instanceof $))throw new Error("Incorrect 'index' type");this._myIndex=t||F(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}},{key:"add",value:function(e){k(e)&&(this._docs.push(e),this._myIndex.add(e))}},{key:"remove",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!1},t=[],n=0,r=this._docs.length;n<r;n+=1){var i=this._docs[n];e(i,n)&&(this.removeAt(n),n-=1,r-=1,t.push(i))}return t}},{key:"removeAt",value:function(e){this._docs.splice(e,1),this._myIndex.removeAt(e)}},{key:"getIndex",value:function(){return this._myIndex}},{key:"search",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.limit,r=void 0===n?-1:n,i=this.options,o=i.includeMatches,c=i.includeScore,a=i.shouldSort,s=i.sortFn,u=i.ignoreFieldNorm,h=g(e)?g(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e);return fe(h,{ignoreFieldNorm:u}),a&&h.sort(s),y(r)&&r>-1&&(h=h.slice(0,r)),ge(h,this._docs,{includeMatches:o,includeScore:c})}},{key:"_searchStringList",value:function(e){var t=re(e,this.options),n=this._myIndex.records,r=[];return n.forEach((function(e){var n=e.v,i=e.i,o=e.n;if(k(n)){var c=t.searchIn(n),a=c.isMatch,s=c.score,u=c.indices;a&&r.push({item:n,idx:i,matches:[{score:s,value:n,norm:o,indices:u}]})}})),r}},{key:"_searchLogical",value:function(e){var t=this,n=function(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).auto,r=void 0===n||n,i=function e(n){var i=Object.keys(n),o=ue(n);if(!o&&i.length>1&&!se(n))return e(le(n));if(he(n)){var c=o?n[ce]:i[0],a=o?n[ae]:n[c];if(!g(a))throw new Error(x(c));var s={keyId:j(c),pattern:a};return r&&(s.searcher=re(a,t)),s}var u={children:[],operator:i[0]};return i.forEach((function(t){var r=n[t];v(r)&&r.forEach((function(t){u.children.push(e(t))}))})),u};return se(e)||(e=le(e)),i(e)}(e,this.options),r=function e(n,r,i){if(!n.children){var o=n.keyId,c=n.searcher,a=t._findMatches({key:t._keyStore.get(o),value:t._myIndex.getValueForItemAtKeyId(r,o),searcher:c});return a&&a.length?[{idx:i,item:r,matches:a}]:[]}for(var s=[],u=0,h=n.children.length;u<h;u+=1){var l=e(n.children[u],r,i);if(l.length)s.push.apply(s,f(l));else if(n.operator===ie)return[]}return s},i=this._myIndex.records,o={},c=[];return i.forEach((function(e){var t=e.$,i=e.i;if(k(t)){var a=r(n,t,i);a.length&&(o[i]||(o[i]={idx:i,item:t,matches:[]},c.push(o[i])),a.forEach((function(e){var t,n=e.matches;(t=o[i].matches).push.apply(t,f(n))})))}})),c}},{key:"_searchObjectList",value:function(e){var t=this,n=re(e,this.options),r=this._myIndex,i=r.keys,o=r.records,c=[];return o.forEach((function(e){var r=e.$,o=e.i;if(k(r)){var a=[];i.forEach((function(e,i){a.push.apply(a,f(t._findMatches({key:e,value:r[i],searcher:n})))})),a.length&&c.push({idx:o,item:r,matches:a})}})),c}},{key:"_findMatches",value:function(e){var t=e.key,n=e.value,r=e.searcher;if(!k(n))return[];var i=[];if(v(n))n.forEach((function(e){var n=e.v,o=e.i,c=e.n;if(k(n)){var a=r.searchIn(n),s=a.isMatch,u=a.score,h=a.indices;s&&i.push({score:u,key:t,value:n,idx:o,norm:c,indices:h})}}));else{var o=n.v,c=n.n,a=r.searchIn(o),s=a.isMatch,u=a.score,h=a.indices;s&&i.push({score:u,key:t,value:o,norm:c,indices:h})}return i}}]),e}();return ye.version="6.6.2",ye.createIndex=F,ye.parseIndex=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.getFn,r=void 0===n?I.getFn:n,i=t.fieldNormWeight,o=void 0===i?I.fieldNormWeight:i,c=e.keys,a=e.records,s=new $({getFn:r,fieldNormWeight:o});return s.setKeys(c),s.setIndexRecords(a),s},ye.config=I,function(){ne.push.apply(ne,arguments)}(te),ye},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Fuse=t();
site_libs/quarto-search/quarto-search.js ADDED
@@ -0,0 +1,1290 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const kQueryArg = "q";
2
+ const kResultsArg = "show-results";
3
+
4
+ // If items don't provide a URL, then both the navigator and the onSelect
5
+ // function aren't called (and therefore, the default implementation is used)
6
+ //
7
+ // We're using this sentinel URL to signal to those handlers that this
8
+ // item is a more item (along with the type) and can be handled appropriately
9
+ const kItemTypeMoreHref = "0767FDFD-0422-4E5A-BC8A-3BE11E5BBA05";
10
+
11
+ window.document.addEventListener("DOMContentLoaded", function (_event) {
12
+ // Ensure that search is available on this page. If it isn't,
13
+ // should return early and not do anything
14
+ var searchEl = window.document.getElementById("quarto-search");
15
+ if (!searchEl) return;
16
+
17
+ const { autocomplete } = window["@algolia/autocomplete-js"];
18
+
19
+ let quartoSearchOptions = {};
20
+ let language = {};
21
+ const searchOptionEl = window.document.getElementById(
22
+ "quarto-search-options"
23
+ );
24
+ if (searchOptionEl) {
25
+ const jsonStr = searchOptionEl.textContent;
26
+ quartoSearchOptions = JSON.parse(jsonStr);
27
+ language = quartoSearchOptions.language;
28
+ }
29
+
30
+ // note the search mode
31
+ if (quartoSearchOptions.type === "overlay") {
32
+ searchEl.classList.add("type-overlay");
33
+ } else {
34
+ searchEl.classList.add("type-textbox");
35
+ }
36
+
37
+ // Used to determine highlighting behavior for this page
38
+ // A `q` query param is expected when the user follows a search
39
+ // to this page
40
+ const currentUrl = new URL(window.location);
41
+ const query = currentUrl.searchParams.get(kQueryArg);
42
+ const showSearchResults = currentUrl.searchParams.get(kResultsArg);
43
+ const mainEl = window.document.querySelector("main");
44
+
45
+ // highlight matches on the page
46
+ if (query && mainEl) {
47
+ // perform any highlighting
48
+ highlight(escapeRegExp(query), mainEl);
49
+
50
+ // fix up the URL to remove the q query param
51
+ const replacementUrl = new URL(window.location);
52
+ replacementUrl.searchParams.delete(kQueryArg);
53
+ window.history.replaceState({}, "", replacementUrl);
54
+ }
55
+
56
+ // function to clear highlighting on the page when the search query changes
57
+ // (e.g. if the user edits the query or clears it)
58
+ let highlighting = true;
59
+ const resetHighlighting = (searchTerm) => {
60
+ if (mainEl && highlighting && query && searchTerm !== query) {
61
+ clearHighlight(query, mainEl);
62
+ highlighting = false;
63
+ }
64
+ };
65
+
66
+ // Clear search highlighting when the user scrolls sufficiently
67
+ const resetFn = () => {
68
+ resetHighlighting("");
69
+ window.removeEventListener("quarto-hrChanged", resetFn);
70
+ window.removeEventListener("quarto-sectionChanged", resetFn);
71
+ };
72
+
73
+ // Register this event after the initial scrolling and settling of events
74
+ // on the page
75
+ window.addEventListener("quarto-hrChanged", resetFn);
76
+ window.addEventListener("quarto-sectionChanged", resetFn);
77
+
78
+ // Responsively switch to overlay mode if the search is present on the navbar
79
+ // Note that switching the sidebar to overlay mode requires more coordinate (not just
80
+ // the media query since we generate different HTML for sidebar overlays than we do
81
+ // for sidebar input UI)
82
+ const detachedMediaQuery =
83
+ quartoSearchOptions.type === "overlay" ? "all" : "(max-width: 991px)";
84
+
85
+ // If configured, include the analytics client to send insights
86
+ const plugins = configurePlugins(quartoSearchOptions);
87
+
88
+ let lastState = null;
89
+ const { setIsOpen, setQuery, setCollections } = autocomplete({
90
+ container: searchEl,
91
+ detachedMediaQuery: detachedMediaQuery,
92
+ defaultActiveItemId: 0,
93
+ panelContainer: "#quarto-search-results",
94
+ panelPlacement: quartoSearchOptions["panel-placement"],
95
+ debug: false,
96
+ openOnFocus: true,
97
+ plugins,
98
+ classNames: {
99
+ form: "d-flex",
100
+ },
101
+ placeholder: language["search-text-placeholder"],
102
+ translations: {
103
+ clearButtonTitle: language["search-clear-button-title"],
104
+ detachedCancelButtonText: language["search-detached-cancel-button-title"],
105
+ submitButtonTitle: language["search-submit-button-title"],
106
+ },
107
+ initialState: {
108
+ query,
109
+ },
110
+ getItemUrl({ item }) {
111
+ return item.href;
112
+ },
113
+ onStateChange({ state }) {
114
+ // If this is a file URL, note that
115
+
116
+ // Perhaps reset highlighting
117
+ resetHighlighting(state.query);
118
+
119
+ // If the panel just opened, ensure the panel is positioned properly
120
+ if (state.isOpen) {
121
+ if (lastState && !lastState.isOpen) {
122
+ setTimeout(() => {
123
+ positionPanel(quartoSearchOptions["panel-placement"]);
124
+ }, 150);
125
+ }
126
+ }
127
+
128
+ // Perhaps show the copy link
129
+ showCopyLink(state.query, quartoSearchOptions);
130
+
131
+ lastState = state;
132
+ },
133
+ reshape({ sources, state }) {
134
+ return sources.map((source) => {
135
+ try {
136
+ const items = source.getItems();
137
+
138
+ // Validate the items
139
+ validateItems(items);
140
+
141
+ // group the items by document
142
+ const groupedItems = new Map();
143
+ items.forEach((item) => {
144
+ const hrefParts = item.href.split("#");
145
+ const baseHref = hrefParts[0];
146
+ const isDocumentItem = hrefParts.length === 1;
147
+
148
+ const items = groupedItems.get(baseHref);
149
+ if (!items) {
150
+ groupedItems.set(baseHref, [item]);
151
+ } else {
152
+ // If the href for this item matches the document
153
+ // exactly, place this item first as it is the item that represents
154
+ // the document itself
155
+ if (isDocumentItem) {
156
+ items.unshift(item);
157
+ } else {
158
+ items.push(item);
159
+ }
160
+ groupedItems.set(baseHref, items);
161
+ }
162
+ });
163
+
164
+ const reshapedItems = [];
165
+ let count = 1;
166
+ for (const [_key, value] of groupedItems) {
167
+ const firstItem = value[0];
168
+ reshapedItems.push({
169
+ ...firstItem,
170
+ type: kItemTypeDoc,
171
+ });
172
+
173
+ const collapseMatches = quartoSearchOptions["collapse-after"];
174
+ const collapseCount =
175
+ typeof collapseMatches === "number" ? collapseMatches : 1;
176
+
177
+ if (value.length > 1) {
178
+ const target = `search-more-${count}`;
179
+ const isExpanded =
180
+ state.context.expanded &&
181
+ state.context.expanded.includes(target);
182
+
183
+ const remainingCount = value.length - collapseCount;
184
+
185
+ for (let i = 1; i < value.length; i++) {
186
+ if (collapseMatches && i === collapseCount) {
187
+ reshapedItems.push({
188
+ target,
189
+ title: isExpanded
190
+ ? language["search-hide-matches-text"]
191
+ : remainingCount === 1
192
+ ? `${remainingCount} ${language["search-more-match-text"]}`
193
+ : `${remainingCount} ${language["search-more-matches-text"]}`,
194
+ type: kItemTypeMore,
195
+ href: kItemTypeMoreHref,
196
+ });
197
+ }
198
+
199
+ if (isExpanded || !collapseMatches || i < collapseCount) {
200
+ reshapedItems.push({
201
+ ...value[i],
202
+ type: kItemTypeItem,
203
+ target,
204
+ });
205
+ }
206
+ }
207
+ }
208
+ count += 1;
209
+ }
210
+
211
+ return {
212
+ ...source,
213
+ getItems() {
214
+ return reshapedItems;
215
+ },
216
+ };
217
+ } catch (error) {
218
+ // Some form of error occurred
219
+ return {
220
+ ...source,
221
+ getItems() {
222
+ return [
223
+ {
224
+ title: error.name || "An Error Occurred While Searching",
225
+ text:
226
+ error.message ||
227
+ "An unknown error occurred while attempting to perform the requested search.",
228
+ type: kItemTypeError,
229
+ },
230
+ ];
231
+ },
232
+ };
233
+ }
234
+ });
235
+ },
236
+ navigator: {
237
+ navigate({ itemUrl }) {
238
+ if (itemUrl !== offsetURL(kItemTypeMoreHref)) {
239
+ window.location.assign(itemUrl);
240
+ }
241
+ },
242
+ navigateNewTab({ itemUrl }) {
243
+ if (itemUrl !== offsetURL(kItemTypeMoreHref)) {
244
+ const windowReference = window.open(itemUrl, "_blank", "noopener");
245
+ if (windowReference) {
246
+ windowReference.focus();
247
+ }
248
+ }
249
+ },
250
+ navigateNewWindow({ itemUrl }) {
251
+ if (itemUrl !== offsetURL(kItemTypeMoreHref)) {
252
+ window.open(itemUrl, "_blank", "noopener");
253
+ }
254
+ },
255
+ },
256
+ getSources({ state, setContext, setActiveItemId, refresh }) {
257
+ return [
258
+ {
259
+ sourceId: "documents",
260
+ getItemUrl({ item }) {
261
+ if (item.href) {
262
+ return offsetURL(item.href);
263
+ } else {
264
+ return undefined;
265
+ }
266
+ },
267
+ onSelect({
268
+ item,
269
+ state,
270
+ setContext,
271
+ setIsOpen,
272
+ setActiveItemId,
273
+ refresh,
274
+ }) {
275
+ if (item.type === kItemTypeMore) {
276
+ toggleExpanded(item, state, setContext, setActiveItemId, refresh);
277
+
278
+ // Toggle more
279
+ setIsOpen(true);
280
+ }
281
+ },
282
+ getItems({ query }) {
283
+ if (query === null || query === "") {
284
+ return [];
285
+ }
286
+
287
+ const limit = quartoSearchOptions.limit;
288
+ if (quartoSearchOptions.algolia) {
289
+ return algoliaSearch(query, limit, quartoSearchOptions.algolia);
290
+ } else {
291
+ // Fuse search options
292
+ const fuseSearchOptions = {
293
+ isCaseSensitive: false,
294
+ shouldSort: true,
295
+ minMatchCharLength: 2,
296
+ limit: limit,
297
+ };
298
+
299
+ return readSearchData().then(function (fuse) {
300
+ return fuseSearch(query, fuse, fuseSearchOptions);
301
+ });
302
+ }
303
+ },
304
+ templates: {
305
+ noResults({ createElement }) {
306
+ const hasQuery = lastState.query;
307
+
308
+ return createElement(
309
+ "div",
310
+ {
311
+ class: `quarto-search-no-results${
312
+ hasQuery ? "" : " no-query"
313
+ }`,
314
+ },
315
+ language["search-no-results-text"]
316
+ );
317
+ },
318
+ header({ items, createElement }) {
319
+ // count the documents
320
+ const count = items.filter((item) => {
321
+ return item.type === kItemTypeDoc;
322
+ }).length;
323
+
324
+ if (count > 0) {
325
+ return createElement(
326
+ "div",
327
+ { class: "search-result-header" },
328
+ `${count} ${language["search-matching-documents-text"]}`
329
+ );
330
+ } else {
331
+ return createElement(
332
+ "div",
333
+ { class: "search-result-header-no-results" },
334
+ ``
335
+ );
336
+ }
337
+ },
338
+ footer({ _items, createElement }) {
339
+ if (
340
+ quartoSearchOptions.algolia &&
341
+ quartoSearchOptions.algolia["show-logo"]
342
+ ) {
343
+ const libDir = quartoSearchOptions.algolia["libDir"];
344
+ const logo = createElement("img", {
345
+ src: offsetURL(
346
+ `${libDir}/quarto-search/search-by-algolia.svg`
347
+ ),
348
+ class: "algolia-search-logo",
349
+ });
350
+ return createElement(
351
+ "a",
352
+ { href: "http://www.algolia.com/" },
353
+ logo
354
+ );
355
+ }
356
+ },
357
+
358
+ item({ item, createElement }) {
359
+ return renderItem(
360
+ item,
361
+ createElement,
362
+ state,
363
+ setActiveItemId,
364
+ setContext,
365
+ refresh,
366
+ quartoSearchOptions
367
+ );
368
+ },
369
+ },
370
+ },
371
+ ];
372
+ },
373
+ });
374
+
375
+ window.quartoOpenSearch = () => {
376
+ setIsOpen(false);
377
+ setIsOpen(true);
378
+ focusSearchInput();
379
+ };
380
+
381
+ document.addEventListener("keyup", (event) => {
382
+ const { key } = event;
383
+ const kbds = quartoSearchOptions["keyboard-shortcut"];
384
+ const focusedEl = document.activeElement;
385
+
386
+ const isFormElFocused = [
387
+ "input",
388
+ "select",
389
+ "textarea",
390
+ "button",
391
+ "option",
392
+ ].find((tag) => {
393
+ return focusedEl.tagName.toLowerCase() === tag;
394
+ });
395
+
396
+ if (
397
+ kbds &&
398
+ kbds.includes(key) &&
399
+ !isFormElFocused &&
400
+ !document.activeElement.isContentEditable
401
+ ) {
402
+ event.preventDefault();
403
+ window.quartoOpenSearch();
404
+ }
405
+ });
406
+
407
+ // Remove the labeleledby attribute since it is pointing
408
+ // to a non-existent label
409
+ if (quartoSearchOptions.type === "overlay") {
410
+ const inputEl = window.document.querySelector(
411
+ "#quarto-search .aa-Autocomplete"
412
+ );
413
+ if (inputEl) {
414
+ inputEl.removeAttribute("aria-labelledby");
415
+ }
416
+ }
417
+
418
+ function throttle(func, wait) {
419
+ let waiting = false;
420
+ return function () {
421
+ if (!waiting) {
422
+ func.apply(this, arguments);
423
+ waiting = true;
424
+ setTimeout(function () {
425
+ waiting = false;
426
+ }, wait);
427
+ }
428
+ };
429
+ }
430
+
431
+ // If the main document scrolls dismiss the search results
432
+ // (otherwise, since they're floating in the document they can scroll with the document)
433
+ window.document.body.onscroll = throttle(() => {
434
+ // Only do this if we're not detached
435
+ // Bug #7117
436
+ // This will happen when the keyboard is shown on ios (resulting in a scroll)
437
+ // which then closed the search UI
438
+ if (!window.matchMedia(detachedMediaQuery).matches) {
439
+ setIsOpen(false);
440
+ }
441
+ }, 50);
442
+
443
+ if (showSearchResults) {
444
+ setIsOpen(true);
445
+ focusSearchInput();
446
+ }
447
+ });
448
+
449
+ function configurePlugins(quartoSearchOptions) {
450
+ const autocompletePlugins = [];
451
+ const algoliaOptions = quartoSearchOptions.algolia;
452
+ if (
453
+ algoliaOptions &&
454
+ algoliaOptions["analytics-events"] &&
455
+ algoliaOptions["search-only-api-key"] &&
456
+ algoliaOptions["application-id"]
457
+ ) {
458
+ const apiKey = algoliaOptions["search-only-api-key"];
459
+ const appId = algoliaOptions["application-id"];
460
+
461
+ // Aloglia insights may not be loaded because they require cookie consent
462
+ // Use deferred loading so events will start being recorded when/if consent
463
+ // is granted.
464
+ const algoliaInsightsDeferredPlugin = deferredLoadPlugin(() => {
465
+ if (
466
+ window.aa &&
467
+ window["@algolia/autocomplete-plugin-algolia-insights"]
468
+ ) {
469
+ window.aa("init", {
470
+ appId,
471
+ apiKey,
472
+ useCookie: true,
473
+ });
474
+
475
+ const { createAlgoliaInsightsPlugin } =
476
+ window["@algolia/autocomplete-plugin-algolia-insights"];
477
+ // Register the insights client
478
+ const algoliaInsightsPlugin = createAlgoliaInsightsPlugin({
479
+ insightsClient: window.aa,
480
+ onItemsChange({ insights, insightsEvents }) {
481
+ const events = insightsEvents.flatMap((event) => {
482
+ // This API limits the number of items per event to 20
483
+ const chunkSize = 20;
484
+ const itemChunks = [];
485
+ const eventItems = event.items;
486
+ for (let i = 0; i < eventItems.length; i += chunkSize) {
487
+ itemChunks.push(eventItems.slice(i, i + chunkSize));
488
+ }
489
+ // Split the items into multiple events that can be sent
490
+ const events = itemChunks.map((items) => {
491
+ return {
492
+ ...event,
493
+ items,
494
+ };
495
+ });
496
+ return events;
497
+ });
498
+
499
+ for (const event of events) {
500
+ insights.viewedObjectIDs(event);
501
+ }
502
+ },
503
+ });
504
+ return algoliaInsightsPlugin;
505
+ }
506
+ });
507
+
508
+ // Add the plugin
509
+ autocompletePlugins.push(algoliaInsightsDeferredPlugin);
510
+ return autocompletePlugins;
511
+ }
512
+ }
513
+
514
+ // For plugins that may not load immediately, create a wrapper
515
+ // plugin and forward events and plugin data once the plugin
516
+ // is initialized. This is useful for cases like cookie consent
517
+ // which may prevent the analytics insights event plugin from initializing
518
+ // immediately.
519
+ function deferredLoadPlugin(createPlugin) {
520
+ let plugin = undefined;
521
+ let subscribeObj = undefined;
522
+ const wrappedPlugin = () => {
523
+ if (!plugin && subscribeObj) {
524
+ plugin = createPlugin();
525
+ if (plugin && plugin.subscribe) {
526
+ plugin.subscribe(subscribeObj);
527
+ }
528
+ }
529
+ return plugin;
530
+ };
531
+
532
+ return {
533
+ subscribe: (obj) => {
534
+ subscribeObj = obj;
535
+ },
536
+ onStateChange: (obj) => {
537
+ const plugin = wrappedPlugin();
538
+ if (plugin && plugin.onStateChange) {
539
+ plugin.onStateChange(obj);
540
+ }
541
+ },
542
+ onSubmit: (obj) => {
543
+ const plugin = wrappedPlugin();
544
+ if (plugin && plugin.onSubmit) {
545
+ plugin.onSubmit(obj);
546
+ }
547
+ },
548
+ onReset: (obj) => {
549
+ const plugin = wrappedPlugin();
550
+ if (plugin && plugin.onReset) {
551
+ plugin.onReset(obj);
552
+ }
553
+ },
554
+ getSources: (obj) => {
555
+ const plugin = wrappedPlugin();
556
+ if (plugin && plugin.getSources) {
557
+ return plugin.getSources(obj);
558
+ } else {
559
+ return Promise.resolve([]);
560
+ }
561
+ },
562
+ data: (obj) => {
563
+ const plugin = wrappedPlugin();
564
+ if (plugin && plugin.data) {
565
+ plugin.data(obj);
566
+ }
567
+ },
568
+ };
569
+ }
570
+
571
+ function validateItems(items) {
572
+ // Validate the first item
573
+ if (items.length > 0) {
574
+ const item = items[0];
575
+ const missingFields = [];
576
+ if (item.href == undefined) {
577
+ missingFields.push("href");
578
+ }
579
+ if (!item.title == undefined) {
580
+ missingFields.push("title");
581
+ }
582
+ if (!item.text == undefined) {
583
+ missingFields.push("text");
584
+ }
585
+
586
+ if (missingFields.length === 1) {
587
+ throw {
588
+ name: `Error: Search index is missing the <code>${missingFields[0]}</code> field.`,
589
+ message: `The items being returned for this search do not include all the required fields. Please ensure that your index items include the <code>${missingFields[0]}</code> field or use <code>index-fields</code> in your <code>_quarto.yml</code> file to specify the field names.`,
590
+ };
591
+ } else if (missingFields.length > 1) {
592
+ const missingFieldList = missingFields
593
+ .map((field) => {
594
+ return `<code>${field}</code>`;
595
+ })
596
+ .join(", ");
597
+
598
+ throw {
599
+ name: `Error: Search index is missing the following fields: ${missingFieldList}.`,
600
+ message: `The items being returned for this search do not include all the required fields. Please ensure that your index items includes the following fields: ${missingFieldList}, or use <code>index-fields</code> in your <code>_quarto.yml</code> file to specify the field names.`,
601
+ };
602
+ }
603
+ }
604
+ }
605
+
606
+ let lastQuery = null;
607
+ function showCopyLink(query, options) {
608
+ const language = options.language;
609
+ lastQuery = query;
610
+ // Insert share icon
611
+ const inputSuffixEl = window.document.body.querySelector(
612
+ ".aa-Form .aa-InputWrapperSuffix"
613
+ );
614
+
615
+ if (inputSuffixEl) {
616
+ let copyButtonEl = window.document.body.querySelector(
617
+ ".aa-Form .aa-InputWrapperSuffix .aa-CopyButton"
618
+ );
619
+
620
+ if (copyButtonEl === null) {
621
+ copyButtonEl = window.document.createElement("button");
622
+ copyButtonEl.setAttribute("class", "aa-CopyButton");
623
+ copyButtonEl.setAttribute("type", "button");
624
+ copyButtonEl.setAttribute("title", language["search-copy-link-title"]);
625
+ copyButtonEl.onmousedown = (e) => {
626
+ e.preventDefault();
627
+ e.stopPropagation();
628
+ };
629
+
630
+ const linkIcon = "bi-clipboard";
631
+ const checkIcon = "bi-check2";
632
+
633
+ const shareIconEl = window.document.createElement("i");
634
+ shareIconEl.setAttribute("class", `bi ${linkIcon}`);
635
+ copyButtonEl.appendChild(shareIconEl);
636
+ inputSuffixEl.prepend(copyButtonEl);
637
+
638
+ const clipboard = new window.ClipboardJS(".aa-CopyButton", {
639
+ text: function (_trigger) {
640
+ const copyUrl = new URL(window.location);
641
+ copyUrl.searchParams.set(kQueryArg, lastQuery);
642
+ copyUrl.searchParams.set(kResultsArg, "1");
643
+ return copyUrl.toString();
644
+ },
645
+ });
646
+ clipboard.on("success", function (e) {
647
+ // Focus the input
648
+
649
+ // button target
650
+ const button = e.trigger;
651
+ const icon = button.querySelector("i.bi");
652
+
653
+ // flash "checked"
654
+ icon.classList.add(checkIcon);
655
+ icon.classList.remove(linkIcon);
656
+ setTimeout(function () {
657
+ icon.classList.remove(checkIcon);
658
+ icon.classList.add(linkIcon);
659
+ }, 1000);
660
+ });
661
+ }
662
+
663
+ // If there is a query, show the link icon
664
+ if (copyButtonEl) {
665
+ if (lastQuery && options["copy-button"]) {
666
+ copyButtonEl.style.display = "flex";
667
+ } else {
668
+ copyButtonEl.style.display = "none";
669
+ }
670
+ }
671
+ }
672
+ }
673
+
674
+ /* Search Index Handling */
675
+ // create the index
676
+ var fuseIndex = undefined;
677
+ var shownWarning = false;
678
+
679
+ // fuse index options
680
+ const kFuseIndexOptions = {
681
+ keys: [
682
+ { name: "title", weight: 20 },
683
+ { name: "section", weight: 20 },
684
+ { name: "text", weight: 10 },
685
+ ],
686
+ ignoreLocation: true,
687
+ threshold: 0.1,
688
+ };
689
+
690
+ async function readSearchData() {
691
+ // Initialize the search index on demand
692
+ if (fuseIndex === undefined) {
693
+ if (window.location.protocol === "file:" && !shownWarning) {
694
+ window.alert(
695
+ "Search requires JavaScript features disabled when running in file://... URLs. In order to use search, please run this document in a web server."
696
+ );
697
+ shownWarning = true;
698
+ return;
699
+ }
700
+ const fuse = new window.Fuse([], kFuseIndexOptions);
701
+
702
+ // fetch the main search.json
703
+ const response = await fetch(offsetURL("search.json"));
704
+ if (response.status == 200) {
705
+ return response.json().then(function (searchDocs) {
706
+ searchDocs.forEach(function (searchDoc) {
707
+ fuse.add(searchDoc);
708
+ });
709
+ fuseIndex = fuse;
710
+ return fuseIndex;
711
+ });
712
+ } else {
713
+ return Promise.reject(
714
+ new Error(
715
+ "Unexpected status from search index request: " + response.status
716
+ )
717
+ );
718
+ }
719
+ }
720
+
721
+ return fuseIndex;
722
+ }
723
+
724
+ function inputElement() {
725
+ return window.document.body.querySelector(".aa-Form .aa-Input");
726
+ }
727
+
728
+ function focusSearchInput() {
729
+ setTimeout(() => {
730
+ const inputEl = inputElement();
731
+ if (inputEl) {
732
+ inputEl.focus();
733
+ }
734
+ }, 50);
735
+ }
736
+
737
+ /* Panels */
738
+ const kItemTypeDoc = "document";
739
+ const kItemTypeMore = "document-more";
740
+ const kItemTypeItem = "document-item";
741
+ const kItemTypeError = "error";
742
+
743
+ function renderItem(
744
+ item,
745
+ createElement,
746
+ state,
747
+ setActiveItemId,
748
+ setContext,
749
+ refresh,
750
+ quartoSearchOptions
751
+ ) {
752
+ switch (item.type) {
753
+ case kItemTypeDoc:
754
+ return createDocumentCard(
755
+ createElement,
756
+ "file-richtext",
757
+ item.title,
758
+ item.section,
759
+ item.text,
760
+ item.href,
761
+ item.crumbs,
762
+ quartoSearchOptions
763
+ );
764
+ case kItemTypeMore:
765
+ return createMoreCard(
766
+ createElement,
767
+ item,
768
+ state,
769
+ setActiveItemId,
770
+ setContext,
771
+ refresh
772
+ );
773
+ case kItemTypeItem:
774
+ return createSectionCard(
775
+ createElement,
776
+ item.section,
777
+ item.text,
778
+ item.href
779
+ );
780
+ case kItemTypeError:
781
+ return createErrorCard(createElement, item.title, item.text);
782
+ default:
783
+ return undefined;
784
+ }
785
+ }
786
+
787
+ function createDocumentCard(
788
+ createElement,
789
+ icon,
790
+ title,
791
+ section,
792
+ text,
793
+ href,
794
+ crumbs,
795
+ quartoSearchOptions
796
+ ) {
797
+ const iconEl = createElement("i", {
798
+ class: `bi bi-${icon} search-result-icon`,
799
+ });
800
+ const titleEl = createElement("p", { class: "search-result-title" }, title);
801
+ const titleContents = [iconEl, titleEl];
802
+ const showParent = quartoSearchOptions["show-item-context"];
803
+ if (crumbs && showParent) {
804
+ let crumbsOut = undefined;
805
+ const crumbClz = ["search-result-crumbs"];
806
+ if (showParent === "root") {
807
+ crumbsOut = crumbs.length > 1 ? crumbs[0] : undefined;
808
+ } else if (showParent === "parent") {
809
+ crumbsOut = crumbs.length > 1 ? crumbs[crumbs.length - 2] : undefined;
810
+ } else {
811
+ crumbsOut = crumbs.length > 1 ? crumbs.join(" > ") : undefined;
812
+ crumbClz.push("search-result-crumbs-wrap");
813
+ }
814
+
815
+ const crumbEl = createElement(
816
+ "p",
817
+ { class: crumbClz.join(" ") },
818
+ crumbsOut
819
+ );
820
+ titleContents.push(crumbEl);
821
+ }
822
+
823
+ const titleContainerEl = createElement(
824
+ "div",
825
+ { class: "search-result-title-container" },
826
+ titleContents
827
+ );
828
+
829
+ const textEls = [];
830
+ if (section) {
831
+ const sectionEl = createElement(
832
+ "p",
833
+ { class: "search-result-section" },
834
+ section
835
+ );
836
+ textEls.push(sectionEl);
837
+ }
838
+ const descEl = createElement("p", {
839
+ class: "search-result-text",
840
+ dangerouslySetInnerHTML: {
841
+ __html: text,
842
+ },
843
+ });
844
+ textEls.push(descEl);
845
+
846
+ const textContainerEl = createElement(
847
+ "div",
848
+ { class: "search-result-text-container" },
849
+ textEls
850
+ );
851
+
852
+ const containerEl = createElement(
853
+ "div",
854
+ {
855
+ class: "search-result-container",
856
+ },
857
+ [titleContainerEl, textContainerEl]
858
+ );
859
+
860
+ const linkEl = createElement(
861
+ "a",
862
+ {
863
+ href: offsetURL(href),
864
+ class: "search-result-link",
865
+ },
866
+ containerEl
867
+ );
868
+
869
+ const classes = ["search-result-doc", "search-item"];
870
+ if (!section) {
871
+ classes.push("document-selectable");
872
+ }
873
+
874
+ return createElement(
875
+ "div",
876
+ {
877
+ class: classes.join(" "),
878
+ },
879
+ linkEl
880
+ );
881
+ }
882
+
883
+ function createMoreCard(
884
+ createElement,
885
+ item,
886
+ state,
887
+ setActiveItemId,
888
+ setContext,
889
+ refresh
890
+ ) {
891
+ const moreCardEl = createElement(
892
+ "div",
893
+ {
894
+ class: "search-result-more search-item",
895
+ onClick: (e) => {
896
+ // Handle expanding the sections by adding the expanded
897
+ // section to the list of expanded sections
898
+ toggleExpanded(item, state, setContext, setActiveItemId, refresh);
899
+ e.stopPropagation();
900
+ },
901
+ },
902
+ item.title
903
+ );
904
+
905
+ return moreCardEl;
906
+ }
907
+
908
+ function toggleExpanded(item, state, setContext, setActiveItemId, refresh) {
909
+ const expanded = state.context.expanded || [];
910
+ if (expanded.includes(item.target)) {
911
+ setContext({
912
+ expanded: expanded.filter((target) => target !== item.target),
913
+ });
914
+ } else {
915
+ setContext({ expanded: [...expanded, item.target] });
916
+ }
917
+
918
+ refresh();
919
+ setActiveItemId(item.__autocomplete_id);
920
+ }
921
+
922
+ function createSectionCard(createElement, section, text, href) {
923
+ const sectionEl = createSection(createElement, section, text, href);
924
+ return createElement(
925
+ "div",
926
+ {
927
+ class: "search-result-doc-section search-item",
928
+ },
929
+ sectionEl
930
+ );
931
+ }
932
+
933
+ function createSection(createElement, title, text, href) {
934
+ const descEl = createElement("p", {
935
+ class: "search-result-text",
936
+ dangerouslySetInnerHTML: {
937
+ __html: text,
938
+ },
939
+ });
940
+
941
+ const titleEl = createElement("p", { class: "search-result-section" }, title);
942
+ const linkEl = createElement(
943
+ "a",
944
+ {
945
+ href: offsetURL(href),
946
+ class: "search-result-link",
947
+ },
948
+ [titleEl, descEl]
949
+ );
950
+ return linkEl;
951
+ }
952
+
953
+ function createErrorCard(createElement, title, text) {
954
+ const descEl = createElement("p", {
955
+ class: "search-error-text",
956
+ dangerouslySetInnerHTML: {
957
+ __html: text,
958
+ },
959
+ });
960
+
961
+ const titleEl = createElement("p", {
962
+ class: "search-error-title",
963
+ dangerouslySetInnerHTML: {
964
+ __html: `<i class="bi bi-exclamation-circle search-error-icon"></i> ${title}`,
965
+ },
966
+ });
967
+ const errorEl = createElement("div", { class: "search-error" }, [
968
+ titleEl,
969
+ descEl,
970
+ ]);
971
+ return errorEl;
972
+ }
973
+
974
+ function positionPanel(pos) {
975
+ const panelEl = window.document.querySelector(
976
+ "#quarto-search-results .aa-Panel"
977
+ );
978
+ const inputEl = window.document.querySelector(
979
+ "#quarto-search .aa-Autocomplete"
980
+ );
981
+
982
+ if (panelEl && inputEl) {
983
+ panelEl.style.top = `${Math.round(panelEl.offsetTop)}px`;
984
+ if (pos === "start") {
985
+ panelEl.style.left = `${Math.round(inputEl.left)}px`;
986
+ } else {
987
+ panelEl.style.right = `${Math.round(inputEl.offsetRight)}px`;
988
+ }
989
+ }
990
+ }
991
+
992
+ /* Highlighting */
993
+ // highlighting functions
994
+ function highlightMatch(query, text) {
995
+ if (text) {
996
+ const start = text.toLowerCase().indexOf(query.toLowerCase());
997
+ if (start !== -1) {
998
+ const startMark = "<mark class='search-match'>";
999
+ const endMark = "</mark>";
1000
+
1001
+ const end = start + query.length;
1002
+ text =
1003
+ text.slice(0, start) +
1004
+ startMark +
1005
+ text.slice(start, end) +
1006
+ endMark +
1007
+ text.slice(end);
1008
+ const startInfo = clipStart(text, start);
1009
+ const endInfo = clipEnd(
1010
+ text,
1011
+ startInfo.position + startMark.length + endMark.length
1012
+ );
1013
+ text =
1014
+ startInfo.prefix +
1015
+ text.slice(startInfo.position, endInfo.position) +
1016
+ endInfo.suffix;
1017
+
1018
+ return text;
1019
+ } else {
1020
+ return text;
1021
+ }
1022
+ } else {
1023
+ return text;
1024
+ }
1025
+ }
1026
+
1027
+ function clipStart(text, pos) {
1028
+ const clipStart = pos - 50;
1029
+ if (clipStart < 0) {
1030
+ // This will just return the start of the string
1031
+ return {
1032
+ position: 0,
1033
+ prefix: "",
1034
+ };
1035
+ } else {
1036
+ // We're clipping before the start of the string, walk backwards to the first space.
1037
+ const spacePos = findSpace(text, pos, -1);
1038
+ return {
1039
+ position: spacePos.position,
1040
+ prefix: "",
1041
+ };
1042
+ }
1043
+ }
1044
+
1045
+ function clipEnd(text, pos) {
1046
+ const clipEnd = pos + 200;
1047
+ if (clipEnd > text.length) {
1048
+ return {
1049
+ position: text.length,
1050
+ suffix: "",
1051
+ };
1052
+ } else {
1053
+ const spacePos = findSpace(text, clipEnd, 1);
1054
+ return {
1055
+ position: spacePos.position,
1056
+ suffix: spacePos.clipped ? "…" : "",
1057
+ };
1058
+ }
1059
+ }
1060
+
1061
+ function findSpace(text, start, step) {
1062
+ let stepPos = start;
1063
+ while (stepPos > -1 && stepPos < text.length) {
1064
+ const char = text[stepPos];
1065
+ if (char === " " || char === "," || char === ":") {
1066
+ return {
1067
+ position: step === 1 ? stepPos : stepPos - step,
1068
+ clipped: stepPos > 1 && stepPos < text.length,
1069
+ };
1070
+ }
1071
+ stepPos = stepPos + step;
1072
+ }
1073
+
1074
+ return {
1075
+ position: stepPos - step,
1076
+ clipped: false,
1077
+ };
1078
+ }
1079
+
1080
+ // removes highlighting as implemented by the mark tag
1081
+ function clearHighlight(searchterm, el) {
1082
+ const childNodes = el.childNodes;
1083
+ for (let i = childNodes.length - 1; i >= 0; i--) {
1084
+ const node = childNodes[i];
1085
+ if (node.nodeType === Node.ELEMENT_NODE) {
1086
+ if (
1087
+ node.tagName === "MARK" &&
1088
+ node.innerText.toLowerCase() === searchterm.toLowerCase()
1089
+ ) {
1090
+ el.replaceChild(document.createTextNode(node.innerText), node);
1091
+ } else {
1092
+ clearHighlight(searchterm, node);
1093
+ }
1094
+ }
1095
+ }
1096
+ }
1097
+
1098
+ function escapeRegExp(string) {
1099
+ return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
1100
+ }
1101
+
1102
+ // highlight matches
1103
+ function highlight(term, el) {
1104
+ const termRegex = new RegExp(term, "ig");
1105
+ const childNodes = el.childNodes;
1106
+
1107
+ // walk back to front avoid mutating elements in front of us
1108
+ for (let i = childNodes.length - 1; i >= 0; i--) {
1109
+ const node = childNodes[i];
1110
+
1111
+ if (node.nodeType === Node.TEXT_NODE) {
1112
+ // Search text nodes for text to highlight
1113
+ const text = node.nodeValue;
1114
+
1115
+ let startIndex = 0;
1116
+ let matchIndex = text.search(termRegex);
1117
+ if (matchIndex > -1) {
1118
+ const markFragment = document.createDocumentFragment();
1119
+ while (matchIndex > -1) {
1120
+ const prefix = text.slice(startIndex, matchIndex);
1121
+ markFragment.appendChild(document.createTextNode(prefix));
1122
+
1123
+ const mark = document.createElement("mark");
1124
+ mark.appendChild(
1125
+ document.createTextNode(
1126
+ text.slice(matchIndex, matchIndex + term.length)
1127
+ )
1128
+ );
1129
+ markFragment.appendChild(mark);
1130
+
1131
+ startIndex = matchIndex + term.length;
1132
+ matchIndex = text.slice(startIndex).search(new RegExp(term, "ig"));
1133
+ if (matchIndex > -1) {
1134
+ matchIndex = startIndex + matchIndex;
1135
+ }
1136
+ }
1137
+ if (startIndex < text.length) {
1138
+ markFragment.appendChild(
1139
+ document.createTextNode(text.slice(startIndex, text.length))
1140
+ );
1141
+ }
1142
+
1143
+ el.replaceChild(markFragment, node);
1144
+ }
1145
+ } else if (node.nodeType === Node.ELEMENT_NODE) {
1146
+ // recurse through elements
1147
+ highlight(term, node);
1148
+ }
1149
+ }
1150
+ }
1151
+
1152
+ /* Link Handling */
1153
+ // get the offset from this page for a given site root relative url
1154
+ function offsetURL(url) {
1155
+ var offset = getMeta("quarto:offset");
1156
+ return offset ? offset + url : url;
1157
+ }
1158
+
1159
+ // read a meta tag value
1160
+ function getMeta(metaName) {
1161
+ var metas = window.document.getElementsByTagName("meta");
1162
+ for (let i = 0; i < metas.length; i++) {
1163
+ if (metas[i].getAttribute("name") === metaName) {
1164
+ return metas[i].getAttribute("content");
1165
+ }
1166
+ }
1167
+ return "";
1168
+ }
1169
+
1170
+ function algoliaSearch(query, limit, algoliaOptions) {
1171
+ const { getAlgoliaResults } = window["@algolia/autocomplete-preset-algolia"];
1172
+
1173
+ const applicationId = algoliaOptions["application-id"];
1174
+ const searchOnlyApiKey = algoliaOptions["search-only-api-key"];
1175
+ const indexName = algoliaOptions["index-name"];
1176
+ const indexFields = algoliaOptions["index-fields"];
1177
+ const searchClient = window.algoliasearch(applicationId, searchOnlyApiKey);
1178
+ const searchParams = algoliaOptions["params"];
1179
+ const searchAnalytics = !!algoliaOptions["analytics-events"];
1180
+
1181
+ return getAlgoliaResults({
1182
+ searchClient,
1183
+ queries: [
1184
+ {
1185
+ indexName: indexName,
1186
+ query,
1187
+ params: {
1188
+ hitsPerPage: limit,
1189
+ clickAnalytics: searchAnalytics,
1190
+ ...searchParams,
1191
+ },
1192
+ },
1193
+ ],
1194
+ transformResponse: (response) => {
1195
+ if (!indexFields) {
1196
+ return response.hits.map((hit) => {
1197
+ return hit.map((item) => {
1198
+ return {
1199
+ ...item,
1200
+ text: highlightMatch(query, item.text),
1201
+ };
1202
+ });
1203
+ });
1204
+ } else {
1205
+ const remappedHits = response.hits.map((hit) => {
1206
+ return hit.map((item) => {
1207
+ const newItem = { ...item };
1208
+ ["href", "section", "title", "text", "crumbs"].forEach(
1209
+ (keyName) => {
1210
+ const mappedName = indexFields[keyName];
1211
+ if (
1212
+ mappedName &&
1213
+ item[mappedName] !== undefined &&
1214
+ mappedName !== keyName
1215
+ ) {
1216
+ newItem[keyName] = item[mappedName];
1217
+ delete newItem[mappedName];
1218
+ }
1219
+ }
1220
+ );
1221
+ newItem.text = highlightMatch(query, newItem.text);
1222
+ return newItem;
1223
+ });
1224
+ });
1225
+ return remappedHits;
1226
+ }
1227
+ },
1228
+ });
1229
+ }
1230
+
1231
+ let subSearchTerm = undefined;
1232
+ let subSearchFuse = undefined;
1233
+ const kFuseMaxWait = 125;
1234
+
1235
+ async function fuseSearch(query, fuse, fuseOptions) {
1236
+ let index = fuse;
1237
+ // Fuse.js using the Bitap algorithm for text matching which runs in
1238
+ // O(nm) time (no matter the structure of the text). In our case this
1239
+ // means that long search terms mixed with large index gets very slow
1240
+ //
1241
+ // This injects a subIndex that will be used once the terms get long enough
1242
+ // Usually making this subindex is cheap since there will typically be
1243
+ // a subset of results matching the existing query
1244
+ if (subSearchFuse !== undefined && query.startsWith(subSearchTerm)) {
1245
+ // Use the existing subSearchFuse
1246
+ index = subSearchFuse;
1247
+ } else if (subSearchFuse !== undefined) {
1248
+ // The term changed, discard the existing fuse
1249
+ subSearchFuse = undefined;
1250
+ subSearchTerm = undefined;
1251
+ }
1252
+
1253
+ // Search using the active fuse
1254
+ const then = performance.now();
1255
+ const resultsRaw = await index.search(query, fuseOptions);
1256
+ const now = performance.now();
1257
+
1258
+ const results = resultsRaw.map((result) => {
1259
+ const addParam = (url, name, value) => {
1260
+ const anchorParts = url.split("#");
1261
+ const baseUrl = anchorParts[0];
1262
+ const sep = baseUrl.search("\\?") > 0 ? "&" : "?";
1263
+ anchorParts[0] = baseUrl + sep + name + "=" + value;
1264
+ return anchorParts.join("#");
1265
+ };
1266
+
1267
+ return {
1268
+ title: result.item.title,
1269
+ section: result.item.section,
1270
+ href: addParam(result.item.href, kQueryArg, query),
1271
+ text: highlightMatch(query, result.item.text),
1272
+ crumbs: result.item.crumbs,
1273
+ };
1274
+ });
1275
+
1276
+ // If we don't have a subfuse and the query is long enough, go ahead
1277
+ // and create a subfuse to use for subsequent queries
1278
+ if (
1279
+ now - then > kFuseMaxWait &&
1280
+ subSearchFuse === undefined &&
1281
+ resultsRaw.length < fuseOptions.limit
1282
+ ) {
1283
+ subSearchTerm = query;
1284
+ subSearchFuse = new window.Fuse([], kFuseIndexOptions);
1285
+ resultsRaw.forEach((rr) => {
1286
+ subSearchFuse.add(rr.item);
1287
+ });
1288
+ }
1289
+ return results;
1290
+ }
sitemap.xml ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
3
+ <url>
4
+ <loc>https://srijithrajamohan-ai-research-redis.hf.space/index.html</loc>
5
+ <lastmod>2026-03-18T22:33:38.470Z</lastmod>
6
+ </url>
7
+ <url>
8
+ <loc>https://srijithrajamohan-ai-research-redis.hf.space/posts/index.html</loc>
9
+ <lastmod>2026-03-18T22:34:16.038Z</lastmod>
10
+ </url>
11
+ <url>
12
+ <loc>https://srijithrajamohan-ai-research-redis.hf.space/posts/hello.html</loc>
13
+ <lastmod>2026-03-18T22:33:38.472Z</lastmod>
14
+ </url>
15
+ </urlset>